You cannot select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

271 lines
11 KiB
JSON

{
"aliases": [
"ps",
"ps1"
],
"lexemes": "-?[A-z\\.\\-]+",
"case_insensitive": true,
"keywords": {
"keyword": "if else foreach return do while until elseif begin for trap data dynamicparam end break throw param continue finally in switch exit filter try process catch hidden static parameter"
},
"contains": [
{
"className": "function",
"begin": "\\[.*\\]\\s*[\\w]+[ ]??\\(",
"end": "$",
"returnBegin": true,
"relevance": 0,
"contains": [
{
"begin": "\\[",
"end": "\\]",
"excludeBegin": true,
"excludeEnd": true,
"relevance": 0,
"contains": [
"self",
{
"$ref": "#contains.0"
},
{
"className": "comment",
"begin": null,
"end": null,
"contains": [
{
"className": "doctag",
"variants": [
{
"begin": "\\.(synopsis|description|example|inputs|outputs|notes|link|component|role|functionality)"
},
{
"begin": "\\.(parameter|forwardhelptargetname|forwardhelpcategory|remotehelprunspace|externalhelp)\\s+\\S+"
}
]
}
],
"variants": [
{
"begin": "#",
"end": "$"
},
{
"begin": "<#",
"end": "#>"
}
]
},
{
"begin": "`[\\s\\S]",
"relevance": 0
},
{
"className": "number",
"begin": "\\b\\d+(\\.\\d+)?",
"relevance": 0
},
{
"className": "string",
"variants": [
{
"begin": "\"",
"end": "\""
},
{
"begin": "@\"",
"end": "^\"@"
}
],
"contains": [
{
"$ref": "#contains.0.contains.0.contains.3"
},
{
"className": "variable",
"variants": [
{
"begin": "\\$\\B"
},
{
"className": "keyword",
"begin": "\\$this"
},
{
"begin": "\\$[\\w\\d][\\w\\d_:]*"
}
]
},
{
"className": "variable",
"begin": "\\$[A-z]",
"end": "[^A-z]"
}
]
},
{
"className": "string",
"variants": [
{
"begin": "'",
"end": "'"
},
{
"begin": "@'",
"end": "^'@"
}
]
},
{
"className": "built_in",
"variants": [
{
"begin": "(Add|Clear|Close|Copy|Enter|Exit|Find|Format|Get|Hide|Join|Lock|Move|New|Open|Optimize|Pop|Push|Redo|Remove|Rename|Reset|Resize|Search|Select|Set|Show|Skip|Split|Step|Switch|Undo|Unlock|Watch|Backup|Checkpoint|Compare|Compress|Convert|ConvertFrom|ConvertTo|Dismount|Edit|Expand|Export|Group|Import|Initialize|Limit|Merge|New|Out|Publish|Restore|Save|Sync|Unpublish|Update|Approve|Assert|Complete|Confirm|Deny|Disable|Enable|Install|Invoke|Register|Request|Restart|Resume|Start|Stop|Submit|Suspend|Uninstall|Unregister|Wait|Debug|Measure|Ping|Repair|Resolve|Test|Trace|Connect|Disconnect|Read|Receive|Send|Write|Block|Grant|Protect|Revoke|Unblock|Unprotect|Use|ForEach|Sort|Tee|Where)+(-)[\\w\\d]+"
}
]
},
{
"$ref": "#contains.0.contains.0.contains.5.contains.1"
},
{
"className": "literal",
"begin": "\\$(null|true|false)\\b"
},
{
"className": "selector-tag",
"begin": "\\@\\B",
"relevance": 0
},
{
"begin": "(string|char|byte|int|long|bool|decimal|single|double|DateTime|xml|array|hashtable|void)",
"className": "built_in",
"relevance": 0
},
{
"className": "type",
"begin": "[\\.\\w\\d]+",
"relevance": 0
}
]
},
{
"className": "keyword",
"begin": "(if|else|foreach|return|do|while|until|elseif|begin|for|trap|data|dynamicparam|end|break|throw|param|continue|finally|in|switch|exit|filter|try|process|catch|hidden|static|parameter)\\b",
"endsParent": true,
"relevance": 0
},
{
"className": "title",
"begin": "[a-zA-Z]\\w*",
"relevance": 0,
"endsParent": true
}
]
},
{
"$ref": "#contains.0.contains.0.contains.2"
},
{
"$ref": "#contains.0.contains.0.contains.3"
},
{
"$ref": "#contains.0.contains.0.contains.4"
},
{
"$ref": "#contains.0.contains.0.contains.5"
},
{
"$ref": "#contains.0.contains.0.contains.6"
},
{
"$ref": "#contains.0.contains.0.contains.7"
},
{
"$ref": "#contains.0.contains.0.contains.5.contains.1"
},
{
"$ref": "#contains.0.contains.0.contains.9"
},
{
"$ref": "#contains.0.contains.0.contains.10"
},
{
"className": "class",
"beginKeywords": "class enum",
"end": "\\s*[{]",
"excludeEnd": true,
"relevance": 0,
"contains": [
{
"className": "title",
"begin": "[a-zA-Z]\\w*",
"relevance": 0
}
]
},
{
"className": "function",
"begin": "function\\s+",
"end": "\\s*\\{|$",
"excludeEnd": true,
"returnBegin": true,
"relevance": 0,
"contains": [
{
"begin": "function",
"relevance": 0,
"className": "keyword"
},
{
"className": "title",
"begin": "\\w[\\w\\d]*((-)[\\w\\d]+)*",
"relevance": 0
},
{
"begin": "\\(",
"end": "\\)",
"className": "params",
"relevance": 0,
"contains": [
{
"$ref": "#contains.0.contains.0.contains.5.contains.1"
}
]
}
]
},
{
"begin": "using\\s",
"end": "$",
"returnBegin": true,
"contains": [
{
"$ref": "#contains.0.contains.0.contains.5"
},
{
"$ref": "#contains.0.contains.0.contains.6"
},
{
"className": "keyword",
"begin": "(using|assembly|command|module|namespace|type)"
}
]
},
{
"variants": [
{
"className": "operator",
"begin": "(-and|-as|-band|-bnot|-bor|-bxor|-casesensitive|-ccontains|-ceq|-cge|-cgt|-cle|-clike|-clt|-cmatch|-cne|-cnotcontains|-cnotlike|-cnotmatch|-contains|-creplace|-csplit|-eq|-exact|-f|-file|-ge|-gt|-icontains|-ieq|-ige|-igt|-ile|-ilike|-ilt|-imatch|-in|-ine|-inotcontains|-inotlike|-inotmatch|-ireplace|-is|-isnot|-isplit|-join|-le|-like|-lt|-match|-ne|-not|-notcontains|-notin|-notlike|-notmatch|-or|-regex|-replace|-shl|-shr|-split|-wildcard|-xor)\\b"
},
{
"className": "literal",
"begin": "(-)[\\w\\d]+",
"relevance": 0
}
]
},
{
"$ref": "#contains.0.contains.0"
}
]
}