Skip to content

Commit 8513858

Browse files
author
fidgetingbits
committed
Fix name chucking to match typescript logic
1 parent 930a0f9 commit 8513858

File tree

5 files changed

+135
-25
lines changed

5 files changed

+135
-25
lines changed

packages/cursorless-vscode-e2e/src/suite/fixtures/recorded/languages/lua/chuckName.yml

+8-6
Original file line numberDiff line numberDiff line change
@@ -11,13 +11,15 @@ command:
1111
scopeType: {type: name}
1212
usePrePhraseSnapshot: true
1313
initialState:
14-
documentContents: local a = 42
14+
documentContents: |
15+
local a = 42
1516
selections:
16-
- anchor: {line: 0, character: 12}
17-
active: {line: 0, character: 12}
17+
- anchor: {line: 0, character: 3}
18+
active: {line: 0, character: 3}
1819
marks: {}
1920
finalState:
20-
documentContents: local = 42
21+
documentContents: |
22+
42
2123
selections:
22-
- anchor: {line: 0, character: 10}
23-
active: {line: 0, character: 10}
24+
- anchor: {line: 0, character: 0}
25+
active: {line: 0, character: 0}
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,25 @@
1+
languageId: lua
2+
command:
3+
version: 6
4+
spokenForm: chuck name
5+
action:
6+
name: remove
7+
target:
8+
type: primitive
9+
modifiers:
10+
- type: containingScope
11+
scopeType: {type: name}
12+
usePrePhraseSnapshot: true
13+
initialState:
14+
documentContents: |
15+
a = 42
16+
selections:
17+
- anchor: {line: 0, character: 6}
18+
active: {line: 0, character: 6}
19+
marks: {}
20+
finalState:
21+
documentContents: |
22+
42
23+
selections:
24+
- anchor: {line: 0, character: 2}
25+
active: {line: 0, character: 2}
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,23 @@
1+
languageId: lua
2+
command:
3+
version: 6
4+
spokenForm: chuck name
5+
action:
6+
name: remove
7+
target:
8+
type: primitive
9+
modifiers:
10+
- type: containingScope
11+
scopeType: {type: name}
12+
usePrePhraseSnapshot: true
13+
initialState:
14+
documentContents: local a,b = "Hello", "World"
15+
selections:
16+
- anchor: {line: 0, character: 28}
17+
active: {line: 0, character: 28}
18+
marks: {}
19+
finalState:
20+
documentContents: "\"Hello\", \"World\""
21+
selections:
22+
- anchor: {line: 0, character: 16}
23+
active: {line: 0, character: 16}
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,23 @@
1+
languageId: lua
2+
command:
3+
version: 6
4+
spokenForm: chuck name
5+
action:
6+
name: remove
7+
target:
8+
type: primitive
9+
modifiers:
10+
- type: containingScope
11+
scopeType: {type: name}
12+
usePrePhraseSnapshot: true
13+
initialState:
14+
documentContents: a,b = "Hello", "World"
15+
selections:
16+
- anchor: {line: 0, character: 22}
17+
active: {line: 0, character: 22}
18+
marks: {}
19+
finalState:
20+
documentContents: "\"Hello\", \"World\""
21+
selections:
22+
- anchor: {line: 0, character: 16}
23+
active: {line: 0, character: 16}

queries/lua.scm

+56-19
Original file line numberDiff line numberDiff line change
@@ -42,6 +42,7 @@
4242
condition: (_) @condition
4343
) @_.domain
4444

45+
;; !!
4546
(if_statement
4647
"if" @branch.start
4748
consequence: (_) @branch.end
@@ -108,37 +109,72 @@
108109
) @_.domain @anonymousFunction
109110

110111
;; Names and values
111-
(assignment_statement
112-
(variable_list
113-
name: (_) @name
114-
;; Handle multiple variable declarators in one statement, eg
115-
;;!! local b, c = "Hello", "World"
116-
;;! ------^--^-------------------
117-
(#allow-multiple! @name)
118-
) @_.leading.end.startOf
119-
) @_.domain
120-
(variable_declaration
112+
113+
;; Handle variable assignments
114+
;;!! a = 42
115+
;;! ^-----
116+
;;! xxxx--
117+
(
121118
(assignment_statement
122119
(variable_list
123120
name: (_) @name
124-
;; Handle multiple variable declarators in one statement, eg
125-
;;!! local b, c = "Hello", "World"
126-
;;! ------^--^-------------------
121+
;; Handle multiple variable assignments in one statement, eg
122+
;;!! b, c = "Hello", "World"
123+
;;! ^--^-------------------
124+
;;! xxxxxxx----------------
127125
(#allow-multiple! @name)
128-
) @_.leading.end.startOf
129-
)
130-
) @_.domain
126+
)
127+
.
128+
"="
129+
.
130+
(_) @_.leading.end.startOf
131+
) @dummy @_.leading.start.startOf @_.domain
132+
(#not-parent-type? @dummy variable_declaration)
133+
)
134+
;; Handle variable declarations
135+
;;!! local a = 42
136+
;;! ------^-----
137+
;;! xxxxxxxxxx--
138+
(_
139+
local_declaration: (variable_declaration
140+
"local" @_.leading.start.startOf
141+
.
142+
(assignment_statement
143+
(variable_list
144+
name: (_) @name
145+
;; Handle multiple variable declarators in one statement, eg
146+
;;!! local b, c = "Hello", "World"
147+
;;! ------^--^-------------------
148+
;;! xxxxxxxxxxxxx----------------
149+
(#allow-multiple! @name)
150+
)
151+
.
152+
"="
153+
(_) @_.leading.end.startOf
154+
)
155+
) @_.domain
156+
)
157+
158+
;; Handle assignment values
159+
;;!! a = 42
160+
;;! ----------^^
161+
;;! -------XXXXX
131162
(assignment_statement
132163
(_) @_.leading.start.endOf
133164
.
134165
(expression_list
135166
value: (_) @value
136-
;; Handle multiple variable declarators in one statement, eg
137-
;;!! local b, c = "Hello", "World"
138-
;;! -------------^^^^^^^--^^^^^^^
167+
;; Handle multiple variable assignments in one statement, eg
168+
;;!! b, c = "Hello", "World"
169+
;;! -------^^^^^^^--^^^^^^^
170+
;;! ----xxxxxxxxxxxxxxxxxxx
139171
(#allow-multiple! @value)
140172
) @_.leading.end.startOf
141173
) @_.domain
174+
;; Handle variable declaration values
175+
;;!! local a = 42
176+
;;! ----------^^
177+
;;! -------XXXXX
142178
(variable_declaration
143179
(assignment_statement
144180
(_) @_.leading.start.endOf
@@ -148,6 +184,7 @@
148184
;; Handle multiple variable declarators in one statement, eg
149185
;;!! local b, c = "Hello", "World"
150186
;;! -------------^^^^^^^--^^^^^^^
187+
;;! ----------xxxxxxxxxxxxxxxxxxx
151188
(#allow-multiple! @value)
152189
) @_.leading.end.startOf
153190
)

0 commit comments

Comments
 (0)