2020-07-15 09:14:15 +01:00

632 lines
22 KiB
XML

<?xml version="1.0" encoding="UTF-8"?>
<!--
Author: haven200 <haven200@gmail.com>
Copyright (C) 2013 haven200
This library is free software; you can redistribute it and/or
modify it under the terms of the GNU Library General Public
License as published by the Free Software Foundation; either
version 2 of the License, or (at your option) any later version.
This library is distributed in the hope that it will be useful,
but WITHOUT ANY WARRANTY; without even the implied warranty of
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
Library General Public License for more details.
You should have received a copy of the GNU General Public License
along with this program; if not, write to the Free Software
Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston,
MA 02110-1301, USA.
-->
<language id="powershell" name="PowerShell" version="2.0" _section="Source">
<metadata>
<property name="mimetypes">text/x-powershell;text/x-ps</property>
<property name="globs">*.ps1;*.psm1;*.psd1</property>
<property name="line-comment-start">#</property>
<property name="block-comment-start">&lt;#</property>
<property name="block-comment-end">#&gt;</property>
</metadata>
<styles>
<style id="comment" name="Comment" map-to="def:comment"/>
<style id="multiline-comment" name="Comment" map-to="def:doc-comment-element"/>
<style id="string" name="String" map-to="def:string"/>
<style id="char" name="Character" map-to="def:special-char"/>
<style id="keyword" name="Keyword" map-to="def:keyword"/>
<style id="function-param" name="Parameter Attribute" map-to="def:statement"/>
<style id="operator" name="Operator" map-to="def:keyword"/>
<style id="symbol" name="Symbol" map-to="def:identifier"/>
<style id="variable" name="Variable" map-to="def:shebang"/>
<style id="builtin-function" name="Builtin Function" map-to="def:builtin"/>
<style id="user-function" name="User Function" map-to="def:constant"/>
<style id="builtin-parameters" name="CmdLet Parameters" map-to="def:preprocessor"/>
<style id="datatype" name="Data Type" map-to="def:type"/>
<style id="number" name="Number" map-to="def:special-char"/>
</styles>
<default-regex-options case-sensitive="false"/>
<definitions>
<context id="line-comment" style-ref="comment" end-at-line-end="true" class="comment" class-disabled="no-spell-check">
<start>#</start>
<include>
<context ref="def:in-line-comment"/>
</include>
</context>
<context id="multiline-comment" style-ref="multiline-comment" class="comment" class-disabled="no-spell-check">
<start>&lt;#</start>
<end>#&gt;</end>
<include>
<context ref="def:in-comment"/>
</include>
</context>
<context id="string" style-ref="string" class="string" class-disabled="no-spell-check">
<start>"</start>
<end>"</end>
</context>
<context id="char" style-ref="char" class-disabled="no-spell-check">
<start>'</start>
<end>'</end>
</context>
<context id="keywords" style-ref="keyword">
<keyword>begin</keyword>
<keyword>break</keyword>
<keyword>case</keyword>
<keyword>Continue</keyword>
<keyword>Catch</keyword>
<keyword>Default</keyword>
<keyword>Do</keyword>
<keyword>Else</keyword>
<keyword>Elseif</keyword>
<keyword>End</keyword>
<keyword>Exit</keyword>
<keyword>Filter</keyword>
<keyword>For</keyword>
<keyword>Foreach</keyword>
<keyword>Function</keyword>
<keyword>Finally</keyword>
<keyword>If</keyword>
<keyword>In</keyword>
<keyword>Param</keyword>
<keyword>Process</keyword>
<keyword>Prompt</keyword>
<keyword>Parameter</keyword>
<keyword>Return</keyword>
<keyword>Switch</keyword>
<keyword>Then</keyword>
<keyword>Throw</keyword>
<keyword>Trap</keyword>
<keyword>Try</keyword>
<keyword>Until</keyword>
<keyword>While</keyword>
<keyword>Workflow</keyword>
<keyword>Parallel</keyword>
</context>
<context id="Function-Param" style-ref="function-param">
<keyword>DefaultParameterSetName</keyword>
<keyword>ConfirmImpact</keyword>
<keyword>SupportsShouldProcess</keyword>
<keyword>CmdletBinding</keyword>
<keyword>Mandatory</keyword>
<keyword>Position</keyword>
<keyword>ParameterSetName</keyword>
<keyword>ValueFromPipeline</keyword>
<keyword>ValueFromPipelineByPropertyName</keyword>
<keyword>ValueFromPipelineByPropertyName</keyword>
<keyword>Alias</keyword>
<keyword>AllowNull</keyword>
<keyword>AllowEmptyString</keyword>
<keyword>AllowEmptyCollection</keyword>
<keyword>ValidateCount</keyword>
<keyword>ValidateSet</keyword>
<keyword>ValidatePattern</keyword>
<keyword>ValidateRange</keyword>
<keyword>ValidateScript</keyword>
<keyword>ValidateNotNull</keyword>
<keyword>ValidateNotNullOrEmpty</keyword>
</context>
<define-regex id="operator" extended="true">
\-
( b?and | b?not | b?or | b?xor | (I|C)?eq | (I|C)?ge | (I|C)?gt |
(I|C)?le | (I|C)?lt | (I|C)?ne |
(I|C)?(not)?contains | (I|C)?(not)?like | (I|C)?(not)?match | (I|C)?replace |
shr | shl | (not)?in | # add in powershell 3.0
(not)?is | as
)
\b
</define-regex>
<context id="operator" style-ref="operator">
<match>\%{operator}</match>
</context>
<define-regex id="symbol" extended="true">
\! | \` | \\ |
\+ | \- | \* | / | % |
\? | : |
= |
\b
</define-regex>
<context id="symbol" style-ref="operator">
<match>\%{symbol}</match>
</context>
<define-regex id="variable" extended="true">
\$
([scriptglobacve]{5,7}:)? #script:, global:, local:, private:
[a-z0-9_]+
\b
</define-regex>
<!-- FixMe $? isn't correct displayed -->
<context id="Variable" style-ref="variable">
<match>\%{variable}</match>
</context>
<context id="BuiltIn-Function" style-ref="builtin-function">
<keyword>Add-Computer</keyword>
<keyword>Add-Content</keyword>
<keyword>Add-History</keyword>
<keyword>Add-Member</keyword>
<keyword>Add-PSSnapin</keyword>
<keyword>Add-Type</keyword>
<keyword>Checkpoint-Computer</keyword>
<keyword>Clear-Content</keyword>
<keyword>Clear-EventLog</keyword>
<keyword>Clear-History</keyword>
<keyword>Clear-Item</keyword>
<keyword>Clear-ItemProperty</keyword>
<keyword>Clear-Variable</keyword>
<keyword>Compare-Object</keyword>
<keyword>Complete-Transaction</keyword>
<keyword>Connect-WSMan</keyword>
<keyword>Convert-Path</keyword>
<keyword>ConvertFrom-CSV</keyword>
<keyword>ConvertFrom-SecureString</keyword>
<keyword>ConvertFrom-StringData</keyword>
<keyword>ConvertTo-CSV</keyword>
<keyword>ConvertTo-Html</keyword>
<keyword>ConvertTo-SecureString</keyword>
<keyword>ConvertTo-XML</keyword>
<keyword>Copy-Item</keyword>
<keyword>Copy-ItemProperty</keyword>
<keyword>Debug-Process</keyword>
<keyword>Disable-ComputerRestore</keyword>
<keyword>Disable-PSBreakpoint</keyword>
<keyword>Disable-PSSessionConfiguration</keyword>
<keyword>Disable-WSManCredSSP</keyword>
<keyword>Disconnect-WSMan</keyword>
<keyword>Enable-ComputerRestore</keyword>
<keyword>Enable-PSBreakpoint</keyword>
<keyword>Enable-PSRemoting</keyword>
<keyword>Enable-PSSessionConfiguration</keyword>
<keyword>Enable-WSManCredSSP</keyword>
<keyword>Enter-PSSession</keyword>
<keyword>Exit-PSSession</keyword>
<keyword>Export-Alias</keyword>
<keyword>Export-CSV</keyword>
<keyword>Export-Clixml</keyword>
<keyword>Export-Console</keyword>
<keyword>Export-Counter</keyword>
<keyword>Export-FormatData</keyword>
<keyword>Export-ModuleMember</keyword>
<keyword>Export-PSSession</keyword>
<keyword>ForEach-Object</keyword>
<keyword>Format-Custom</keyword>
<keyword>Format-List</keyword>
<keyword>Format-Table</keyword>
<keyword>Format-Wide</keyword>
<keyword>Get-Acl</keyword>
<keyword>Get-Alias</keyword>
<keyword>Get-AuthenticodeSignature</keyword>
<keyword>Get-ChildItem</keyword>
<keyword>Get-Command</keyword>
<keyword>Get-ComputerRestorePoint</keyword>
<keyword>Get-Content</keyword>
<keyword>Get-Counter</keyword>
<keyword>Get-Credential</keyword>
<keyword>Get-Culture</keyword>
<keyword>Get-Date</keyword>
<keyword>Get-Event</keyword>
<keyword>Get-EventLog</keyword>
<keyword>Get-EventSubscriber</keyword>
<keyword>Get-ExecutionPolicy</keyword>
<keyword>Get-FormatData</keyword>
<keyword>Get-Help</keyword>
<keyword>Get-History</keyword>
<keyword>Get-Host</keyword>
<keyword>Get-HotFix</keyword>
<keyword>Get-Item</keyword>
<keyword>Get-ItemProperty</keyword>
<keyword>Get-Job</keyword>
<keyword>Get-Location</keyword>
<keyword>Get-Member</keyword>
<keyword>Get-Module</keyword>
<keyword>Get-PSBreakpoint</keyword>
<keyword>Get-PSCallStack</keyword>
<keyword>Get-PSDrive</keyword>
<keyword>Get-PSProvider</keyword>
<keyword>Get-PSSession</keyword>
<keyword>Get-PSSessionConfiguration</keyword>
<keyword>Get-PSSnapin</keyword>
<keyword>Get-PfxCertificate</keyword>
<keyword>Get-Process</keyword>
<keyword>Get-Random</keyword>
<keyword>Get-Service</keyword>
<keyword>Get-TraceSource</keyword>
<keyword>Get-Transaction</keyword>
<keyword>Get-UICulture</keyword>
<keyword>Get-Unique</keyword>
<keyword>Get-Variable</keyword>
<keyword>Get-WSManCredSSP</keyword>
<keyword>Get-WSManInstance</keyword>
<keyword>Get-WinEvent</keyword>
<keyword>Get-WmiObject</keyword>
<keyword>Group-Object</keyword>
<keyword>Get-Services</keyword>
<keyword>Import-Alias</keyword>
<keyword>Import-CSV</keyword>
<keyword>Import-Clixml</keyword>
<keyword>Import-Counter</keyword>
<keyword>Import-LocalizedData</keyword>
<keyword>Import-Module</keyword>
<keyword>Import-PSSession</keyword>
<keyword>Invoke-Command</keyword>
<keyword>Invoke-Expression</keyword>
<keyword>Invoke-History</keyword>
<keyword>Invoke-Item</keyword>
<keyword>Invoke-WSManAction</keyword>
<keyword>Invoke-WmiMethod</keyword>
<keyword>Join-Path</keyword>
<keyword>Limit-EventLog</keyword>
<keyword>Measure-Command</keyword>
<keyword>Measure-Object</keyword>
<keyword>Move-Item</keyword>
<keyword>Move-ItemProperty</keyword>
<keyword>New-Alias</keyword>
<keyword>New-Event</keyword>
<keyword>New-EventLog</keyword>
<keyword>New-Item</keyword>
<keyword>New-ItemProperty</keyword>
<keyword>New-Module</keyword>
<keyword>New-ModuleManifest</keyword>
<keyword>New-Object</keyword>
<keyword>New-PSDrive</keyword>
<keyword>New-PSSession</keyword>
<keyword>New-PSSessionOption</keyword>
<keyword>New-Service</keyword>
<keyword>New-TimeSpan</keyword>
<keyword>New-Variable</keyword>
<keyword>New-WSManInstance</keyword>
<keyword>New-WSManSessionOption</keyword>
<keyword>New-WebServiceProxy</keyword>
<keyword>Out-Default</keyword>
<keyword>Out-File</keyword>
<keyword>Out-GridView</keyword>
<keyword>Out-Host</keyword>
<keyword>Out-Null</keyword>
<keyword>Out-Printer</keyword>
<keyword>Out-String</keyword>
<keyword>Pop-Location</keyword>
<keyword>Push-Location</keyword>
<keyword>Read-Host</keyword>
<keyword>Receive-Job</keyword>
<keyword>Register-EngineEvent</keyword>
<keyword>Register-ObjectEvent</keyword>
<keyword>Register-PSSessionConfiguration</keyword>
<keyword>Register-WmiEvent</keyword>
<keyword>Remove-Computer</keyword>
<keyword>Remove-Event</keyword>
<keyword>Remove-EventLog</keyword>
<keyword>Remove-Item</keyword>
<keyword>Remove-ItemProperty</keyword>
<keyword>Remove-Job</keyword>
<keyword>Remove-Module</keyword>
<keyword>Remove-PSBreakpoint</keyword>
<keyword>Remove-PSDrive</keyword>
<keyword>Remove-PSSession</keyword>
<keyword>Remove-PSSnapin</keyword>
<keyword>Remove-Variable</keyword>
<keyword>Remove-WSManInstance</keyword>
<keyword>Remove-WmiObject</keyword>
<keyword>Rename-Item</keyword>
<keyword>Rename-ItemProperty</keyword>
<keyword>Reset-ComputerMachinePassword</keyword>
<keyword>Resolve-Path</keyword>
<keyword>Restart-Computer</keyword>
<keyword>Restart-Service</keyword>
<keyword>Restore-Computer</keyword>
<keyword>Resume-Service</keyword>
<keyword>Select-Object</keyword>
<keyword>Select-String</keyword>
<keyword>Select-XML</keyword>
<keyword>Send-MailMessage</keyword>
<keyword>Set-Acl</keyword>
<keyword>Set-Alias</keyword>
<keyword>Set-AuthenticodeSignature</keyword>
<keyword>Set-Content</keyword>
<keyword>Set-Date</keyword>
<keyword>Set-ExecutionPolicy</keyword>
<keyword>Set-Item</keyword>
<keyword>Set-ItemProperty</keyword>
<keyword>Set-Location</keyword>
<keyword>Set-PSBreakpoint</keyword>
<keyword>Set-PSDebug</keyword>
<keyword>Set-PSSessionConfiguration</keyword>
<keyword>Set-Service</keyword>
<keyword>Set-StrictMode</keyword>
<keyword>Set-TraceSource</keyword>
<keyword>Set-Variable</keyword>
<keyword>Set-WSManInstance</keyword>
<keyword>Set-WSManQuickConfig</keyword>
<keyword>Set-WmiInstance</keyword>
<keyword>Show-EventLog</keyword>
<keyword>Sort-Object</keyword>
<keyword>Split-Path</keyword>
<keyword>Start-Job</keyword>
<keyword>Start-Process</keyword>
<keyword>Start-Service</keyword>
<keyword>Start-Sleep</keyword>
<keyword>Start-Transaction</keyword>
<keyword>Start-Transcript</keyword>
<keyword>Stop-Computer</keyword>
<keyword>Stop-Job</keyword>
<keyword>Stop-Process</keyword>
<keyword>Stop-Service</keyword>
<keyword>Stop-Transcript</keyword>
<keyword>Suspend-Service</keyword>
<keyword>Tee-Object</keyword>
<keyword>Test-ComputerSecureChannel</keyword>
<keyword>Test-Connection</keyword>
<keyword>Test-ModuleManifest</keyword>
<keyword>Test-Path</keyword>
<keyword>Test-WSMan</keyword>
<keyword>Trace-Command</keyword>
<keyword>Undo-Transaction</keyword>
<keyword>Unregister-Event</keyword>
<keyword>Unregister-PSSessionConfiguration</keyword>
<keyword>Update-FormatData</keyword>
<keyword>Update-List</keyword>
<keyword>Update-TypeData</keyword>
<keyword>Use-Transaction</keyword>
<keyword>Wait-Event</keyword>
<keyword>Wait-Job</keyword>
<keyword>Wait-Process</keyword>
<keyword>Where-Object</keyword>
<keyword>Write-Debug</keyword>
<keyword>Write-Error</keyword>
<keyword>Write-EventLog</keyword>
<keyword>Write-Host</keyword>
<keyword>Write-Output</keyword>
<keyword>Write-Progress</keyword>
<keyword>Write-Verbose</keyword>
<keyword>Write-Warning</keyword>
</context>
<context id="BuiltIn-Alias" style-ref="builtin-function">
<keyword>ac</keyword>
<keyword>asnp</keyword>
<keyword>cat</keyword>
<keyword>cd</keyword>
<keyword>chdir</keyword>
<keyword>clc</keyword>
<keyword>clear</keyword>
<keyword>clhy</keyword>
<keyword>cli</keyword>
<keyword>clp</keyword>
<keyword>cls</keyword>
<keyword>clv</keyword>
<keyword>compare</keyword>
<keyword>copy</keyword>
<keyword>cp</keyword>
<keyword>cpi</keyword>
<keyword>cpp</keyword>
<keyword>cvpa</keyword>
<keyword>dbp</keyword>
<keyword>del</keyword>
<keyword>diff</keyword>
<keyword>dir</keyword>
<keyword>ebp</keyword>
<keyword>echo</keyword>
<keyword>epal</keyword>
<keyword>epcsv</keyword>
<keyword>epsn</keyword>
<keyword>erase</keyword>
<keyword>etsn</keyword>
<keyword>exsn</keyword>
<keyword>fc</keyword>
<keyword>fl</keyword>
<keyword>foreach</keyword>
<keyword>ft</keyword>
<keyword>fw</keyword>
<keyword>gal</keyword>
<keyword>gbp</keyword>
<keyword>gc</keyword>
<keyword>gci</keyword>
<keyword>gcm</keyword>
<keyword>gcs</keyword>
<keyword>gdr</keyword>
<keyword>ghy</keyword>
<keyword>gi</keyword>
<keyword>gjb</keyword>
<keyword>gl</keyword>
<keyword>gm</keyword>
<keyword>gmo</keyword>
<keyword>gp</keyword>
<keyword>gps</keyword>
<keyword>group</keyword>
<keyword>gsn</keyword>
<keyword>gsnp</keyword>
<keyword>gsv</keyword>
<keyword>gu</keyword>
<keyword>gv</keyword>
<keyword>gwmi</keyword>
<keyword>h</keyword>
<keyword>history</keyword>
<keyword>icm</keyword>
<keyword>iex</keyword>
<keyword>ihy</keyword>
<keyword>ii</keyword>
<keyword>ipal</keyword>
<keyword>ipcsv</keyword>
<keyword>ipmo</keyword>
<keyword>ipsn</keyword>
<keyword>ise</keyword>
<keyword>iwmi</keyword>
<keyword>kill</keyword>
<keyword>lp</keyword>
<keyword>ls</keyword>
<keyword>man</keyword>
<keyword>md</keyword>
<keyword>measure</keyword>
<keyword>mi</keyword>
<keyword>mount</keyword>
<keyword>move</keyword>
<keyword>mp</keyword>
<keyword>mv</keyword>
<keyword>nal</keyword>
<keyword>ndr</keyword>
<keyword>ni</keyword>
<keyword>nmo</keyword>
<keyword>nsn</keyword>
<keyword>nv</keyword>
<keyword>ogv</keyword>
<keyword>oh</keyword>
<keyword>popd</keyword>
<keyword>ps</keyword>
<keyword>pushd</keyword>
<keyword>pwd</keyword>
<keyword>r</keyword>
<keyword>rbp</keyword>
<keyword>rcjb</keyword>
<keyword>rd</keyword>
<keyword>rdr</keyword>
<keyword>ren</keyword>
<keyword>ri</keyword>
<keyword>rjb</keyword>
<keyword>rm</keyword>
<keyword>rmdir</keyword>
<keyword>rmo</keyword>
<keyword>rni</keyword>
<keyword>rnp</keyword>
<keyword>rp</keyword>
<keyword>rsn</keyword>
<keyword>rsnp</keyword>
<keyword>rv</keyword>
<keyword>rvpa</keyword>
<keyword>rwmi</keyword>
<keyword>sajb</keyword>
<keyword>sal</keyword>
<keyword>saps</keyword>
<keyword>sasv</keyword>
<keyword>sbp</keyword>
<keyword>sc</keyword>
<keyword>select</keyword>
<keyword>set</keyword>
<keyword>si</keyword>
<keyword>sl</keyword>
<keyword>sleep</keyword>
<keyword>sort</keyword>
<keyword>sp</keyword>
<keyword>spjb</keyword>
<keyword>spps</keyword>
<keyword>spsv</keyword>
<keyword>start</keyword>
<keyword>sv</keyword>
<keyword>swmi</keyword>
<keyword>tee</keyword>
<keyword>type</keyword>
<keyword>where</keyword>
<keyword>wjb</keyword>
<keyword>write</keyword>
</context>
<context id="BuiltIn-Parameters" style-ref="builtin-parameters">
<prefix>\-</prefix>
<!--in common use-->
<keyword>ErrorAction</keyword>
<keyword>ErrorVariable</keyword>
<keyword>WarningAction</keyword>
<keyword>WarningVariable</keyword>
<keyword>Verbose</keyword>
<keyword>OutVariable</keyword>
<keyword>OutBuffer</keyword>
<keyword>Debug</keyword>
<keyword>PipelineVariable</keyword>
<!--Other-->
<keyword>ForegroundColor</keyword>
<keyword>BackgroundColor</keyword>
<keyword>TypeName</keyword>
<keyword>Object</keyword>
<keyword>ComObject</keyword>
<keyword>NoNewline</keyword>
<keyword>Certificate</keyword>
<keyword>InputObject</keyword>
<keyword>MemberType</keyword>
<keyword>Name</keyword>
<keyword>Value</keyword>
<keyword>PassThru</keyword>
<keyword>Version</keyword>
<keyword>Seconds</keyword>
<keyword>PassThru</keyword>
</context>
<context id="User-Function" style-ref="user-function">
<match>\b[a-z0-9_-]+\-[a-z0-9_]+\b</match>
</context>
<context id="Number" style-ref="number">
<match>\b(0x[0-9a-f]+[L]?|[0-9]+(\.[0-9]+)?[d]?)\b</match>
</context>
<context id="DataTypes" style-ref="datatype">
<keyword>array</keyword>
<keyword>bool</keyword>
<keyword>byte</keyword>
<keyword>char</keyword>
<keyword>decimal</keyword>
<keyword>double</keyword>
<keyword>hashtable</keyword>
<keyword>int</keyword>
<keyword>int32</keyword>
<keyword>long</keyword>
<keyword>single</keyword>
<keyword>string</keyword>
<keyword>void</keyword>
<keyword>xml</keyword>
</context>
<context id="powershell" class="no-spell-check">
<include>
<context ref="line-comment"/>
<context ref="multiline-comment"/>
<context ref="string"/>
<context ref="char"/>
<context ref="BuiltIn-Function"/>
<context ref="BuiltIn-Alias"/>
<context ref="keywords"/>
<context ref="BuiltIn-Parameters"/>
<context ref="Function-Param"/>
<context ref="User-Function"/>
<context ref="Variable"/>
<context ref="DataTypes"/>
<context ref="operator"/>
<context ref="Number"/>
<context ref="symbol"/>
</include>
</context>
</definitions>
</language>