Skip to content

Commit 374d7ad

Browse files
author
fidgetingbits
committed
Expand switch case support
1 parent 619d8be commit 374d7ad

File tree

6 files changed

+245
-3
lines changed

6 files changed

+245
-3
lines changed
Lines changed: 45 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,45 @@
1+
languageId: shellscript
2+
command:
3+
version: 6
4+
spokenForm: change branch
5+
action:
6+
name: clearAndSetSelection
7+
target:
8+
type: primitive
9+
modifiers:
10+
- type: containingScope
11+
scopeType: {type: branch}
12+
usePrePhraseSnapshot: true
13+
initialState:
14+
documentContents: |
15+
# Case statement
16+
case "$number" in
17+
1)
18+
echo "Number is 1"
19+
;;
20+
2)
21+
echo "Number is 2"
22+
;;
23+
*)
24+
echo "Number is not recognized"
25+
;;
26+
esac
27+
selections:
28+
- anchor: {line: 4, character: 4}
29+
active: {line: 4, character: 4}
30+
marks: {}
31+
finalState:
32+
documentContents: |
33+
# Case statement
34+
case "$number" in
35+
36+
2)
37+
echo "Number is 2"
38+
;;
39+
*)
40+
echo "Number is not recognized"
41+
;;
42+
esac
43+
selections:
44+
- anchor: {line: 2, character: 0}
45+
active: {line: 2, character: 0}
Lines changed: 47 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,47 @@
1+
languageId: shellscript
2+
command:
3+
version: 6
4+
spokenForm: change condition
5+
action:
6+
name: clearAndSetSelection
7+
target:
8+
type: primitive
9+
modifiers:
10+
- type: containingScope
11+
scopeType: {type: condition}
12+
usePrePhraseSnapshot: true
13+
initialState:
14+
documentContents: |
15+
# Case statement
16+
case "$number" in
17+
1)
18+
echo "Number is 1"
19+
;;
20+
2)
21+
echo "Number is 2"
22+
;;
23+
*)
24+
echo "Number is not recognized"
25+
;;
26+
esac
27+
selections:
28+
- anchor: {line: 3, character: 9}
29+
active: {line: 3, character: 9}
30+
marks: {}
31+
finalState:
32+
documentContents: |
33+
# Case statement
34+
case "$number" in
35+
)
36+
echo "Number is 1"
37+
;;
38+
2)
39+
echo "Number is 2"
40+
;;
41+
*)
42+
echo "Number is not recognized"
43+
;;
44+
esac
45+
selections:
46+
- anchor: {line: 2, character: 0}
47+
active: {line: 2, character: 0}
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,48 @@
1+
languageId: shellscript
2+
command:
3+
version: 6
4+
spokenForm: change inside branch
5+
action:
6+
name: clearAndSetSelection
7+
target:
8+
type: primitive
9+
modifiers:
10+
- {type: interiorOnly}
11+
- type: containingScope
12+
scopeType: {type: branch}
13+
usePrePhraseSnapshot: true
14+
initialState:
15+
documentContents: |
16+
# Case statement
17+
case "$number" in
18+
1)
19+
echo "Number is 1"
20+
;;
21+
2)
22+
echo "Number is 2"
23+
;;
24+
*)
25+
echo "Number is not recognized"
26+
;;
27+
esac
28+
selections:
29+
- anchor: {line: 6, character: 2}
30+
active: {line: 6, character: 20}
31+
marks: {}
32+
finalState:
33+
documentContents: |
34+
# Case statement
35+
case "$number" in
36+
1)
37+
echo "Number is 1"
38+
;;
39+
2)
40+
41+
;;
42+
*)
43+
echo "Number is not recognized"
44+
;;
45+
esac
46+
selections:
47+
- anchor: {line: 6, character: 2}
48+
active: {line: 6, character: 2}
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,52 @@
1+
languageId: shellscript
2+
command:
3+
version: 6
4+
spokenForm: change inside every branch
5+
action:
6+
name: clearAndSetSelection
7+
target:
8+
type: primitive
9+
modifiers:
10+
- {type: interiorOnly}
11+
- type: everyScope
12+
scopeType: {type: branch}
13+
usePrePhraseSnapshot: true
14+
initialState:
15+
documentContents: |
16+
# Case statement
17+
case "$number" in
18+
1)
19+
echo "Number is 1"
20+
;;
21+
2)
22+
echo "Number is 2"
23+
;;
24+
*)
25+
echo "Number is not recognized"
26+
;;
27+
esac
28+
selections:
29+
- anchor: {line: 3, character: 9}
30+
active: {line: 3, character: 9}
31+
marks: {}
32+
finalState:
33+
documentContents: |
34+
# Case statement
35+
case "$number" in
36+
1)
37+
38+
;;
39+
2)
40+
41+
;;
42+
*)
43+
44+
;;
45+
esac
46+
selections:
47+
- anchor: {line: 3, character: 2}
48+
active: {line: 3, character: 2}
49+
- anchor: {line: 6, character: 2}
50+
active: {line: 6, character: 2}
51+
- anchor: {line: 9, character: 2}
52+
active: {line: 9, character: 2}
Lines changed: 47 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,47 @@
1+
languageId: shellscript
2+
command:
3+
version: 6
4+
spokenForm: chuck inside branch
5+
action:
6+
name: remove
7+
target:
8+
type: primitive
9+
modifiers:
10+
- {type: interiorOnly}
11+
- type: containingScope
12+
scopeType: {type: branch}
13+
usePrePhraseSnapshot: true
14+
initialState:
15+
documentContents: |
16+
# Case statement
17+
case "$number" in
18+
1)
19+
echo "Number is 1"
20+
;;
21+
2)
22+
echo "Number is 2"
23+
;;
24+
*)
25+
echo "Number is not recognized"
26+
;;
27+
esac
28+
selections:
29+
- anchor: {line: 3, character: 9}
30+
active: {line: 3, character: 9}
31+
marks: {}
32+
finalState:
33+
documentContents: |
34+
# Case statement
35+
case "$number" in
36+
1)
37+
;;
38+
2)
39+
echo "Number is 2"
40+
;;
41+
*)
42+
echo "Number is not recognized"
43+
;;
44+
esac
45+
selections:
46+
- anchor: {line: 2, character: 2}
47+
active: {line: 2, character: 2}

queries/shellscript.scm

Lines changed: 6 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -141,9 +141,12 @@
141141

142142
(case_statement) @branch.iteration @condition.iteration
143143
(case_item
144-
value: (_) @condition @branch.interior.start.startOf
145-
;; FIXME: See how to escape this..
146-
;;";;" @branch.interior.end.endOf
144+
value: (_) @condition
145+
.
146+
")" @branch.interior.start.endOf
147+
(_) @branch.interior.end.endOf
148+
.
149+
";;"
147150
) @branch @_.domain
148151

149152
;; Lists and maps

0 commit comments

Comments
 (0)