# Define SciTE settings for PowerShell files

file.patterns.powershell=*.ps1

filter.powershell=PowerShell (ps1)|$(file.patterns.powershell)|

lexer.$(file.patterns.powershell)=powershell

word.characters.$(file.patterns.powershell)=$(chars.alpha)$(chars.numeric)_-$

# Keywords
keywords.$(file.patterns.powershell)=\
begin break catch continue data do dynamicparam else elseif end exit filter \
finally for foreach from function if in local param private process return \
switch throw trap try until where while

# Cmdlets
keywords2.$(file.patterns.powershell)=\
add-computer add-content add-history add-member add-pssnapin add-type \
checkpoint-computer clear-content clear-eventlog clear-history clear-item \
clear-itemproperty clear-variable compare-object complete-transaction \
connect-wsman convert-path convertfrom-csv convertfrom-securestring \
convertfrom-stringdata convertto-csv convertto-html convertto-securestring \
convertto-xml copy-item copy-itemproperty debug-process disable-computerrestore \
disable-psbreakpoint disable-pssessionconfiguration disable-wsmancredssp \
disconnect-wsman enable-computerrestore enable-psbreakpoint enable-psremoting \
enable-pssessionconfiguration enable-wsmancredssp enter-pssession exit-pssession \
export-alias export-clixml export-console export-counter export-csv \
export-formatdata export-modulemember export-pssession foreach-object \
format-custom format-list format-table format-wide get-acl get-alias \
get-authenticodesignature get-childitem get-command get-computerrestorepoint \
get-content get-counter get-credential get-culture get-date get-event \
get-eventlog get-eventsubscriber get-executionpolicy get-formatdata get-help \
get-history get-host get-hotfix get-item get-itemproperty get-job get-location \
get-member get-module get-psbreakpoint get-pscallstack get-psdrive \
get-psprovider get-pssession get-pssessionconfiguration get-pssnapin \
get-pfxcertificate get-process get-random get-service get-tracesource \
get-transaction get-uiculture get-unique get-variable get-wsmancredssp \
get-wsmaninstance get-winevent get-wmiobject group-object import-alias \
import-clixml import-counter import-csv import-localizeddata import-module \
import-pssession invoke-command invoke-expression invoke-history invoke-item \
invoke-wsmanaction invoke-wmimethod join-path limit-eventlog measure-command \
measure-object move-item move-itemproperty new-alias new-event new-eventlog \
new-item new-itemproperty new-module new-modulemanifest new-object new-psdrive \
new-pssession new-pssessionoption new-service new-timespan new-variable \
new-wsmaninstance new-wsmansessionoption new-webserviceproxy out-default \
out-file out-gridview out-host out-null out-printer out-string pop-location \
push-location read-host receive-job register-engineevent register-objectevent \
register-pssessionconfiguration register-wmievent remove-computer remove-event \
remove-eventlog remove-item remove-itemproperty remove-job remove-module \
remove-psbreakpoint remove-psdrive remove-pssession remove-pssnapin \
remove-variable remove-wsmaninstance remove-wmiobject rename-item \
rename-itemproperty reset-computermachinepassword resolve-path restart-computer \
restart-service restore-computer resume-service select-object select-string \
select-xml send-mailmessage set-acl set-alias set-authenticodesignature \
set-content set-date set-executionpolicy set-item set-itemproperty set-location \
set-psbreakpoint set-psdebug set-pssessionconfiguration set-service \
set-strictmode set-tracesource set-variable set-wsmaninstance \
set-wsmanquickconfig set-wmiinstance show-eventlog sort-object split-path \
start-job start-process start-service start-sleep start-transaction \
start-transcript stop-computer stop-job stop-process stop-service \
stop-transcript suspend-service tee-object test-computersecurechannel \
test-connection test-modulemanifest test-path test-wsman trace-command \
undo-transaction unregister-event unregister-pssessionconfiguration \
update-formatdata update-list update-typedata use-transaction wait-event \
wait-job wait-process where-object write-debug write-error write-eventlog \
write-host write-output write-progress write-verbose write-warning

# Aliases
keywords3.$(file.patterns.powershell)=\
ac asnp cat cd chdir clc clear clhy cli clp cls clv compare copy cp cpi cpp cvpa \
dbp del diff dir ebp echo epal epcsv epsn erase etsn exsn fc fl foreach ft fw \
gal gbp gc gci gcm gcs gdr ghy gi gjb gl gm gmo gp gps group gsn gsnp gsv gu gv \
gwmi h history icm iex ihy ii ipal ipcsv ipmo ipsn ise iwmi kill lp ls man md \
measure mi mount move mp mv nal ndr ni nmo nsn nv ogv oh popd ps pushd pwd r rbp \
rcjb rd rdr ren ri rjb rm rmdir rmo rni rnp rp rsn rsnp rv rvpa rwmi sajb sal \
saps sasv sbp sc select set si sl sleep sort sp spjb spps spsv start sv swmi tee \
type where wjb write

# Functions
keywords4.$(file.patterns.powershell)=\
clear-host disable-psremoting enable-psremoting get-verb help importsystemmodules \
mkdir more prompt psedit tabexpansion

# User-defined keywords
#keywords5.$(file.patterns.powershell)=

# Comments
comment.block.powershell=#~
comment.block.at.line.start.powershell=1

# PowerShell Styles
# Default
style.powershell.0=fore:#000000
# Comment
style.powershell.1=fore:#008000
# String
style.powershell.2=fore:#800000
# Character
style.powershell.3=fore:#800000
# Number
style.powershell.4=fore:#FF0000
# Variable
style.powershell.5=fore:#800080
# Operator
style.powershell.6=fore:#000000,bold
# Identifier
style.powershell.7=$(style.powershell.0)
# Keyword
style.powershell.8=fore:#000080,bold
# Cmdlet
style.powershell.9=fore:#008080,bold
# Alias
style.powershell.10=fore:#008080,italics
# Function
style.powershell.11=fore:#808000,bold
# User-defined keyword
style.powershell.12=
# Commment (multi-line)
style.powershell.13=$(style.powershell.1)
