Skip to content

Commit ab8e463

Browse files
committed
dot source and unquoted argument updates
1 parent fd37e90 commit ab8e463

File tree

1 file changed

+101
-16
lines changed

1 file changed

+101
-16
lines changed

PowerShellSyntax.tmLanguage

+101-16
Original file line numberDiff line numberDiff line change
@@ -2584,7 +2584,7 @@
25842584
<key>comment</key>
25852585
<string>(dot) source operator, requires trailing space, or invoke operator</string>
25862586
<key>begin</key>
2587-
<string>&amp;|\.(?=\*?[\s,;&amp;|{}\(\)]|\$[\p{L}$?^:_{])</string>
2587+
<string>&amp;|\.(?=[\s{(,;&amp;|)}"\x{201C}-\x{201E}'\x{2018}-\x{201B}]|\$[\p{L}$?^:_{(])</string>
25882588
<key>beginCaptures</key>
25892589
<dict>
25902590
<key>0</key>
@@ -2860,10 +2860,6 @@
28602860
<key>include</key>
28612861
<string>#expressionGroup</string>
28622862
</dict>
2863-
<dict>
2864-
<key>include</key>
2865-
<string>#substatement</string>
2866-
</dict>
28672863
<dict>
28682864
<key>include</key>
28692865
<string>#hashtable</string>
@@ -2874,15 +2870,81 @@
28742870
</dict>
28752871
<dict>
28762872
<key>include</key>
2877-
<string>#variable</string>
2873+
<string>#quotedStrings_Members</string>
28782874
</dict>
28792875
<dict>
28802876
<key>include</key>
2881-
<string>#quotedStrings_Members</string>
2877+
<string>#numericConstant_argumentMode</string>
2878+
</dict>
2879+
<dict>
2880+
<key>comment</key>
2881+
<string>could be variable reference, if it doesn't have member reference, its the start of an unquoted expandable string</string>
2882+
<key>begin</key>
2883+
<string>(?=\$(?!\())</string>
2884+
<key>end</key>
2885+
<string>(?=.|$)</string>
2886+
<key>applyEndPatternLast</key>
2887+
<true/>
2888+
<key>patterns</key>
2889+
<array>
2890+
<dict>
2891+
<key>comment</key>
2892+
<string>check out the first variable reference</string>
2893+
<key>begin</key>
2894+
<string>\G(?=\$)</string>
2895+
<key>end</key>
2896+
<string>(?!\G)</string>
2897+
<key>patterns</key>
2898+
<array>
2899+
<dict>
2900+
<key>include</key>
2901+
<string>#variableNoProperty</string>
2902+
</dict>
2903+
</array>
2904+
</dict>
2905+
<dict>
2906+
<key>comment</key>
2907+
<string>if a member access doesn't occur after variable, finish as an unquoted expandable string argument.</string>
2908+
<key>begin</key>
2909+
<string>(?=[^\s{(,;&amp;|)}])(?!(?=\.(?!\.)|::|\[))</string>
2910+
<key>end</key>
2911+
<string>(?=.|$)</string>
2912+
<key>applyEndPatternLast</key>
2913+
<true/>
2914+
<key>patterns</key>
2915+
<array>
2916+
<dict>
2917+
<key>include</key>
2918+
<string>#unquotedArgument</string>
2919+
</dict>
2920+
</array>
2921+
</dict>
2922+
<dict>
2923+
<key>begin</key>
2924+
<string>(?=\.(?!\.)|::|\[)</string>
2925+
<key>end</key>
2926+
<string>(?=.|$)</string>
2927+
<key>applyEndPatternLast</key>
2928+
<true/>
2929+
<key>patterns</key>
2930+
<array>
2931+
<dict>
2932+
<key>include</key>
2933+
<string>#accessors</string>
2934+
</dict>
2935+
<dict>
2936+
<key>comment</key>
2937+
<string>attempt another argument after member access</string>
2938+
<key>include</key>
2939+
<string>#argument</string>
2940+
</dict>
2941+
</array>
2942+
</dict>
2943+
</array>
28822944
</dict>
28832945
<dict>
28842946
<key>include</key>
2885-
<string>#numericConstant_argumentMode</string>
2947+
<string>#substatement</string>
28862948
</dict>
28872949
<dict>
28882950
<key>include</key>
@@ -2996,6 +3058,12 @@
29963058
<key>name</key>
29973059
<string>invalid.character.escape.powershell</string>
29983060
</dict>
3061+
<dict>
3062+
<key>match</key>
3063+
<string>\.(?=\$)</string>
3064+
<key>name</key>
3065+
<string>string.unquoted.argument.powershell</string>
3066+
</dict>
29993067
<dict>
30003068
<key>begin</key>
30013069
<string>(?=[^\s{(,;&amp;|)}])</string>
@@ -5746,14 +5814,14 @@
57465814
<key>begin</key>
57475815
<string>(?=\$(?:(?&gt;[\w][\w?]*:(?!:)|:)?(?:[\w?](?:[\w?]|:(?!:))*|:(?!:))|[$^:]|\{))</string>
57485816
<key>end</key>
5749-
<string>(?=.|$)</string>
5817+
<string>(?!\G)</string>
57505818
<key>applyEndPatternLast</key>
5751-
<true/>
5819+
<false/>
57525820
<key>patterns</key>
57535821
<array>
57545822
<dict>
57555823
<key>begin</key>
5756-
<string>\$(?:(?&gt;[\w][\w?]*:(?!:)|:)?(?:[\w?](?:[\w?]|:(?!:))*|:(?!:))|[$^:])(?=\.(?!\.)|::|\[)</string>
5824+
<string>\G\$(?:(?&gt;[\w][\w?]*:(?!:)|:)?(?:[\w?](?:[\w?]|:(?!:))*|:(?!:))|[$^:])(?=\.(?!\.)|::|\[)</string>
57575825
<key>beginCaptures</key>
57585826
<dict>
57595827
<key>0</key>
@@ -5781,7 +5849,7 @@
57815849
</dict>
57825850
<dict>
57835851
<key>match</key>
5784-
<string>\$(?:(?&gt;[\w][\w?]*:(?!:)|:)?(?:[\w?](?:[\w?]|:(?!:))*|:(?!:))|[$^:])</string>
5852+
<string>\G\$(?:(?&gt;[\w][\w?]*:(?!:)|:)?(?:[\w?](?:[\w?]|:(?!:))*|:(?!:))|[$^:])</string>
57855853
<key>captures</key>
57865854
<dict>
57875855
<key>0</key>
@@ -5806,7 +5874,7 @@
58065874
<key>comment</key>
58075875
<string>splatting cannot have members and certain characters following, including no line comment</string>
58085876
<key>match</key>
5809-
<string>(?&gt;@(?:(?&gt;[\w][\w?]*:(?!:)|:)?(?:[\w?](?:[\w?]|:(?!:))*|:(?!:))|[$^:]))(?![~`!@#$%^*&lt;&gt;\]\\/"\x{201C}-\x{201E}'\x{2018}-\x{201B}+-])</string>
5877+
<string>\G(?&gt;@(?:(?&gt;[\w][\w?]*:(?!:)|:)?(?:[\w?](?:[\w?]|:(?!:))*|:(?!:))|[$^:]))(?![~`!@#$%^*&lt;&gt;\]\\/"\x{201C}-\x{201E}'\x{2018}-\x{201B}+-])</string>
58105878
<key>captures</key>
58115879
<dict>
58125880
<key>0</key>
@@ -5828,14 +5896,14 @@
58285896
<key>begin</key>
58295897
<string>(?=\$(?:(?&gt;[\w][\w?]*:(?!:)|:)?(?:[\w?](?:[\w?]|:(?!:))*|:(?!:))|[$^:]|\{))</string>
58305898
<key>end</key>
5831-
<string>(?=.|$)</string>
5899+
<string>(?!\G)</string>
58325900
<key>applyEndPatternLast</key>
5833-
<true/>
5901+
<false/>
58345902
<key>patterns</key>
58355903
<array>
58365904
<dict>
58375905
<key>match</key>
5838-
<string>\$(?:(?&gt;[\w][\w?]*:(?!:)|:)?(?:[\w?](?:[\w?]|:(?!:))*|:(?!:))|[$^:])</string>
5906+
<string>\G\$(?:(?&gt;[\w][\w?]*:(?!:)|:)?(?:[\w?](?:[\w?]|:(?!:))*|:(?!:))|[$^:])</string>
58395907
<key>captures</key>
58405908
<dict>
58415909
<key>0</key>
@@ -6255,6 +6323,23 @@
62556323
</dict>
62566324
</array>
62576325
</dict>
6326+
<dict>
6327+
<key>begin</key>
6328+
<string>\$\{</string>
6329+
<key>end</key>
6330+
<string>}</string>
6331+
<key>patterns</key>
6332+
<array>
6333+
<dict>
6334+
<key>match</key>
6335+
<string>\$</string>
6336+
</dict>
6337+
<dict>
6338+
<key>include</key>
6339+
<string>#functionName</string>
6340+
</dict>
6341+
</array>
6342+
</dict>
62586343
</array>
62596344
</dict>
62606345
<key>unquotedStrings_text</key>

0 commit comments

Comments
 (0)