Skip to content

Commit e19af4d

Browse files
committed
fixed switch default problems, cf #73
1 parent ebfbdc0 commit e19af4d

2 files changed

Lines changed: 126 additions & 80 deletions

File tree

JavaScriptNext.YAML-tmLanguage

Lines changed: 34 additions & 24 deletions
Original file line numberDiff line numberDiff line change
@@ -20,6 +20,7 @@ repository:
2020

2121
- include: '#support'
2222
- include: '#literal-keywords'
23+
- include: '#literal-switch'
2324

2425
- include: '#expression' # after storage which requires this in some cases
2526

@@ -53,32 +54,32 @@ repository:
5354
brackets:
5455
patterns:
5556
- name: meta.group.braces.round
56-
begin: (\()
57+
begin: \(
5758
beginCaptures:
58-
'1': {name: meta.brace.round.js}
59-
end: (\))
59+
'0': {name: meta.brace.round.js}
60+
end: \)
6061
endCaptures:
61-
'1': {name: meta.brace.round.js}
62+
'0': {name: meta.brace.round.js}
6263
patterns:
6364
- include: $self
6465

6566
- name: meta.group.braces.square
66-
begin: (\[)
67+
begin: \[
6768
beginCaptures:
68-
'1': {name: meta.brace.square.js}
69-
end: (\])
69+
'0': {name: meta.brace.square.js}
70+
end: \]
7071
endCaptures:
71-
'1': {name: meta.brace.square.js}
72+
'0': {name: meta.brace.square.js}
7273
patterns:
7374
- include: '#expression'
7475

7576
- name: meta.group.braces.curly
76-
begin: ({)
77+
begin: \{
7778
beginCaptures:
78-
'1': {name: meta.brace.curly.js}
79-
end: (})
79+
'0': {name: meta.brace.curly.js}
80+
end: \}
8081
endCaptures:
81-
'1': {name: meta.brace.curly.js}
82+
'0': {name: meta.brace.curly.js}
8283
patterns:
8384
- include: $self
8485

@@ -165,7 +166,7 @@ repository:
165166
literal-module:
166167
patterns:
167168
- name: keyword.operator.module.js
168-
match: (?<!\.)\b(import|export|from|as)\b
169+
match: (?<!\.)\b(import|export|default|from|as)\b
169170

170171
literal-class:
171172
patterns:
@@ -187,8 +188,6 @@ repository:
187188
beginCaptures:
188189
'1': {name: storage.type.extends.js}
189190
end: '(?={)'
190-
endCaptures:
191-
'0': {name: meta.brace.curly.js}
192191
patterns:
193192
- include: '#expression'
194193

@@ -605,20 +604,31 @@ repository:
605604
- name: keyword.control.loop.js
606605
match: (?<!\.)\b(break|continue|do|for|goto|while)\b
607606

608-
- name: keyword.control.switch.js
609-
match: (?<!\.)\b(switch)\b
607+
- name: keyword.operator.js
608+
match: (?<!\.)\b(await|delete|in|instanceof|new|of|typeof|void|with)\b
610609

611-
- begin: (?<!\.)\b(case|default)\b
610+
literal-switch:
611+
patterns:
612+
- name: meta.switch.js
613+
begin: (?<!\.)\b(switch)\b
612614
beginCaptures:
613615
'1': {name: keyword.control.switch.js}
614-
end: ':'
616+
end: \}
615617
endCaptures:
616-
'0': {name: punctuation.separator.switch.js}
618+
'0': {name: meta.brace.curly.js}
617619
patterns:
618-
- include: '#expression'
619-
620-
- name: keyword.operator.js
621-
match: (?<!\.)\b(await|delete|in|instanceof|new|of|typeof|void|with)\b
620+
- begin: \{
621+
beginCaptures:
622+
'0': {name: meta.brace.curly.js}
623+
end: (?=})
624+
patterns:
625+
- begin: (?<!\.)\b(case|default)\b
626+
beginCaptures:
627+
'1': {name: keyword.control.switch.js}
628+
end: (?=:)
629+
patterns:
630+
- include: '#expression'
631+
- include: $self
622632

