diff --git a/data/fixtures/recorded/languages/typescript/takeEveryArgRam.yml b/data/fixtures/recorded/languages/typescript/takeEveryArgRam.yml index 6667ef8f2f..534f9b2c24 100644 --- a/data/fixtures/recorded/languages/typescript/takeEveryArgRam.yml +++ b/data/fixtures/recorded/languages/typescript/takeEveryArgRam.yml @@ -23,7 +23,7 @@ initialState: finalState: documentContents: foo(bar(baz, bongo), bazman) selections: - - anchor: {line: 0, character: 4} - active: {line: 0, character: 19} - - anchor: {line: 0, character: 21} - active: {line: 0, character: 27} + - anchor: {line: 0, character: 8} + active: {line: 0, character: 11} + - anchor: {line: 0, character: 13} + active: {line: 0, character: 18} diff --git a/data/fixtures/scopes/csharp/argument.actual.iteration.scope b/data/fixtures/scopes/csharp/argument.actual.iteration.scope index ca2442e67f..b1b50cb7b9 100644 --- a/data/fixtures/scopes/csharp/argument.actual.iteration.scope +++ b/data/fixtures/scopes/csharp/argument.actual.iteration.scope @@ -5,6 +5,6 @@ Foo(5, "bar"); >--------< 0| Foo(5, "bar"); -[Domain] = 0:3-0:13 - >----------< +[Domain] = 0:0-0:13 + >-------------< 0| Foo(5, "bar"); diff --git a/data/fixtures/scopes/css/argument.actual.iteration.scope b/data/fixtures/scopes/css/argument.actual.iteration.scope index c3f245e5bc..ed87b584bd 100644 --- a/data/fixtures/scopes/css/argument.actual.iteration.scope +++ b/data/fixtures/scopes/css/argument.actual.iteration.scope @@ -7,6 +7,6 @@ >-----------< 1| width: calc(100% - 50px); -[Domain] = 1:13-1:26 - >-------------< +[Domain] = 1:9-1:26 + >-----------------< 1| width: calc(100% - 50px); diff --git a/data/fixtures/scopes/css/argument.actual.iteration2.scope b/data/fixtures/scopes/css/argument.actual.iteration2.scope index 0ba3798918..28c938b23e 100644 --- a/data/fixtures/scopes/css/argument.actual.iteration2.scope +++ b/data/fixtures/scopes/css/argument.actual.iteration2.scope @@ -7,6 +7,6 @@ >----------------< 1| background: repeating-linear-gradient(red, orange 50px); -[Domain] = 1:39-1:57 - >------------------< +[Domain] = 1:14-1:57 + >-------------------------------------------< 1| background: repeating-linear-gradient(red, orange 50px); diff --git a/data/fixtures/scopes/java/argument.actual.constructor.iteration.scope b/data/fixtures/scopes/java/argument.actual.constructor.iteration.scope index eeeef4b2ce..db95ab13b4 100644 --- a/data/fixtures/scopes/java/argument.actual.constructor.iteration.scope +++ b/data/fixtures/scopes/java/argument.actual.constructor.iteration.scope @@ -5,6 +5,6 @@ new Foo(123, 456); >--------< 0| new Foo(123, 456); -[Domain] = 0:7-0:17 - >----------< +[Domain] = 0:0-0:17 + >-----------------< 0| new Foo(123, 456); diff --git a/data/fixtures/scopes/java/argument.actual.iteration.scope b/data/fixtures/scopes/java/argument.actual.iteration.scope index 5488b1ab14..e08a363fef 100644 --- a/data/fixtures/scopes/java/argument.actual.iteration.scope +++ b/data/fixtures/scopes/java/argument.actual.iteration.scope @@ -5,6 +5,6 @@ myFunk(5, "hello"); >----------< 0| myFunk(5, "hello"); -[Domain] = 0:6-0:18 - >------------< +[Domain] = 0:0-0:18 + >------------------< 0| myFunk(5, "hello"); diff --git a/data/fixtures/scopes/java/argument.actual.method.iteration.scope b/data/fixtures/scopes/java/argument.actual.method.iteration.scope index bfc40570a6..df1bbc9480 100644 --- a/data/fixtures/scopes/java/argument.actual.method.iteration.scope +++ b/data/fixtures/scopes/java/argument.actual.method.iteration.scope @@ -5,6 +5,6 @@ foo.bar(123, 456); >--------< 0| foo.bar(123, 456); -[Domain] = 0:7-0:17 - >----------< +[Domain] = 0:0-0:17 + >-----------------< 0| foo.bar(123, 456); diff --git a/data/fixtures/scopes/javascript.core/argument.actual.constructor.iteration.scope b/data/fixtures/scopes/javascript.core/argument.actual.constructor.iteration.scope index 4bfcd075e0..f03c77cbb8 100644 --- a/data/fixtures/scopes/javascript.core/argument.actual.constructor.iteration.scope +++ b/data/fixtures/scopes/javascript.core/argument.actual.constructor.iteration.scope @@ -5,6 +5,6 @@ new Aaa(bbb, ccc) >--------< 0| new Aaa(bbb, ccc) -[Domain] = 0:7-0:17 - >----------< +[Domain] = 0:0-0:17 + >-----------------< 0| new Aaa(bbb, ccc) diff --git a/data/fixtures/scopes/javascript.core/argument.actual.iteration.scope b/data/fixtures/scopes/javascript.core/argument.actual.iteration.scope index cba9c192b2..bfb1ec05fd 100644 --- a/data/fixtures/scopes/javascript.core/argument.actual.iteration.scope +++ b/data/fixtures/scopes/javascript.core/argument.actual.iteration.scope @@ -5,6 +5,6 @@ aaa(bbb, ccc); >--------< 0| aaa(bbb, ccc); -[Domain] = 0:3-0:13 - >----------< +[Domain] = 0:0-0:13 + >-------------< 0| aaa(bbb, ccc); diff --git a/data/fixtures/scopes/javascript.core/argument.actual.method.iteration.scope b/data/fixtures/scopes/javascript.core/argument.actual.method.iteration.scope index 9070f913cf..cb8b7e5f1f 100644 --- a/data/fixtures/scopes/javascript.core/argument.actual.method.iteration.scope +++ b/data/fixtures/scopes/javascript.core/argument.actual.method.iteration.scope @@ -5,6 +5,6 @@ aaa.bbb(ccc, ddd); >--------< 0| aaa.bbb(ccc, ddd); -[Domain] = 0:7-0:17 - >----------< +[Domain] = 0:0-0:17 + >-----------------< 0| aaa.bbb(ccc, ddd); diff --git a/data/fixtures/scopes/php/argument.actual.constructor.iteration.scope b/data/fixtures/scopes/php/argument.actual.constructor.iteration.scope index b439199acd..5a0f448362 100644 --- a/data/fixtures/scopes/php/argument.actual.constructor.iteration.scope +++ b/data/fixtures/scopes/php/argument.actual.constructor.iteration.scope @@ -6,6 +6,6 @@ new MyClass(2, "foo") >--------< 1| new MyClass(2, "foo") -[Domain] = 1:11-1:21 - >----------< +[Domain] = 1:0-1:21 + >---------------------< 1| new MyClass(2, "foo") diff --git a/data/fixtures/scopes/php/argument.actual.iteration.scope b/data/fixtures/scopes/php/argument.actual.iteration.scope index 1f9fc8d2d9..6d44592c8d 100644 --- a/data/fixtures/scopes/php/argument.actual.iteration.scope +++ b/data/fixtures/scopes/php/argument.actual.iteration.scope @@ -6,6 +6,6 @@ myFunc(2, "foo") >--------< 1| myFunc(2, "foo") -[Domain] = 1:6-1:16 - >----------< +[Domain] = 1:0-1:16 + >----------------< 1| myFunc(2, "foo") diff --git a/data/fixtures/scopes/php/argument.actual.method.iteration.scope b/data/fixtures/scopes/php/argument.actual.method.iteration.scope index 2bc3abe329..837615380a 100644 --- a/data/fixtures/scopes/php/argument.actual.method.iteration.scope +++ b/data/fixtures/scopes/php/argument.actual.method.iteration.scope @@ -1,11 +1,11 @@ --------< -1| obj.myFunc(2, "foo") +1| obj.myFunc(2, "foo"); -[Domain] = 1:10-1:20 - >----------< -1| obj.myFunc(2, "foo") +[Domain] = 1:0-1:20 + >--------------------< +1| obj.myFunc(2, "foo"); diff --git a/data/fixtures/scopes/python/argument.actual.constructor.iteration.scope b/data/fixtures/scopes/python/argument.actual.constructor.iteration.scope index 6584f9d7f0..72e2facd44 100644 --- a/data/fixtures/scopes/python/argument.actual.constructor.iteration.scope +++ b/data/fixtures/scopes/python/argument.actual.constructor.iteration.scope @@ -5,6 +5,6 @@ Foo(123, 456) >--------< 0| Foo(123, 456) -[Domain] = 0:3-0:13 - >----------< +[Domain] = 0:0-0:13 + >-------------< 0| Foo(123, 456) diff --git a/data/fixtures/scopes/python/argument.actual.iteration.scope b/data/fixtures/scopes/python/argument.actual.iteration.scope index 0b326017ed..0d12c8d3dc 100644 --- a/data/fixtures/scopes/python/argument.actual.iteration.scope +++ b/data/fixtures/scopes/python/argument.actual.iteration.scope @@ -5,6 +5,6 @@ foo("bar", 1) >--------< 0| foo("bar", 1) -[Domain] = 0:3-0:13 - >----------< +[Domain] = 0:0-0:13 + >-------------< 0| foo("bar", 1) diff --git a/data/fixtures/scopes/python/argument.actual.method.iteration.scope b/data/fixtures/scopes/python/argument.actual.method.iteration.scope index b153d7c5b7..36c4cb67d9 100644 --- a/data/fixtures/scopes/python/argument.actual.method.iteration.scope +++ b/data/fixtures/scopes/python/argument.actual.method.iteration.scope @@ -5,6 +5,6 @@ foo.bar(123, 456) >--------< 0| foo.bar(123, 456) -[Domain] = 0:7-0:17 - >----------< +[Domain] = 0:0-0:17 + >-----------------< 0| foo.bar(123, 456) diff --git a/data/fixtures/scopes/r/argument.actual.iteration.scope b/data/fixtures/scopes/r/argument.actual.iteration.scope index a1afb2339d..5ff11cff7d 100644 --- a/data/fixtures/scopes/r/argument.actual.iteration.scope +++ b/data/fixtures/scopes/r/argument.actual.iteration.scope @@ -1,17 +1,10 @@ foo(x, y) - --- -[#1 Range] = 0:4-0:8 +[Range] = 0:4-0:8 >----< 0| foo(x, y) -[#1 Domain] = 0:3-0:9 - >------< -0| foo(x, y) - - -[#2 Range] = -[#2 Domain] = 0:4-0:8 - >----< +[Domain] = 0:0-0:9 + >---------< 0| foo(x, y) diff --git a/data/fixtures/scopes/r/argument.formal.iteration.scope b/data/fixtures/scopes/r/argument.formal.iteration.scope index 7e813687bd..8a24f38440 100644 --- a/data/fixtures/scopes/r/argument.formal.iteration.scope +++ b/data/fixtures/scopes/r/argument.formal.iteration.scope @@ -1,17 +1,10 @@ abc <- function(x, y){} - --- -[#1 Range] = 0:16-0:20 +[Range] = 0:16-0:20 >----< 0| abc <- function(x, y){} -[#1 Domain] = 0:0-0:23 +[Domain] = 0:0-0:23 >-----------------------< 0| abc <- function(x, y){} - - -[#2 Range] = -[#2 Domain] = 0:16-0:20 - >----< -0| abc <- function(x, y){} diff --git a/data/fixtures/scopes/r/argumentList.formal.scope b/data/fixtures/scopes/r/argumentList.formal.scope index 54b7297520..a55b49dcf5 100644 --- a/data/fixtures/scopes/r/argumentList.formal.scope +++ b/data/fixtures/scopes/r/argumentList.formal.scope @@ -1,25 +1,13 @@ abc <- function(x, y){ } --- -[#1 Content] = -[#1 Removal] = 0:16-0:20 +[Content] = +[Removal] = 0:16-0:20 >----< 0| abc <- function(x, y){ } -[#1 Domain] = 0:0-0:24 +[Domain] = 0:0-0:24 >------------------------< 0| abc <- function(x, y){ } -[#1 Insertion delimiter] = ", " - - -[#2 Content] = -[#2 Removal] = 0:16-0:20 - >----< -0| abc <- function(x, y){ } - -[#2 Domain] = 0:7-0:24 - >-----------------< -0| abc <- function(x, y){ } - -[#2 Insertion delimiter] = ", " +[Insertion delimiter] = ", " diff --git a/data/fixtures/scopes/r/argumentList.formal2.scope b/data/fixtures/scopes/r/argumentList.formal2.scope index ec4af72e55..c0d8725dee 100644 --- a/data/fixtures/scopes/r/argumentList.formal2.scope +++ b/data/fixtures/scopes/r/argumentList.formal2.scope @@ -1,25 +1,13 @@ abc <- function(){ } --- -[#1 Content] = -[#1 Removal] = 0:16-0:16 +[Content] = +[Removal] = 0:16-0:16 >< 0| abc <- function(){ } -[#1 Domain] = 0:0-0:20 +[Domain] = 0:0-0:20 >--------------------< 0| abc <- function(){ } -[#1 Insertion delimiter] = "" - - -[#2 Content] = -[#2 Removal] = 0:16-0:16 - >< -0| abc <- function(){ } - -[#2 Domain] = 0:7-0:20 - >-------------< -0| abc <- function(){ } - -[#2 Insertion delimiter] = "" +[Insertion delimiter] = "" diff --git a/data/fixtures/scopes/r/argumentList.formal3.scope b/data/fixtures/scopes/r/argumentList.formal3.scope index 23f68f7633..2d5f7e7f3b 100644 --- a/data/fixtures/scopes/r/argumentList.formal3.scope +++ b/data/fixtures/scopes/r/argumentList.formal3.scope @@ -5,8 +5,8 @@ abc <- function( } --- -[#1 Content] = -[#1 Removal] = 0:16-3:0 +[Content] = +[Removal] = 0:16-3:0 > 0| abc <- function( 1| x, @@ -14,7 +14,7 @@ abc <- function( 3| ){ < -[#1 Domain] = 0:0-4:1 +[Domain] = 0:0-4:1 >---------------- 0| abc <- function( 1| x, @@ -23,25 +23,4 @@ abc <- function( 4| } -< -[#1 Insertion delimiter] = ",\n" - - -[#2 Content] = -[#2 Removal] = 0:16-3:0 - > -0| abc <- function( -1| x, -2| y -3| ){ - < - -[#2 Domain] = 0:7-4:1 - >--------- -0| abc <- function( -1| x, -2| y -3| ){ -4| } - -< - -[#2 Insertion delimiter] = ",\n" +[Insertion delimiter] = ",\n" diff --git a/data/fixtures/scopes/talon/argument.actual.iteration.scope b/data/fixtures/scopes/talon/argument.actual.iteration.scope index 89bf334e53..a6ebed0860 100644 --- a/data/fixtures/scopes/talon/argument.actual.iteration.scope +++ b/data/fixtures/scopes/talon/argument.actual.iteration.scope @@ -5,6 +5,6 @@ command: user.do_something(123, 456) >--------< 0| command: user.do_something(123, 456) -[Domain] = 0:26-0:36 - >----------< +[Domain] = 0:9-0:36 + >---------------------------< 0| command: user.do_something(123, 456) diff --git a/data/fixtures/scopes/talon/argument.actual.iteration2.scope b/data/fixtures/scopes/talon/argument.actual.iteration2.scope index 3ff40d44d3..7d5a20fff1 100644 --- a/data/fixtures/scopes/talon/argument.actual.iteration2.scope +++ b/data/fixtures/scopes/talon/argument.actual.iteration2.scope @@ -1,7 +1,10 @@ command: key(enter) --- -[Range] = -[Domain] = 0:13-0:18 +[Range] = 0:13-0:18 >-----< 0| command: key(enter) + +[Domain] = 0:9-0:19 + >----------< +0| command: key(enter) diff --git a/queries/c.scm b/queries/c.scm index b9afe76b22..ddbacf5f4c 100644 --- a/queries/c.scm +++ b/queries/c.scm @@ -241,9 +241,11 @@ ) ) @argumentOrParameter.iteration.domain -(argument_list - "(" @argumentOrParameter.iteration.start.endOf @name.iteration.start.endOf @value.iteration.start.endOf - ")" @argumentOrParameter.iteration.end.startOf @name.iteration.end.startOf @value.iteration.end.startOf +(_ + (argument_list + "(" @argumentOrParameter.iteration.start.endOf @name.iteration.start.endOf @value.iteration.start.endOf + ")" @argumentOrParameter.iteration.end.startOf @name.iteration.end.startOf @value.iteration.end.startOf + ) ) @argumentOrParameter.iteration.domain operator: [ diff --git a/queries/csharp.scm b/queries/csharp.scm index ef78caf501..7c8253c993 100644 --- a/queries/csharp.scm +++ b/queries/csharp.scm @@ -284,9 +284,11 @@ ")" @name.iteration.end.startOf @value.iteration.end.startOf @type.iteration.end.startOf ) -(argument_list - "(" @argumentOrParameter.iteration.start.endOf - ")" @argumentOrParameter.iteration.end.startOf +(_ + (argument_list + "(" @argumentOrParameter.iteration.start.endOf + ")" @argumentOrParameter.iteration.end.startOf + ) ) @argumentOrParameter.iteration.domain ;; Treat interior of all bodies as iteration scopes for `name`, eg @@ -294,10 +296,8 @@ ;;! *** (_ body: (_ - . "{" @name.iteration.start.endOf @value.iteration.start.endOf @type.iteration.start.endOf "}" @name.iteration.end.startOf @value.iteration.end.startOf @type.iteration.end.startOf - . ) ) diff --git a/queries/css.scm b/queries/css.scm index e0ac6d2696..062889c917 100644 --- a/queries/css.scm +++ b/queries/css.scm @@ -88,11 +88,11 @@ (#insertion-delimiter! @argumentOrParameter ", ") ) -(arguments - . - "(" @argumentOrParameter.iteration.start.endOf - ")" @argumentOrParameter.iteration.end.startOf - . +(_ + (arguments + "(" @argumentOrParameter.iteration.start.endOf + ")" @argumentOrParameter.iteration.end.startOf + ) ) @argumentOrParameter.iteration.domain ;; Entire file @@ -107,10 +107,8 @@ ;; { } (block - . "{" @name.iteration.start.endOf @collectionKey.iteration.start.endOf @value.iteration.start.endOf "}" @name.iteration.end.startOf @collectionKey.iteration.end.startOf @value.iteration.end.startOf - . ) @map ;;!! width: 100px; diff --git a/queries/go.scm b/queries/go.scm index 598ce90fa4..455f3e404b 100644 --- a/queries/go.scm +++ b/queries/go.scm @@ -364,13 +364,18 @@ (#single-or-multi-line-delimiter! @argumentOrParameter @_dummy ", " ",\n") ) -(parameter_list - "(" @argumentOrParameter.iteration.start.endOf - ")" @argumentOrParameter.iteration.end.startOf +(_ + (parameter_list + "(" @argumentOrParameter.iteration.start.endOf + ")" @argumentOrParameter.iteration.end.startOf + ) ) @argumentOrParameter.iteration.domain -(argument_list - "(" @argumentOrParameter.iteration.start.endOf - ")" @argumentOrParameter.iteration.end.startOf + +(_ + (argument_list + "(" @argumentOrParameter.iteration.start.endOf + ")" @argumentOrParameter.iteration.end.startOf + ) ) @argumentOrParameter.iteration.domain operator: [ diff --git a/queries/java.scm b/queries/java.scm index f5c45453d1..5fae385b9d 100644 --- a/queries/java.scm +++ b/queries/java.scm @@ -537,9 +537,11 @@ (#empty-single-multi-delimiter! @argumentList.start.endOf @_dummy "" ", " ",\n") ) @argumentList.domain @argumentOrParameter.iteration.domain -(argument_list - "(" @argumentOrParameter.iteration.start.endOf - ")" @argumentOrParameter.iteration.end.startOf +(_ + (argument_list + "(" @argumentOrParameter.iteration.start.endOf + ")" @argumentOrParameter.iteration.end.startOf + ) ) @argumentOrParameter.iteration.domain ;;!! try (PrintWriter writer = create()) { } diff --git a/queries/javascript.core.scm b/queries/javascript.core.scm index 4fdbcf1294..2d016e475e 100644 --- a/queries/javascript.core.scm +++ b/queries/javascript.core.scm @@ -794,9 +794,11 @@ ")" @name.iteration.end.startOf @value.iteration.end.startOf @type.iteration.end.startOf ) -(arguments - "(" @argumentOrParameter.iteration.start.endOf - ")" @argumentOrParameter.iteration.end.startOf +(_ + (arguments + "(" @argumentOrParameter.iteration.start.endOf + ")" @argumentOrParameter.iteration.end.startOf + ) ) @argumentOrParameter.iteration.domain operator: [ diff --git a/queries/php.scm b/queries/php.scm index 8c0e514227..3ef6552914 100644 --- a/queries/php.scm +++ b/queries/php.scm @@ -170,11 +170,29 @@ ) ) @argumentOrParameter.iteration.domain -(arguments - "(" @argumentOrParameter.iteration.start.endOf - ")" @argumentOrParameter.iteration.end.startOf +;;!! foo.bar(a, b); +;;! ^^^^ +(binary_expression + (function_call_expression + (arguments + "(" @argumentOrParameter.iteration.start.endOf + ")" @argumentOrParameter.iteration.end.startOf + ) + ) ) @argumentOrParameter.iteration.domain +;;!! foo(a, b); +;;! ^^^^ +( + (_ + (arguments + "(" @argumentOrParameter.iteration.start.endOf + ")" @argumentOrParameter.iteration.end.startOf + ) + ) @argumentOrParameter.iteration.domain + (#not-parent-type? @argumentOrParameter.iteration.domain binary_expression) +) + ;;!! ['num' => 1]; ;;! ^^^^^ ;;! ^ diff --git a/queries/python.scm b/queries/python.scm index 153ec429bb..3783d2d2a9 100644 --- a/queries/python.scm +++ b/queries/python.scm @@ -719,10 +719,12 @@ (#empty-single-multi-delimiter! @argumentList.start.endOf @_dummy "" ", " ",\n") ) @argumentList.domain @argumentOrParameter.iteration.domain -(argument_list - "(" @argumentOrParameter.iteration.start.endOf @name.iteration.start.endOf @value.iteration.start.endOf - ")" @argumentOrParameter.iteration.end.startOf @name.iteration.end.startOf @value.iteration.end.startOf -) @argumentOrParameter.iteration.domain @name.iteration.domain @value.iteration.domain +(_ + (argument_list + "(" @argumentOrParameter.iteration.start.endOf @name.iteration.start.endOf @value.iteration.start.endOf + ")" @argumentOrParameter.iteration.end.startOf @name.iteration.end.startOf @value.iteration.end.startOf + ) @name.iteration.domain @value.iteration.domain +) @argumentOrParameter.iteration.domain (call (generator_expression diff --git a/queries/r.scm b/queries/r.scm index 529b144b90..8b1faaabfc 100644 --- a/queries/r.scm +++ b/queries/r.scm @@ -46,8 +46,8 @@ (function_definition) @anonymousFunction ;; argument.actual -;;!! foo("bar") -;;! ^^^^^ +;;!! foo(a, b") +;;! ^ ^ ( (arguments ( @@ -67,7 +67,7 @@ ;; argument.formal ;;!! function(a, b){} -;;! ^^^^ +;;! ^ ^ ( (parameters ( @@ -85,33 +85,42 @@ (#single-or-multi-line-delimiter! @argumentOrParameter @_dummy ", " ",\n") ) -[ - ;; argument.actual - ;;!! foo(a, b) - ;;! ^^^^ - (call - arguments: (arguments - open: "(" @argumentList.start.endOf @argumentOrParameter.iteration.start.endOf - close: ")" @argumentList.end.startOf @argumentOrParameter.iteration.end.startOf - ) @_dummy @argumentOrParameter.iteration.domain - (#empty-single-multi-delimiter! @argumentList.start.endOf @_dummy "" ", " ",\n") - ) +;; argumentList.actual +;;!! foo(a, b) +;;! ^^^^ +(call + (arguments + open: "(" @argumentList.start.endOf @argumentOrParameter.iteration.start.endOf + close: ")" @argumentList.end.startOf @argumentOrParameter.iteration.end.startOf + ) @_dummy + (#empty-single-multi-delimiter! @argumentList.start.endOf @_dummy "" ", " ",\n") +) @argumentList.domain @argumentOrParameter.iteration.domain - ;; argument.formal - ;;!! function(a, b){} - ;;! ^^^^ +;; argumentList.formal +;;!! foo <- function(a, b){ } +;;! ^^^^ +(binary_operator (function_definition - parameters: (parameters - open: "(" @argumentList.start.endOf @argumentOrParameter.iteration.start.endOf - close: ")" @argumentList.end.startOf @argumentOrParameter.iteration.end.startOf - ) @_dummy - (#empty-single-multi-delimiter! @argumentList.start.endOf @_dummy "" ", " ",\n") + (parameters + open: "(" @argumentList.start.endOf @argumentOrParameter.iteration.start.endOf + close: ")" @argumentList.end.startOf @argumentOrParameter.iteration.end.startOf + ) @_dummy + (#empty-single-multi-delimiter! @argumentList.start.endOf @_dummy "" ", " ",\n") ) -] @argumentList.domain +) @argumentList.domain @argumentOrParameter.iteration.domain -(arguments - "(" @argumentOrParameter.iteration.start.endOf - ")" @argumentOrParameter.iteration.end.startOf +;; argumentList.formal +;;!! function(a, b){} +;;! ^^^^ +( + (function_definition + (parameters + open: "(" @argumentList.start.endOf @argumentOrParameter.iteration.start.endOf + close: ")" @argumentList.end.startOf @argumentOrParameter.iteration.end.startOf + ) @_dummy + (#empty-single-multi-delimiter! @argumentList.start.endOf @_dummy "" ", " ",\n") + ) @argumentList.domain @argumentOrParameter.iteration.domain + (#not-parent-type? @argumentList.domain binary_operator) ) (parameters @@ -119,31 +128,6 @@ ")" @name.iteration.end.startOf @value.iteration.end.startOf @type.iteration.end.startOf ) -;;!! function(a, b){ } -;;! ^^^^ -;; For domain, have to handle either named or unnamed function using -;; alternation, to ensure that the function name is part of the domain if it -;; exists -[ - (binary_operator - (function_definition - parameters: (parameters - open: "(" @argumentList.start.endOf @argumentOrParameter.iteration.start.endOf - close: ")" @argumentList.end.startOf @argumentOrParameter.iteration.end.startOf - ) @_dummy - (#empty-single-multi-delimiter! @argumentList.start.endOf @_dummy "" ", " ",\n") - ) - ) @argumentOrParameter.iteration.domain - (function_definition - parameters: (parameters - open: "(" @argumentList.start.endOf @argumentOrParameter.iteration.start.endOf - close: ")" @argumentList.end.startOf @argumentOrParameter.iteration.end.startOf - ) @_dummy - (#empty-single-multi-delimiter! @argumentList.start.endOf @_dummy "" ", " ",\n") - ) -] @argumentList.domain - - ;; Function calls ;;!! foo() ;;! ^^^^^ @@ -170,7 +154,10 @@ ;;! ^^^^^ ;;! ----- lhs: (identifier) @name @value.leading.endOf - operator: ["<-" "="] + operator: [ + "<-" + "=" + ] ;;!! hello <- "world" ;;! ^^^^^^^ ;;! ----- diff --git a/queries/talon.scm b/queries/talon.scm index ecf22ac523..524fb64435 100644 --- a/queries/talon.scm +++ b/queries/talon.scm @@ -176,16 +176,18 @@ (#insertion-delimiter! @argumentOrParameter ", ") ) -(argument_list - . - "(" @argumentOrParameter.iteration.start.endOf - ")" @argumentOrParameter.iteration.end.startOf - . +(_ + (argument_list + "(" @argumentOrParameter.iteration.start.endOf + ")" @argumentOrParameter.iteration.end.startOf + ) ) @argumentOrParameter.iteration.domain ;;!! key(enter) ;;! ^^^^^ -arguments: (implicit_string) @argumentOrParameter.iteration +(_ + arguments: (implicit_string) @argumentOrParameter.iteration +) @argumentOrParameter.iteration.domain ;;!! # foo ;;! ^^^^^