Skip to content

Commit 3a76bf5

Browse files
committed
switch comparison can be arguments
1 parent 13877a9 commit 3a76bf5

File tree

1 file changed

+97
-20
lines changed

1 file changed

+97
-20
lines changed

PowerShellSyntax.tmLanguage

Lines changed: 97 additions & 20 deletions
Original file line numberDiff line numberDiff line change
@@ -1184,16 +1184,77 @@
11841184
<key>patterns</key>
11851185
<array>
11861186
<dict>
1187-
<key>comment</key>
1188-
<string>default: only in switch</string>
1189-
<key>match</key>
1190-
<string>(?i:default)(?![^\s{(,;&amp;|)}])</string>
1187+
<key>begin</key>
1188+
<string>\G(?![;&amp;|)}])|(?&lt;=\})</string>
1189+
<key>end</key>
1190+
<string>(?=.|$)</string>
1191+
<key>applyEndPatternLast</key>
1192+
<true/>
1193+
<key>name</key>
1194+
<string>meta.argument.switch-condition.powershell</string>
1195+
<key>patterns</key>
1196+
<array>
1197+
<dict>
1198+
<key>begin</key>
1199+
<string>(?&lt;=[\s]|\G)(?![\s#;&amp;|)}]|&lt;#|$)</string>
1200+
<key>end</key>
1201+
<string>(?!\G)</string>
1202+
<key>patterns</key>
1203+
<array>
1204+
<dict>
1205+
<key>comment</key>
1206+
<string>default: only in switch</string>
1207+
<key>match</key>
1208+
<string>(?i:default)(?![^\s{(,;&amp;|)}])</string>
1209+
<key>name</key>
1210+
<string>keyword.control.$0.powershell</string>
1211+
</dict>
1212+
<dict>
1213+
<key>include</key>
1214+
<string>#argument</string>
1215+
</dict>
1216+
</array>
1217+
</dict>
1218+
<dict>
1219+
<key>include</key>
1220+
<string>#advanceToToken</string>
1221+
</dict>
1222+
</array>
1223+
</dict>
1224+
<dict>
1225+
<key>begin</key>
1226+
<string>{</string>
1227+
<key>beginCaptures</key>
1228+
<dict>
1229+
<key>0</key>
1230+
<dict>
1231+
<key>name</key>
1232+
<string>punctuation.section.braces.begin.powershell</string>
1233+
</dict>
1234+
</dict>
1235+
<key>end</key>
1236+
<string>}</string>
1237+
<key>endCaptures</key>
1238+
<dict>
1239+
<key>0</key>
1240+
<dict>
1241+
<key>name</key>
1242+
<string>punctuation.section.braces.end.powershell</string>
1243+
</dict>
1244+
</dict>
11911245
<key>name</key>
1192-
<string>keyword.control.$0.powershell</string>
1246+
<string>meta.statements.switch-condition.powershell</string>
1247+
<key>patterns</key>
1248+
<array>
1249+
<dict>
1250+
<key>include</key>
1251+
<string>$self</string>
1252+
</dict>
1253+
</array>
11931254
</dict>
11941255
<dict>
11951256
<key>include</key>
1196-
<string>$self</string>
1257+
<string>#notCode</string>
11971258
</dict>
11981259
</array>
11991260
</dict>
@@ -1203,26 +1264,31 @@
12031264
<key>begin</key>
12041265
<string>\G(?=[\s#\x{2013}-\x{2015}-]|&lt;#)</string>
12051266
<key>end</key>
1206-
<string>(?=[^\s#\x{2013}-\x{2015}-]|&lt;#)</string>
1267+
<string>(?![\s#\x{2013}-\x{2015}-]|&lt;#)</string>
12071268
<key>patterns</key>
12081269
<array>
12091270
<dict>
12101271
<key>match</key>
12111272
<string>(?i:[\x{2013}-\x{2015}-](regex|wildcard|exact|casesensitive))</string>
12121273
<key>name</key>
1213-
<string>entity.name.parameter.powershell</string>
1274+
<string>entity.name.parameter.switch-$0.powershell</string>
12141275
</dict>
12151276
<dict>
12161277
<key>comment</key>
12171278
<string>-file is special case, needs file argument, no condition expression</string>
12181279
<key>begin</key>
1219-
<string>(?i:[\x{2013}-\x{2015}-]file)</string>
1280+
<string>((?i:[\x{2013}-\x{2015}-]file))(:)?</string>
12201281
<key>beginCaptures</key>
12211282
<dict>
1222-
<key>0</key>
1283+
<key>1</key>
1284+
<dict>
1285+
<key>name</key>
1286+
<string>entity.name.parameter.switch-file.powershell</string>
1287+
</dict>
1288+
<key>2</key>
12231289
<dict>
12241290
<key>name</key>
1225-
<string>entity.name.parameter.powershell</string>
1291+
<string>punctuation.separator.parameter-value.powershell</string>
12261292
</dict>
12271293
</dict>
12281294
<key>end</key>
@@ -1233,16 +1299,27 @@
12331299
<array>
12341300
<dict>
12351301
<key>begin</key>
1236-
<string>\G(?![{(;&amp;|)}])</string>
1302+
<string>\G(?![;&amp;|)}])</string>
12371303
<key>end</key>
12381304
<string>(?=.|$)</string>
12391305
<key>applyEndPatternLast</key>
12401306
<true/>
1307+
<key>name</key>
1308+
<string>meta.argument.switch-file.powershell</string>
12411309
<key>patterns</key>
12421310
<array>
12431311
<dict>
1244-
<key>include</key>
1245-
<string>#argument</string>
1312+
<key>begin</key>
1313+
<string>(?&lt;=[\s]|\G)(?![\s#;&amp;|)}]|&lt;#|$)</string>
1314+
<key>end</key>
1315+
<string>(?!\G)</string>
1316+
<key>patterns</key>
1317+
<array>
1318+
<dict>
1319+
<key>include</key>
1320+
<string>#argument</string>
1321+
</dict>
1322+
</array>
12461323
</dict>
12471324
<dict>
12481325
<key>include</key>
@@ -2373,7 +2450,7 @@
23732450
<key>begin</key>
23742451
<string>(?=\$\()</string>
23752452
<key>end</key>
2376-
<string>(?!.\G)</string>
2453+
<string>(?=.|$)</string>
23772454
<key>applyEndPatternLast</key>
23782455
<true/>
23792456
<key>patterns</key>
@@ -2750,7 +2827,7 @@
27502827
<key>begin</key>
27512828
<string>(?={)</string>
27522829
<key>end</key>
2753-
<string>(?!.\G)</string>
2830+
<string>(?=.|$)</string>
27542831
<key>applyEndPatternLast</key>
27552832
<true/>
27562833
<key>patterns</key>
@@ -2810,7 +2887,7 @@
28102887
<key>begin</key>
28112888
<string>(?=\[)</string>
28122889
<key>end</key>
2813-
<string>(?!\G)</string>
2890+
<string>(?=.|$)</string>
28142891
<key>applyEndPatternLast</key>
28152892
<true/>
28162893
<key>patterns</key>
@@ -3120,7 +3197,7 @@
31203197
<key>begin</key>
31213198
<string>\G(?=\[)</string>
31223199
<key>end</key>
3123-
<string>(?!\G)</string>
3200+
<string>(?=.|$)</string>
31243201
<key>applyEndPatternLast</key>
31253202
<true/>
31263203
<key>patterns</key>
@@ -3211,7 +3288,7 @@
32113288
<key>begin</key>
32123289
<string>\G(?=\()</string>
32133290
<key>end</key>
3214-
<string>(?!\G)</string>
3291+
<string>(?=.|$)</string>
32153292
<key>applyEndPatternLast</key>
32163293
<true/>
32173294
<key>patterns</key>
@@ -4653,7 +4730,7 @@
46534730
<key>comment</key>
46544731
<string>when nothing else matches in usual tokenizing, consume it to prevent other patterns from striking in the middle of what might be a command name.</string>
46554732
<key>begin</key>
4656-
<string>(?=[^\s\[(){},;&amp;|])</string>
4733+
<string>(?=[^\[\s{(,;&amp;|)}])</string>
46574734
<key>alternateBegin</key>
46584735
<string>(?=[^\x{2018}-\x{201B}"\x{201C}-\x{201E}\s\[(){},;&amp;|$@])|(?&lt;=\S)(?=[$@&lt;&gt;])</string>
46594736
<key>end</key>

0 commit comments

Comments
 (0)