Skip to content

Commit 76bb7e5

Browse files
committed
clean, optimize, fix attribute arguments
1 parent 6d1ef7c commit 76bb7e5

File tree

1 file changed

+30
-169
lines changed

1 file changed

+30
-169
lines changed

PowerShellSyntax.tmLanguage

Lines changed: 30 additions & 169 deletions
Original file line numberDiff line numberDiff line change
@@ -561,7 +561,7 @@
561561
<key>begin</key>
562562
<string>(?!\G)(?!$(?=\n)|[;&amp;|)}\]])</string>
563563
<key>end</key>
564-
<string>$(?=\n)|(?=[;&amp;|)}\]])</string>
564+
<string>$(?=\n)|(?=[;)}\]])</string>
565565
<key>patterns</key>
566566
<array>
567567
<dict>
@@ -584,7 +584,7 @@
584584
<key>begin</key>
585585
<string>(?!$(?=\n)|[;&amp;|)}\]])</string>
586586
<key>end</key>
587-
<string>$(?=\n)|(?=[;&amp;|)}\]])</string>
587+
<string>$(?=\n)|(?=[;)}\]])</string>
588588
<key>patterns</key>
589589
<array>
590590
<dict>
@@ -654,7 +654,7 @@
654654
<array>
655655
<dict>
656656
<key>begin</key>
657-
<string>(?:(global|local|script|private)(`)?(:)(?=[^\s{(,;&amp;)}])|(?=[^`"\x{201C}-\x{201E}'\x{2018}-\x{201B}\s{(,;&amp;)}&lt;&gt;@#\]]|`(?!\s)))</string>
657+
<string>(?:(global|local|script|private)(`)?(:)(?=[^\s{(,;&amp;)}])|(?=[^`'"\x{2018}-\x{201E}\s{(,;&amp;)}&lt;&gt;@#\]]|`(?!\s)))</string>
658658
<key>beginCaptures</key>
659659
<dict>
660660
<key>1</key>
@@ -2568,7 +2568,7 @@
25682568
<key>comment</key>
25692569
<string>(dot) source operator, requires trailing space, or invoke operator</string>
25702570
<key>begin</key>
2571-
<string>&amp;|\.(?=[\s{(,;&amp;|)}"\x{201C}-\x{201E}'\x{2018}-\x{201B}]|\$[\p{L}$?^:_{(])</string>
2571+
<string>&amp;|\.(?=[\s{(,;&amp;|)}'"\x{2018}-\x{201E}$@])</string>
25722572
<key>beginCaptures</key>
25732573
<dict>
25742574
<key>0</key>
@@ -2761,7 +2761,7 @@
27612761
<key>comment</key>
27622762
<string>command names are allowed to start with &lt; or &gt;, without a backtick, but `function` requires a backtick. See below!</string>
27632763
<key>begin</key>
2764-
<string>(?:(global|local|script|private)(`)?(:)(?=[^\s{(,;&amp;|)}])|(?=[^`"\x{201C}-\x{201E}'\x{2018}-\x{201B}\s{(,;&amp;)}@#\]]|`(?!\s)))</string>
2764+
<string>(?:(global|local|script|private)(`)?(:)(?=[^\s{(,;&amp;|)}])|(?=[^`'"\x{2018}-\x{201E}\s{(,;&amp;)}@#\]]|`(?!\s)))</string>
27652765
<key>beginCaptures</key>
27662766
<dict>
27672767
<key>1</key>
@@ -2934,7 +2934,7 @@
29342934
<key>comment</key>
29352935
<string>splatting cannot have members and certain characters following, including no line comment</string>
29362936
<key>match</key>
2937-
<string>(?&gt;@(?:(?&gt;[\w][\w?]*:(?!:)|:)?(?:[\w?](?:[\w?]|:(?!:))*|:(?!:))|[$^:]))(?![~`!@#$%^*&lt;&gt;\]\\/"\x{201C}-\x{201E}'\x{2018}-\x{201B}+-])</string>
2937+
<string>(?&gt;@(?:(?&gt;[\w][\w?]*:(?!:)|:)?(?:[\w?](?:[\w?]|:(?!:))*|:(?!:))|[$^:]))(?![~`!@#$%^*&lt;&gt;\]\\/'"\x{2018}-\x{201E}+-])</string>
29382938
<key>captures</key>
29392939
<dict>
29402940
<key>0</key>
@@ -3562,7 +3562,7 @@
35623562
<array>
35633563
<dict>
35643564
<key>match</key>
3565-
<string>`[`0abefnrtv"\x{201C}-\x{201E}'\x{2018}-\x{201B}$@#{(,;&amp;|)}&lt;&gt;\n]</string>
3565+
<string>`[`0abefnrtv'"\x{2018}-\x{201E}$@#{(,;&amp;|)}&lt;&gt;\n]</string>
35663566
<key>name</key>
35673567
<string>constant.character.escape.powershell</string>
35683568
</dict>
@@ -3578,163 +3578,6 @@
35783578
</dict>
35793579
</array>
35803580
</dict>
3581-
<key>attribute</key>
3582-
<dict>
3583-
<key>patterns</key>
3584-
<array>
3585-
<dict>
3586-
<key>begin</key>
3587-
<string>(?i)(?:(?:cmdletbinding|alias|flags|outputtype|parameter|validate(?:not(?:null(?:orempty)?)|count|set|script|range|pattern|length)|allow(?:null|empty(?:collection|string))|supportswildcards|dsc(?:resource|property))(?=\())</string>
3588-
<key>beginCaptures</key>
3589-
<dict>
3590-
<key>0</key>
3591-
<dict>
3592-
<key>name</key>
3593-
<string>support.function.attribute.powershell</string>
3594-
</dict>
3595-
</dict>
3596-
<key>end</key>
3597-
<string>(?!\G\()</string>
3598-
<key>name</key>
3599-
<string>meta.attribute.powershell</string>
3600-
<key>patterns</key>
3601-
<array>
3602-
<dict>
3603-
<key>begin</key>
3604-
<string>\(</string>
3605-
<key>beginCaptures</key>
3606-
<dict>
3607-
<key>0</key>
3608-
<dict>
3609-
<key>name</key>
3610-
<string>punctuation.section.group.begin.powershell</string>
3611-
</dict>
3612-
</dict>
3613-
<key>end</key>
3614-
<string>\)</string>
3615-
<key>endCaptures</key>
3616-
<dict>
3617-
<key>0</key>
3618-
<dict>
3619-
<key>name</key>
3620-
<string>punctuation.section.group.end.powershell</string>
3621-
</dict>
3622-
</dict>
3623-
<key>patterns</key>
3624-
<array>
3625-
<dict>
3626-
<key>comment</key>
3627-
<string>`key` for DscProperty attribute</string>
3628-
<key>begin</key>
3629-
<string>(?i)\b(mandatory|valuefrom(?:pipeline(?:bypropertyname)?|remainingarguments)|position(?:albinding)?|(?:default)?parametersetname|supports(?:shouldprocess|paging|transactions)|help(?:uri|message)|confirmimpact|ignorecase|key)\b</string>
3630-
<key>beginCaptures</key>
3631-
<dict>
3632-
<key>1</key>
3633-
<dict>
3634-
<key>name</key>
3635-
<string>variable.parameter.attribute.powershell</string>
3636-
</dict>
3637-
</dict>
3638-
<key>end</key>
3639-
<string>$(?=\n)|(?=[,;&amp;|)}\]])</string>
3640-
<key>patterns</key>
3641-
<array>
3642-
<dict>
3643-
<key>begin</key>
3644-
<string>=</string>
3645-
<key>beginCaptures</key>
3646-
<dict>
3647-
<key>0</key>
3648-
<dict>
3649-
<key>name</key>
3650-
<string>keyword.operator.assignment.powershell</string>
3651-
</dict>
3652-
</dict>
3653-
<key>end</key>
3654-
<string>$(?=\n)|(?=[,;&amp;|)}\]])</string>
3655-
<key>patterns</key>
3656-
<array>
3657-
<dict>
3658-
<key>include</key>
3659-
<string>#advanceToToken</string>
3660-
</dict>
3661-
<dict>
3662-
<key>comment</key>
3663-
<string>begin at the first token in the expression, to test for numeric and unary operators</string>
3664-
<key>begin</key>
3665-
<string>(?!$|[;|)}\]])</string>
3666-
<key>end</key>
3667-
<string>(?=.|$)</string>
3668-
<key>applyEndPatternLast</key>
3669-
<true/>
3670-
<key>patterns</key>
3671-
<array>
3672-
<dict>
3673-
<key>comment</key>
3674-
<string>allow for possibility that numeric value or unary operators match first, before resuming in expression mode</string>
3675-
<key>begin</key>
3676-
<string>(?!\G)(?!$(?=\n)|[,;&amp;|)}\]])</string>
3677-
<key>end</key>
3678-
<string>$(?=\n)|(?=[,;&amp;|)}\]])</string>
3679-
<key>patterns</key>
3680-
<array>
3681-
<dict>
3682-
<key>include</key>
3683-
<string>#expression_mode</string>
3684-
</dict>
3685-
</array>
3686-
</dict>
3687-
<dict>
3688-
<key>include</key>
3689-
<string>#numericConstant</string>
3690-
</dict>
3691-
<dict>
3692-
<key>include</key>
3693-
<string>#operators_preUnary</string>
3694-
</dict>
3695-
<dict>
3696-
<key>comment</key>
3697-
<string>if neither numeric or a pre-unary operator, just finish in expression mode</string>
3698-
<key>begin</key>
3699-
<string>(?!$(?=\n)|[;&amp;|)}\]])</string>
3700-
<key>end</key>
3701-
<string>$(?=\n)|(?=[;&amp;|)}\]])</string>
3702-
<key>patterns</key>
3703-
<array>
3704-
<dict>
3705-
<key>include</key>
3706-
<string>#expression_mode</string>
3707-
</dict>
3708-
</array>
3709-
</dict>
3710-
</array>
3711-
</dict>
3712-
</array>
3713-
</dict>
3714-
</array>
3715-
</dict>
3716-
<dict>
3717-
<key>include</key>
3718-
<string>#expression_mode</string>
3719-
</dict>
3720-
</array>
3721-
</dict>
3722-
</array>
3723-
</dict>
3724-
<dict>
3725-
<key>match</key>
3726-
<string>(?&lt;![.\w-])(?i:ordered)(?![.\w+`\[-])</string>
3727-
<key>name</key>
3728-
<string>support.function.attribute.powershell</string>
3729-
</dict>
3730-
<dict>
3731-
<key>match</key>
3732-
<string>(?&lt;![.\w-])(?i:ref)(?![.\w+`\[-])</string>
3733-
<key>name</key>
3734-
<string>storage.modifier.powershell</string>
3735-
</dict>
3736-
</array>
3737-
</dict>
37383581
<key>commands</key>
37393582
<dict>
37403583
<key>patterns</key>
@@ -4838,8 +4681,6 @@
48384681
<string>#advanceToToken</string>
48394682
</dict>
48404683
<dict>
4841-
<key>ignore include</key>
4842-
<string>#attribute</string>
48434684
<key>match</key>
48444685
<string>(?i)(?:(?:cmdletbinding|alias|flags|outputtype|parameter|validate(?:not(?:null(?:orempty)?)|count|set|script|range|pattern|length)|allow(?:null|empty(?:collection|string))|supportswildcards|dsc(?:resource|property))(?![.\w+`-]))</string>
48454686
<key>name</key>
@@ -4919,7 +4760,7 @@
49194760
<key>comment</key>
49204761
<string>begin at the first token in the expression, to test for numeric and unary operators</string>
49214762
<key>begin</key>
4922-
<string>(?!$|[;|)}\]])</string>
4763+
<string>(?!$|[,;|)}\]])</string>
49234764
<key>end</key>
49244765
<string>(?=.|$)</string>
49254766
<key>applyEndPatternLast</key>
@@ -4953,9 +4794,9 @@
49534794
<key>comment</key>
49544795
<string>if neither numeric or a pre-unary operator, just finish in expression mode</string>
49554796
<key>begin</key>
4956-
<string>(?!$(?=\n)|[;&amp;|)}\]])</string>
4797+
<string>(?!$(?=\n)|[,;&amp;|)}\]])</string>
49574798
<key>end</key>
4958-
<string>$(?=\n)|(?=[;&amp;|)}\]])</string>
4799+
<string>$(?=\n)|(?=[,;&amp;|)}\]])</string>
49594800
<key>patterns</key>
49604801
<array>
49614802
<dict>
@@ -4966,6 +4807,10 @@
49664807
</dict>
49674808
</array>
49684809
</dict>
4810+
<dict>
4811+
<key>include</key>
4812+
<string>#notCode</string>
4813+
</dict>
49694814
</array>
49704815
</dict>
49714816
<dict>
@@ -4975,12 +4820,16 @@
49754820
</array>
49764821
</dict>
49774822
<dict>
4823+
<key>comment</key>
4824+
<string>this makes `=` invalid without an argument name</string>
49784825
<key>match</key>
49794826
<string>=</string>
49804827
<key>name</key>
49814828
<string>invalid.source.powershell</string>
49824829
</dict>
49834830
<dict>
4831+
<key>comment</key>
4832+
<string>this gets the comma as well as quoted or numeric literals</string>
49844833
<key>include</key>
49854834
<string>#expression_mode</string>
49864835
</dict>
@@ -5220,6 +5069,18 @@
52205069
<key>name</key>
52215070
<string>support.class.powershell</string>
52225071
</dict>
5072+
<dict>
5073+
<key>match</key>
5074+
<string>(?&lt;![.\w-])(?i:ordered)(?![.\w+`\[-])</string>
5075+
<key>name</key>
5076+
<string>support.function.attribute.powershell</string>
5077+
</dict>
5078+
<dict>
5079+
<key>match</key>
5080+
<string>(?&lt;![.\w-])(?i:ref)(?![.\w+`\[-])</string>
5081+
<key>name</key>
5082+
<string>storage.modifier.powershell</string>
5083+
</dict>
52235084
</array>
52245085
</dict>
52255086
<key>advanceToArgument</key>

0 commit comments

Comments
 (0)