66
|
1 <lexer>
|
|
2 <config>
|
|
3 <name>PowerShell</name>
|
|
4 <alias>powershell</alias>
|
|
5 <alias>posh</alias>
|
|
6 <alias>ps1</alias>
|
|
7 <alias>psm1</alias>
|
|
8 <alias>psd1</alias>
|
|
9 <filename>*.ps1</filename>
|
|
10 <filename>*.psm1</filename>
|
|
11 <filename>*.psd1</filename>
|
|
12 <mime_type>text/x-powershell</mime_type>
|
|
13 <case_insensitive>true</case_insensitive>
|
|
14 <dot_all>true</dot_all>
|
|
15 </config>
|
|
16 <rules>
|
|
17 <state name="root">
|
|
18 <rule pattern="\(">
|
|
19 <token type="Punctuation"/>
|
|
20 <push state="child"/>
|
|
21 </rule>
|
|
22 <rule pattern="\s+">
|
|
23 <token type="Text"/>
|
|
24 </rule>
|
|
25 <rule pattern="^(\s*#[#\s]*)(\.(?:component|description|example|externalhelp|forwardhelpcategory|forwardhelptargetname|functionality|inputs|link|notes|outputs|parameter|remotehelprunspace|role|synopsis))([^\n]*$)">
|
|
26 <bygroups>
|
|
27 <token type="Comment"/>
|
|
28 <token type="LiteralStringDoc"/>
|
|
29 <token type="Comment"/>
|
|
30 </bygroups>
|
|
31 </rule>
|
|
32 <rule pattern="#[^\n]*?$">
|
|
33 <token type="Comment"/>
|
|
34 </rule>
|
|
35 <rule pattern="(&lt;|<)#">
|
|
36 <token type="CommentMultiline"/>
|
|
37 <push state="multline"/>
|
|
38 </rule>
|
|
39 <rule pattern="(?i)([A-Z]:)">
|
|
40 <token type="Name"/>
|
|
41 </rule>
|
|
42 <rule pattern="@"\n">
|
|
43 <token type="LiteralStringHeredoc"/>
|
|
44 <push state="heredoc-double"/>
|
|
45 </rule>
|
|
46 <rule pattern="@'\n.*?\n'@">
|
|
47 <token type="LiteralStringHeredoc"/>
|
|
48 </rule>
|
|
49 <rule pattern="`[\'"$@-]">
|
|
50 <token type="Punctuation"/>
|
|
51 </rule>
|
|
52 <rule pattern=""">
|
|
53 <token type="LiteralStringDouble"/>
|
|
54 <push state="string"/>
|
|
55 </rule>
|
|
56 <rule pattern="'([^']|'')*'">
|
|
57 <token type="LiteralStringSingle"/>
|
|
58 </rule>
|
|
59 <rule pattern="(\$|@@|@)((global|script|private|env):)?\w+">
|
|
60 <token type="NameVariable"/>
|
|
61 </rule>
|
|
62 <rule pattern="[a-z]\w*-[a-z]\w*\b">
|
|
63 <token type="NameBuiltin"/>
|
|
64 </rule>
|
|
65 <rule pattern="(while|validateset|validaterange|validatepattern|validatelength|validatecount|until|trap|switch|return|ref|process|param|parameter|in|if|global:|function|foreach|for|finally|filter|end|elseif|else|dynamicparam|do|default|continue|cmdletbinding|break|begin|alias|\?|%|#script|#private|#local|#global|mandatory|parametersetname|position|valuefrompipeline|valuefrompipelinebypropertyname|valuefromremainingarguments|helpmessage|try|catch|throw)\b">
|
|
66 <token type="Keyword"/>
|
|
67 </rule>
|
|
68 <rule pattern="-(and|as|band|bnot|bor|bxor|casesensitive|ccontains|ceq|cge|cgt|cle|clike|clt|cmatch|cne|cnotcontains|cnotlike|cnotmatch|contains|creplace|eq|exact|f|file|ge|gt|icontains|ieq|ige|igt|ile|ilike|ilt|imatch|ine|inotcontains|inotlike|inotmatch|ireplace|is|isnot|le|like|lt|match|ne|not|notcontains|notlike|notmatch|or|regex|replace|wildcard)\b">
|
|
69 <token type="Operator"/>
|
|
70 </rule>
|
|
71 <rule pattern="(ac|asnp|cat|cd|cfs|chdir|clc|clear|clhy|cli|clp|cls|clv|cnsn|compare|copy|cp|cpi|cpp|curl|cvpa|dbp|del|diff|dir|dnsn|ebp|echo|epal|epcsv|epsn|erase|etsn|exsn|fc|fhx|fl|foreach|ft|fw|gal|gbp|gc|gci|gcm|gcs|gdr|ghy|gi|gjb|gl|gm|gmo|gp|gps|gpv|group|gsn|gsnp|gsv|gu|gv|gwmi|h|history|icm|iex|ihy|ii|ipal|ipcsv|ipmo|ipsn|irm|ise|iwmi|iwr|kill|lp|ls|man|md|measure|mi|mount|move|mp|mv|nal|ndr|ni|nmo|npssc|nsn|nv|ogv|oh|popd|ps|pushd|pwd|r|rbp|rcjb|rcsn|rd|rdr|ren|ri|rjb|rm|rmdir|rmo|rni|rnp|rp|rsn|rsnp|rujb|rv|rvpa|rwmi|sajb|sal|saps|sasv|sbp|sc|select|set|shcm|si|sl|sleep|sls|sort|sp|spjb|spps|spsv|start|sujb|sv|swmi|tee|trcm|type|wget|where|wjb|write)\s">
|
|
72 <token type="NameBuiltin"/>
|
|
73 </rule>
|
|
74 <rule pattern="\[[a-z_\[][\w. `,\[\]]*\]">
|
|
75 <token type="NameConstant"/>
|
|
76 </rule>
|
|
77 <rule pattern="-[a-z_]\w*">
|
|
78 <token type="Name"/>
|
|
79 </rule>
|
|
80 <rule pattern="\w+">
|
|
81 <token type="Name"/>
|
|
82 </rule>
|
|
83 <rule pattern="[.,;@{}\[\]$()=+*/\\&%!~?^`|<>-]|::">
|
|
84 <token type="Punctuation"/>
|
|
85 </rule>
|
|
86 </state>
|
|
87 <state name="child">
|
|
88 <rule pattern="\)">
|
|
89 <token type="Punctuation"/>
|
|
90 <pop depth="1"/>
|
|
91 </rule>
|
|
92 <rule>
|
|
93 <include state="root"/>
|
|
94 </rule>
|
|
95 </state>
|
|
96 <state name="multline">
|
|
97 <rule pattern="[^#&.]+">
|
|
98 <token type="CommentMultiline"/>
|
|
99 </rule>
|
|
100 <rule pattern="#(>|&gt;)">
|
|
101 <token type="CommentMultiline"/>
|
|
102 <pop depth="1"/>
|
|
103 </rule>
|
|
104 <rule pattern="\.(component|description|example|externalhelp|forwardhelpcategory|forwardhelptargetname|functionality|inputs|link|notes|outputs|parameter|remotehelprunspace|role|synopsis)">
|
|
105 <token type="LiteralStringDoc"/>
|
|
106 </rule>
|
|
107 <rule pattern="[#&.]">
|
|
108 <token type="CommentMultiline"/>
|
|
109 </rule>
|
|
110 </state>
|
|
111 <state name="string">
|
|
112 <rule pattern="`[0abfnrtv'\"$`]">
|
|
113 <token type="LiteralStringEscape"/>
|
|
114 </rule>
|
|
115 <rule pattern="[^$`"]+">
|
|
116 <token type="LiteralStringDouble"/>
|
|
117 </rule>
|
|
118 <rule pattern="\$\(">
|
|
119 <token type="Punctuation"/>
|
|
120 <push state="child"/>
|
|
121 </rule>
|
|
122 <rule pattern="""">
|
|
123 <token type="LiteralStringDouble"/>
|
|
124 </rule>
|
|
125 <rule pattern="[`$]">
|
|
126 <token type="LiteralStringDouble"/>
|
|
127 </rule>
|
|
128 <rule pattern=""">
|
|
129 <token type="LiteralStringDouble"/>
|
|
130 <pop depth="1"/>
|
|
131 </rule>
|
|
132 </state>
|
|
133 <state name="heredoc-double">
|
|
134 <rule pattern="\n"@">
|
|
135 <token type="LiteralStringHeredoc"/>
|
|
136 <pop depth="1"/>
|
|
137 </rule>
|
|
138 <rule pattern="\$\(">
|
|
139 <token type="Punctuation"/>
|
|
140 <push state="child"/>
|
|
141 </rule>
|
|
142 <rule pattern="[^@\n]+"]">
|
|
143 <token type="LiteralStringHeredoc"/>
|
|
144 </rule>
|
|
145 <rule pattern=".">
|
|
146 <token type="LiteralStringHeredoc"/>
|
|
147 </rule>
|
|
148 </state>
|
|
149 </rules>
|
|
150 </lexer> |