]>
luflow.net public git repositories - flow-web.git/blob - static/highlight/es/languages/powershell.js
1 /*! `powershell` grammar compiled for Highlight.js 11.11.1 */
2 var hljsGrammar
= ( function () {
7 Description: PowerShell is a task-based command-line shell and scripting language built on .NET.
8 Author: David Mohundro <david@mohundro.com>
9 Contributors: Nicholas Blumhardt <nblumhardt@nblumhardt.com>, Victor Zhou <OiCMudkips@users.noreply.github.com>, Nicolas Le Gall <contact@nlegall.fr>
10 Website: https://docs.microsoft.com/en-us/powershell/
14 function powershell ( hljs
) {
32 // https://docs.microsoft.com/en-us/powershell/scripting/developer/cmdlet/approved-verbs-for-windows-powershell-commands
34 'Add|Clear|Close|Copy|Enter|Exit|Find|Format|Get|Hide|Join|Lock|'
35 + 'Move|New|Open|Optimize|Pop|Push|Redo|Remove|Rename|Reset|Resize|'
36 + 'Search|Select|Set|Show|Skip|Split|Step|Switch|Undo|Unlock|'
37 + 'Watch|Backup|Checkpoint|Compare|Compress|Convert|ConvertFrom|'
38 + 'ConvertTo|Dismount|Edit|Expand|Export|Group|Import|Initialize|'
39 + 'Limit|Merge|Mount|Out|Publish|Restore|Save|Sync|Unpublish|Update|'
40 + 'Approve|Assert|Build|Complete|Confirm|Deny|Deploy|Disable|Enable|Install|Invoke|'
41 + 'Register|Request|Restart|Resume|Start|Stop|Submit|Suspend|Uninstall|'
42 + 'Unregister|Wait|Debug|Measure|Ping|Repair|Resolve|Test|Trace|Connect|'
43 + 'Disconnect|Read|Receive|Send|Write|Block|Grant|Protect|Revoke|Unblock|'
44 + 'Unprotect|Use|ForEach|Sort|Tee|Where' ;
46 const COMPARISON_OPERATORS
=
47 '-and|-as|-band|-bnot|-bor|-bxor|-casesensitive|-ccontains|-ceq|-cge|-cgt|'
48 + '-cle|-clike|-clt|-cmatch|-cne|-cnotcontains|-cnotlike|-cnotmatch|-contains|'
49 + '-creplace|-csplit|-eq|-exact|-f|-file|-ge|-gt|-icontains|-ieq|-ige|-igt|'
50 + '-ile|-ilike|-ilt|-imatch|-in|-ine|-inotcontains|-inotlike|-inotmatch|'
51 + '-ireplace|-is|-isnot|-isplit|-join|-le|-like|-lt|-match|-ne|-not|'
52 + '-notcontains|-notin|-notlike|-notmatch|-or|-regex|-replace|-shl|-shr|'
53 + '-split|-wildcard|-xor' ;
56 $ pattern : /-?[A-z\.\-]+\b/ ,
58 'if else foreach return do while until elseif begin for trap data dynamicparam '
59 + 'end break throw param continue finally in switch exit filter try process catch '
60 + 'hidden static parameter' ,
61 // "echo" relevance has been set to 0 to avoid auto-detect conflicts with shell transcripts
63 'ac asnp cat cd CFS chdir clc clear clhy cli clp cls clv cnsn compare copy cp '
64 + 'cpi cpp curl cvpa dbp del diff dir dnsn ebp echo|0 epal epcsv epsn erase etsn exsn fc fhx '
65 + 'fl ft fw gal gbp gc gcb gci gcm gcs gdr gerr ghy gi gin gjb gl gm gmo gp gps gpv group '
66 + 'gsn gsnp gsv gtz gu gv gwmi h history icm iex ihy ii ipal ipcsv ipmo ipsn irm ise iwmi '
67 + 'iwr kill lp ls man md measure mi mount move mp mv nal ndr ni nmo npssc nsn nv ogv oh '
68 + 'popd ps pushd pwd r rbp rcjb rcsn rd rdr ren ri rjb rm rmdir rmo rni rnp rp rsn rsnp '
69 + 'rujb rv rvpa rwmi sajb sal saps sasv sbp sc scb select set shcm si sl sleep sls sort sp '
70 + 'spjb spps spsv start stz sujb sv swmi tee trcm type wget where wjb write'
71 // TODO: 'validate[A-Z]+' can't work in keywords
74 const TITLE_NAME_RE
= /\w[\w\d]*((-)[\w\d]+)*/ ;
76 const BACKTICK_ESCAPE
= {
82 className : 'variable' ,
89 { begin : /\$[\w\d][\w\d_:]*/ }
95 begin : /\$(null|true|false)\b/
98 const QUOTE_STRING
= {
114 className : 'variable' ,
121 const APOS_STRING
= {
135 const PS_HELPTAGS
= {
138 /* no paramater help tags */
139 { begin : /\.(synopsis|description|example|inputs|outputs|notes|link|component|role|functionality)/ },
140 /* one parameter help tags */
141 { begin : /\.(parameter|forwardhelptargetname|forwardhelpcategory|remotehelprunspace|externalhelp)\s+\S+/ }
145 const PS_COMMENT
= hljs
. inherit (
146 hljs
. COMMENT ( null , null ),
149 /* single-line comment */
154 /* multi-line comment */
160 contains : [ PS_HELPTAGS
]
165 className : 'built_in' ,
166 variants : [ { begin : '(' . concat ( VALID_VERBS
, ')+(-)[ \\ w \\ d]+' ) } ]
171 beginKeywords : 'class enum' ,
175 contains : [ hljs
. TITLE_MODE
]
178 const PS_FUNCTION
= {
179 className : 'function' ,
180 begin : /function\s+/ ,
193 begin : TITLE_NAME_RE
,
207 // Using statment, plus type, plus assembly name.
216 className : 'keyword' ,
217 begin : /(using|assembly|command|module|namespace|type)/
222 // Comperison operators & function named parameters.
223 const PS_ARGUMENTS
= { variants : [
224 // PS literals are pretty verbose so it's a good idea to accent them a bit.
226 className : 'operator' ,
227 begin : '(' . concat ( COMPARISON_OPERATORS
, ') \\ b' )
230 className : 'literal' ,
231 begin : /(-){1,2}[\w\d-]+/ ,
237 className : 'selector-tag' ,
242 // It's a very general rule so I'll narrow it a bit with some strict boundaries
243 // to avoid any possible false-positive collisions!
245 className : 'function' ,
246 begin : /\[.*\]\ s
*[\ w
]+[ ]??\(/,
252 className : 'keyword' ,
254 KEYWORDS
. keyword
. toString (). replace ( /\s/g , '|'
259 hljs
. inherit ( hljs
. TITLE_MODE
, { endsParent : true })
263 const GENTLEMANS_SET
= [
271 // PS_NEW_OBJECT_TYPE,
288 begin : "(" + TYPES
. join ( "|" ) + ")" ,
289 className : "built_in" ,
300 PS_METHODS
. contains
. unshift ( PS_TYPE
);
309 case_insensitive : true ,
311 contains : GENTLEMANS_SET
. concat (
325 export default hljsGrammar
;