623633
literal-operators:
624634
patterns:

JavaScriptNext.tmLanguage

Lines changed: 92 additions & 56 deletions
Original file line numberDiff line numberDiff line change
@@ -33,20 +33,20 @@
3333
<array>
3434
<dict>
3535
<key>begin</key>
36-
<string>(\()</string>
36+
<string>\(</string>
3737
<key>beginCaptures</key>
3838
<dict>
39-
<key>1</key>
39+
<key>0</key>
4040
<dict>
4141
<key>name</key>
4242
<string>meta.brace.round.js</string>
4343
</dict>
4444
</dict>
4545
<key>end</key>
46-
<string>(\))</string>
46+
<string>\)</string>
4747
<key>endCaptures</key>
4848
<dict>
49-
<key>1</key>
49+
<key>0</key>
5050
<dict>
5151
<key>name</key>
5252
<string>meta.brace.round.js</string>
@@ -64,20 +64,20 @@
6464
</dict>
6565
<dict>
6666
<key>begin</key>
67-
<string>(\[)</string>
67+
<string>\[</string>
6868
<key>beginCaptures</key>
6969
<dict>
70-
<key>1</key>
70+
<key>0</key>
7171
<dict>
7272
<key>name</key>
7373
<string>meta.brace.square.js</string>
7474
</dict>
7575
</dict>
7676
<key>end</key>
77-
<string>(\])</string>
77+
<string>\]</string>
7878
<key>endCaptures</key>
7979
<dict>
80-
<key>1</key>
80+
<key>0</key>
8181
<dict>
8282
<key>name</key>
8383
<string>meta.brace.square.js</string>
@@ -95,20 +95,20 @@
9595
</dict>
9696
<dict>
9797
<key>begin</key>
98-
<string>({)</string>
98+
<string>\{</string>
9999
<key>beginCaptures</key>
100100
<dict>
101-
<key>1</key>
101+
<key>0</key>
102102
<dict>
103103
<key>name</key>
104104
<string>meta.brace.curly.js</string>
105105
</dict>
106106
</dict>
107107
<key>end</key>
108-
<string>(})</string>
108+
<string>\}</string>
109109
<key>endCaptures</key>
110110
<dict>
111-
<key>1</key>
111+
<key>0</key>
112112
<dict>
113113
<key>name</key>
114114
<string>meta.brace.curly.js</string>
@@ -238,6 +238,10 @@
238238
<key>include</key>
239239
<string>#literal-keywords</string>
240240
</dict>
241+
<dict>
242+
<key>include</key>
243+
<string>#literal-switch</string>
244+
</dict>
241245
<dict>
242246
<key>include</key>
243247
<string>#expression</string>
@@ -722,14 +726,6 @@
722726
</dict>
723727
<key>end</key>
724728
<string>(?={)</string>
725-
<key>endCaptures</key>
726-
<dict>
727-
<key>0</key>
728-
<dict>
729-
<key>name</key>
730-
<string>meta.brace.curly.js</string>
731-
</dict>
732-
</dict>
733729
<key>name</key>
734730
<string>meta.class.extends.js</string>
735731
<key>patterns</key>
@@ -1202,41 +1198,6 @@
12021198
<key>name</key>
12031199
<string>keyword.control.loop.js</string>
12041200
</dict>
1205-
<dict>
1206-
<key>match</key>
1207-
<string>(?&lt;!\.)\b(switch)\b</string>
1208-
<key>name</key>
1209-
<string>keyword.control.switch.js</string>
1210-
</dict>
1211-
<dict>
1212-
<key>begin</key>
1213-
<string>(?&lt;!\.)\b(case|default)\b</string>
1214-
<key>beginCaptures</key>
1215-
<dict>
1216-
<key>1</key>
1217-
<dict>
1218-
<key>name</key>
1219-
<string>keyword.control.switch.js</string>
1220-
</dict>
1221-
</dict>
1222-
<key>end</key>
1223-
<string>:</string>
1224-
<key>endCaptures</key>
1225-
<dict>
1226-
<key>0</key>
1227-
<dict>
1228-
<key>name</key>
1229-
<string>punctuation.separator.switch.js</string>
1230-
</dict>
1231-
</dict>
1232-
<key>patterns</key>
1233-
<array>
1234-
<dict>
1235-
<key>include</key>
1236-
<string>#expression</string>
1237-
</dict>
1238-
</array>
1239-
</dict>
12401201
<dict>
12411202
<key>match</key>
12421203
<string>(?&lt;!\.)\b(await|delete|in|instanceof|new|of|typeof|void|with)\b</string>
@@ -1566,7 +1527,7 @@
15661527
<array>
15671528
<dict>
15681529
<key>match</key>
1569-
<string>(?&lt;!\.)\b(import|export|from|as)\b</string>
1530+
<string>(?&lt;!\.)\b(import|export|default|from|as)\b</string>
15701531
<key>name</key>
15711532
<string>keyword.operator.module.js</string>
15721533
</dict>
@@ -1987,6 +1948,81 @@
19871948
</dict>
19881949
</array>
19891950
</dict>
1951+
<key>literal-switch</key>
1952+
<dict>
1953+
<key>patterns</key>
1954+
<array>
1955+
<dict>
1956+
<key>begin</key>
1957+
<string>(?&lt;!\.)\b(switch)\b</string>
1958+
<key>beginCaptures</key>
1959+
<dict>
1960+
<key>1</key>
1961+
<dict>
1962+
<key>name</key>
1963+
<string>keyword.control.switch.js</string>
1964+
</dict>
1965+
</dict>
1966+
<key>end</key>
1967+
<string>\}</string>
1968+
<key>endCaptures</key>
1969+
<dict>
1970+
<key>0</key>
1971+
<dict>
1972+
<key>name</key>
1973+
<string>meta.brace.curly.js</string>
1974+
</dict>
1975+
</dict>
1976+
<key>name</key>
1977+
<string>meta.switch.js</string>
1978+
<key>patterns</key>
1979+
<array>
1980+
<dict>
1981+
<key>begin</key>
1982+
<string>\{</string>
1983+
<key>beginCaptures</key>
1984+
<dict>
1985+
<key>0</key>
1986+
<dict>
1987+
<key>name</key>
1988+
<string>meta.brace.curly.js</string>
1989+
</dict>
1990+
</dict>
1991+
<key>end</key>
1992+
<string>(?=})</string>
1993+
<key>patterns</key>
1994+
<array>
1995+
<dict>
1996+
<key>begin</key>
1997+
<string>(?&lt;!\.)\b(case|default)\b</string>
1998+
<key>beginCaptures</key>
1999+
<dict>
2000+
<key>1</key>
2001+
<dict>
2002+
<key>name</key>
2003+
<string>keyword.control.switch.js</string>
2004+
</dict>
2005+
</dict>
2006+
<key>end</key>
2007+
<string>(?=:)</string>
2008+
<key>patterns</key>
2009+
<array>
2010+
<dict>
2011+
<key>include</key>
2012+
<string>#expression</string>
2013+
</dict>
2014+
</array>
2015+
</dict>
2016+
<dict>
2017+
<key>include</key>
2018+
<string>$self</string>
2019+
</dict>
2020+
</array>
2021+
</dict>
2022+
</array>
2023+
</dict>
2024+
</array>
2025+
</dict>
19902026
<key>literal-variable</key>
19912027
<dict>
19922028
<key>patterns</key>

0 commit comments

Comments
 (0)