[d24f17c] | 1 | 'use strict'
|
---|
| 2 |
|
---|
| 3 | module.exports = powershell
|
---|
| 4 | powershell.displayName = 'powershell'
|
---|
| 5 | powershell.aliases = []
|
---|
| 6 | function powershell(Prism) {
|
---|
| 7 | ;(function (Prism) {
|
---|
| 8 | var powershell = (Prism.languages.powershell = {
|
---|
| 9 | comment: [
|
---|
| 10 | {
|
---|
| 11 | pattern: /(^|[^`])<#[\s\S]*?#>/,
|
---|
| 12 | lookbehind: true
|
---|
| 13 | },
|
---|
| 14 | {
|
---|
| 15 | pattern: /(^|[^`])#.*/,
|
---|
| 16 | lookbehind: true
|
---|
| 17 | }
|
---|
| 18 | ],
|
---|
| 19 | string: [
|
---|
| 20 | {
|
---|
| 21 | pattern: /"(?:`[\s\S]|[^`"])*"/,
|
---|
| 22 | greedy: true,
|
---|
| 23 | inside: null // see below
|
---|
| 24 | },
|
---|
| 25 | {
|
---|
| 26 | pattern: /'(?:[^']|'')*'/,
|
---|
| 27 | greedy: true
|
---|
| 28 | }
|
---|
| 29 | ],
|
---|
| 30 | // Matches name spaces as well as casts, attribute decorators. Force starting with letter to avoid matching array indices
|
---|
| 31 | // Supports two levels of nested brackets (e.g. `[OutputType([System.Collections.Generic.List[int]])]`)
|
---|
| 32 | namespace: /\[[a-z](?:\[(?:\[[^\]]*\]|[^\[\]])*\]|[^\[\]])*\]/i,
|
---|
| 33 | boolean: /\$(?:false|true)\b/i,
|
---|
| 34 | variable: /\$\w+\b/,
|
---|
| 35 | // Cmdlets and aliases. Aliases should come last, otherwise "write" gets preferred over "write-host" for example
|
---|
| 36 | // Get-Command | ?{ $_.ModuleName -match "Microsoft.PowerShell.(Util|Core|Management)" }
|
---|
| 37 | // Get-Alias | ?{ $_.ReferencedCommand.Module.Name -match "Microsoft.PowerShell.(Util|Core|Management)" }
|
---|
| 38 | function: [
|
---|
| 39 | /\b(?:Add|Approve|Assert|Backup|Block|Checkpoint|Clear|Close|Compare|Complete|Compress|Confirm|Connect|Convert|ConvertFrom|ConvertTo|Copy|Debug|Deny|Disable|Disconnect|Dismount|Edit|Enable|Enter|Exit|Expand|Export|Find|ForEach|Format|Get|Grant|Group|Hide|Import|Initialize|Install|Invoke|Join|Limit|Lock|Measure|Merge|Move|New|Open|Optimize|Out|Ping|Pop|Protect|Publish|Push|Read|Receive|Redo|Register|Remove|Rename|Repair|Request|Reset|Resize|Resolve|Restart|Restore|Resume|Revoke|Save|Search|Select|Send|Set|Show|Skip|Sort|Split|Start|Step|Stop|Submit|Suspend|Switch|Sync|Tee|Test|Trace|Unblock|Undo|Uninstall|Unlock|Unprotect|Unpublish|Unregister|Update|Use|Wait|Watch|Where|Write)-[a-z]+\b/i,
|
---|
| 40 | /\b(?:ac|cat|chdir|clc|cli|clp|clv|compare|copy|cp|cpi|cpp|cvpa|dbp|del|diff|dir|ebp|echo|epal|epcsv|epsn|erase|fc|fl|ft|fw|gal|gbp|gc|gci|gcs|gdr|gi|gl|gm|gp|gps|group|gsv|gu|gv|gwmi|iex|ii|ipal|ipcsv|ipsn|irm|iwmi|iwr|kill|lp|ls|measure|mi|mount|move|mp|mv|nal|ndr|ni|nv|ogv|popd|ps|pushd|pwd|rbp|rd|rdr|ren|ri|rm|rmdir|rni|rnp|rp|rv|rvpa|rwmi|sal|saps|sasv|sbp|sc|select|set|shcm|si|sl|sleep|sls|sort|sp|spps|spsv|start|sv|swmi|tee|trcm|type|write)\b/i
|
---|
| 41 | ],
|
---|
| 42 | // per http://technet.microsoft.com/en-us/library/hh847744.aspx
|
---|
| 43 | keyword:
|
---|
| 44 | /\b(?:Begin|Break|Catch|Class|Continue|Data|Define|Do|DynamicParam|Else|ElseIf|End|Exit|Filter|Finally|For|ForEach|From|Function|If|InlineScript|Parallel|Param|Process|Return|Sequence|Switch|Throw|Trap|Try|Until|Using|Var|While|Workflow)\b/i,
|
---|
| 45 | operator: {
|
---|
| 46 | pattern:
|
---|
| 47 | /(^|\W)(?:!|-(?:b?(?:and|x?or)|as|(?:Not)?(?:Contains|In|Like|Match)|eq|ge|gt|is(?:Not)?|Join|le|lt|ne|not|Replace|sh[lr])\b|-[-=]?|\+[+=]?|[*\/%]=?)/i,
|
---|
| 48 | lookbehind: true
|
---|
| 49 | },
|
---|
| 50 | punctuation: /[|{}[\];(),.]/
|
---|
| 51 | }) // Variable interpolation inside strings, and nested expressions
|
---|
| 52 | powershell.string[0].inside = {
|
---|
| 53 | function: {
|
---|
| 54 | // Allow for one level of nesting
|
---|
| 55 | pattern: /(^|[^`])\$\((?:\$\([^\r\n()]*\)|(?!\$\()[^\r\n)])*\)/,
|
---|
| 56 | lookbehind: true,
|
---|
| 57 | inside: powershell
|
---|
| 58 | },
|
---|
| 59 | boolean: powershell.boolean,
|
---|
| 60 | variable: powershell.variable
|
---|
| 61 | }
|
---|
| 62 | })(Prism)
|
---|
| 63 | }
|
---|