335 lines
9.4 KiB
Scheme
335 lines
9.4 KiB
Scheme
; Punctuation
|
|
;------------
|
|
[
|
|
"("
|
|
")"
|
|
"["
|
|
"]"
|
|
"{"
|
|
"}"
|
|
] @punctuation.bracket
|
|
|
|
(hash_literal_expression
|
|
[
|
|
"@{"
|
|
"}"
|
|
] @punctuation.special)
|
|
|
|
(array_expression
|
|
[
|
|
"@("
|
|
")"
|
|
] @punctuation.special)
|
|
|
|
[
|
|
"."
|
|
"::"
|
|
","
|
|
";"
|
|
(empty_statement)
|
|
(command_argument_sep)
|
|
] @punctuation.delimiter
|
|
|
|
; Keywords
|
|
;---------
|
|
[
|
|
"if"
|
|
"elseif"
|
|
"else"
|
|
"switch"
|
|
] @keyword.conditional
|
|
|
|
[
|
|
"foreach"
|
|
"for"
|
|
"while"
|
|
"do"
|
|
"until"
|
|
"in"
|
|
"break"
|
|
"continue"
|
|
] @keyword.repeat
|
|
|
|
[
|
|
"function"
|
|
"filter"
|
|
"workflow"
|
|
"exit"
|
|
"trap"
|
|
"param"
|
|
"inlinescript"
|
|
] @keyword.function
|
|
|
|
"return" @keyword.return
|
|
|
|
[
|
|
"class"
|
|
"enum"
|
|
] @keyword.type
|
|
|
|
[
|
|
"data"
|
|
(class_attribute)
|
|
] @keyword.modifier
|
|
|
|
[
|
|
"throw"
|
|
"try"
|
|
"catch"
|
|
"finally"
|
|
] @keyword.exception
|
|
|
|
[
|
|
"parallel"
|
|
"sequence"
|
|
] @keyword.coroutine
|
|
|
|
[
|
|
"param"
|
|
"dynamicparam"
|
|
"begin"
|
|
"process"
|
|
"end"
|
|
] @keyword
|
|
|
|
; Operators
|
|
;----------
|
|
[
|
|
"-and"
|
|
"-or"
|
|
"-xor"
|
|
"-band"
|
|
"-bor"
|
|
"-bxor"
|
|
"+"
|
|
"-"
|
|
"/"
|
|
"\\"
|
|
"%"
|
|
"*"
|
|
".."
|
|
"-not"
|
|
"-bnot"
|
|
"!"
|
|
"="
|
|
"|"
|
|
(pre_increment_expression)
|
|
(pre_decrement_expression)
|
|
(post_increment_expression)
|
|
(post_decrement_expression)
|
|
(comparison_operator)
|
|
(assignement_operator)
|
|
] @operator
|
|
|
|
; Generic types
|
|
;--------------
|
|
(string_literal) @string
|
|
|
|
(integer_literal) @number
|
|
|
|
(real_literal) @number.float
|
|
|
|
(variable) @variable
|
|
|
|
((variable) @variable.builtin
|
|
(#any-of? @variable.builtin
|
|
"$$" "$?" "$^" "$_" "$args" "$ConsoleFileName" "$EnabledExperimentalFeatures" "$Error" "$Event"
|
|
"$EventArgs" "$EventSubscriber" "$ExecutionContext" "$false" "$foreach" "$HOME" "$Host" "$input"
|
|
"$IsCoreCLR" "$IsLinux" "$IsMacOS" "$IsWindows" "$LASTEXITCODE" "$Matches" "$MyInvocation"
|
|
"$NestedPromptLevel" "$null" "$PID" "$PROFILE" "$PSBoundParameters" "$PSCmdlet" "$PSCommandPath"
|
|
"$PSCulture" "$PSDebugContext" "$PSEdition" "$PSHOME" "$PSItem" "$PSScriptRoot" "$PSSenderInfo"
|
|
"$PSUICulture" "$PSVersionTable" "$PWD" "$Sender" "ShellId" "$StackTrace" "$switch" "$this"
|
|
"$true"))
|
|
|
|
((variable) @variable.builtin
|
|
(#lua-match? @variable.builtin "^\$env:"))
|
|
|
|
(data_name
|
|
(simple_name) @constant)
|
|
|
|
(comment) @comment @spell
|
|
|
|
((program
|
|
.
|
|
(comment) @keyword.directive)
|
|
(#lua-match? @keyword.directive "^#!/"))
|
|
|
|
; Booleans
|
|
;---------
|
|
([
|
|
(generic_token)
|
|
(command_name)
|
|
(variable)
|
|
(command)
|
|
] @boolean
|
|
(#any-of? @boolean "True" "False" "$true" "$false"))
|
|
|
|
; switch -regex
|
|
;--------------
|
|
(switch_statement
|
|
(switch_parameters
|
|
(switch_parameter) @_parameter)
|
|
(switch_body
|
|
(switch_clauses
|
|
(switch_clause
|
|
(switch_clause_condition
|
|
(string_literal) @string.regexp))))
|
|
(#eq? @_parameter "-regex")
|
|
(#offset! @string.regexp 0 1 0 -1))
|
|
|
|
; Multiline strings
|
|
;------------------
|
|
([
|
|
(verbatim_here_string_characters)
|
|
(expandable_here_string_literal)
|
|
] @markup.raw.block
|
|
(#offset! @markup.raw.block 0 2 0 -2))
|
|
|
|
; Type references and definitions
|
|
;--------------------------------
|
|
(type_spec
|
|
(type_name) @type)
|
|
|
|
(class_statement
|
|
(simple_name) @type)
|
|
|
|
(type_spec
|
|
(type_name) @type.builtin
|
|
(#any-of? @type.builtin
|
|
"bool" "Boolean" "System.Boolean" "char" "Char" "System.Char" "string" "String" "System.String"
|
|
"int" "Int32" "System.Int32" "long" "Int64" "System.Int64" "byte" "Byte" "System.Byte" "float"
|
|
"Single" "System.Single" "double" "Double" "System.Double" "decimal" "Decimal" "System.Decimal"
|
|
"array" "Array" "System.Array" "regex" "Regex" "System.Text.RegularExpressions.Regex" "ref"
|
|
"Management.Automation.PSReference" "System.Management.Automation.PSReference" "scriptblock"
|
|
"Management.Automation.ScriptBlock" "System.Management.Automation.ScriptBlock" "datetime"
|
|
"DateTime" "System.DateTime" "enum" "Enum" "System.Enum" "IO.DirectoryInfo"
|
|
"System.IO.DirectoryInfo" "IO.FileAttributes" "System.IO.FileAttributes" "IO.FileInfo"
|
|
"System.IO.FileInfo" "IO.Path" "System.IO.Path" "Text.RegularExpressions.RegexOptions"
|
|
"System.Text.RegularExpressions.RegexOptions" "Math" "System.Math" "PSObject" "System.PSObject"
|
|
"Object" "System.Object" "ValueType" "System.ValueType" "Hashtable"
|
|
"System.Collections.Hashtable" "Collections.Stack" "System.Collections.Generic.Stack"
|
|
"Collections.Dictionary" "System.Collections.Dictionary" "Collections.DictionaryEntry"
|
|
"System.Collections.DictionaryEntry" "Collections.ArrayList" "System.Collections.ArrayList"
|
|
"Management.Automation.SwitchParameter" "System.Management.Automation.SwitchParameter"
|
|
"Management.Automation.ActionPreference" "System.Management.Automation.ActionPreference"
|
|
"Management.Automation.ConfirmImpact" "System.Management.Automation.ConfirmImpact"
|
|
"Management.Automation.CommandInfo" "System.Management.Automation.CommandInfo"
|
|
"Management.Automation.ProviderInfo" "System.Management.Automation.ProviderInfo"
|
|
"Management.Automation.PSDriveInfo" "System.Management.Automation.PSDriveInfo"
|
|
"Management.Automation.PSVariable" "System.Management.Automation.PSVariable"
|
|
"Management.Automation.AliasInfo" "System.Management.Automation.AliasInfo"
|
|
"Management.Automation.PathInfo" "System.Management.Automation.PathInfo"
|
|
"Management.Automation.PathInfoStack" "System.Management.Automation.PathInfoStack"
|
|
"Management.Automation.ApplicationInfo" "System.Management.Automation.ApplicationInfo"
|
|
"Management.Automation.CmdletInfo" "System.Management.Automation.CmdletInfo"
|
|
"Management.Automation.ExternalScriptInfo" "System.Management.Automation.ExternalScriptInfo"
|
|
"Management.Automation.FunctionInfo" "System.Management.Automation.FunctionInfo"
|
|
"Management.Automation.CommandTypes" "System.Management.CommandTypes"
|
|
"Management.Automation.ScopedItemOptions" "System.Management.Automation.ScopedItemOptions"
|
|
"Management.Automation.PSTypeName" "System.Management.Automation.PSTypeName"
|
|
"Management.Automation.ParameterMetadata" "System.Management.Automation.ParameterMetadata"
|
|
"Management.Automation.CommandParameterSetInfo"
|
|
"System.Management.Automation.CommandParameterSetInfo"
|
|
"Management.Automation.SessionStateEntryVisibility"
|
|
"System.Management.Automation.SessionStateEntryVisibility" "Management.Automation.FilterInfo"
|
|
"System.Management.Automation.FilterInfo" "Management.Automation.ModuleType"
|
|
"System.Management.Automation.ModuleType" "Management.Automation.PSModuleInfo"
|
|
"System.Management.Automation.PSModuleInfo" "Management.Automation.PSCustomObject"
|
|
"System.Management.Automation.PSCustomObject" "Management.Automation.PSScriptCmdlet"
|
|
"System.Management.Automation.PSScriptCmdlet" "Management.Automation.ErrorRecord"
|
|
"System.Management.Automation.ErrorRecord" "Management.Automation.PSCredential"
|
|
"System.Management.Automation.PSCredential" "Management.Automation.PSMethod"
|
|
"System.Management.Automation.PSMethod")
|
|
)
|
|
|
|
; Function definitions
|
|
;---------------------
|
|
(function_statement
|
|
(function_name) @function)
|
|
|
|
; Classes, fields and methods definitions
|
|
;----------------------------------------
|
|
(class_property_definition
|
|
(variable) @variable.member)
|
|
|
|
(class_method_definition
|
|
(simple_name) @function.method)
|
|
|
|
(class_statement
|
|
(simple_name) @_class_name
|
|
(class_method_definition
|
|
(simple_name) @constructor)
|
|
(#eq? @constructor @_class_name))
|
|
|
|
(key_expression) @property
|
|
|
|
; Functions, methods calls and properties access
|
|
;--------------------------
|
|
(command_invokation_operator) @operator
|
|
|
|
(invokation_expression
|
|
(member_name) @function.call)
|
|
|
|
(invokation_expression
|
|
(member_name) @constructor
|
|
(#eq? @constructor "new"))
|
|
|
|
(member_access
|
|
(member_name
|
|
[
|
|
(simple_name)
|
|
(variable)
|
|
] @variable.member))
|
|
|
|
; Commands execution
|
|
;-------------------
|
|
(command
|
|
command_name: (command_name) @function.call)
|
|
|
|
(command
|
|
command_name: (command_name) @function.builtin
|
|
(#any-of? @function.builtin
|
|
; Locations & Paths
|
|
"cd" "cd.." "cd\\" "cd~" "help" "Get-Location" "Pop-Location" "Push-Location" "Set-Location"
|
|
"Convert-Path" "Join-Path" "Resolve-Path" "Split-Path" "Test-Path"
|
|
; Files & Directories
|
|
"Clear-Item" "Clear-ItemProperty" "Copy-Item" "Copy-ItemProperty" "Get-Item" "Get-ItemProperty"
|
|
"Get-ItemPropertyValue" "Invoke-Item" "Move-Item" "Move-ItemProperty" "New-Item"
|
|
"New-ItemProperty" "Remove-Item" "Remove-ItemProperty" "Rename-Item" "Rename-ItemProperty"
|
|
"Set-Item" "Set-ItemProperty"
|
|
; Aliases
|
|
"New-Alias" "Get-Alias" "Set-Alias" "Remove-Alias" "Import-Alias" "Export-Alias"
|
|
; Host (prompt)
|
|
"prompt" "cls" "echo" "Clear-Host" "Get-Host" "Out-Host" "Read-Host" "Write-Host" "Out-String"
|
|
; Expressions
|
|
"Invoke-Expression"
|
|
; Objects
|
|
"Compare-Object" "ForEach-Object" "Group-Object" "Measure-Object" "New-Object" "Select-Object"
|
|
"Sort-Object" "Tee-Object" "Where-Object"
|
|
; Modules
|
|
"Export-ModuleMember" "Find-Module" "Get-Module" "Import-Module" "Install-Module" "New-Module"
|
|
"New-ModuleManifest" "Publish-Module" "Remove-Module" "Save-Module" "Test-ModuleManifest"
|
|
"Uninstall-Module" "Update-Module" "Update-ModuleManifest"))
|
|
|
|
; Parameters and call arguments
|
|
;------------------------------
|
|
(command_elements
|
|
(generic_token) @variable.parameter)
|
|
|
|
(switch_parameter) @variable.parameter.builtin
|
|
|
|
(command_parameter) @variable.parameter.builtin
|
|
|
|
(script_parameter
|
|
(variable) @variable.parameter)
|
|
|
|
(class_method_parameter
|
|
(variable) @variable.parameter)
|
|
|
|
; Document encoding
|
|
;------------------
|
|
((program
|
|
.
|
|
(comment) @keyword.directive @nospell)
|
|
(#lua-match? @keyword.directive "Encoding$"))
|