# Define SciTE settings for PowerShell files

file.patterns.powershell=*.ps1

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

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

# These keywords are commands
keywords.$(file.patterns.powershell)=\
break continue do else elseif filter for foreach function if in return switch \
until where while

# This keywords are cmdlets
keywords2.$(file.patterns.powershell)=\
add-content add-history add-member add-pssnapin clear-content clear-item \
clear-itemproperty clear-variable compare-object convertfrom-securestring \
convert-path convertto-html convertto-securestring copy-item copy-itemproperty \
export-alias export-clixml export-console export-csv foreach-object format-custom \
format-list format-table format-wide get-acl get-alias get-authenticodesignature \
get-childitem get-command get-content get-credential get-culture get-date \
get-eventlog get-executionpolicy get-help get-history get-host get-item \
get-itemproperty get-location get-member get-pfxcertificate get-process get-psdrive \
get-psprovider get-pssnapin get-service get-tracesource get-uiculture get-unique \
get-variable get-wmiobject group-object import-alias import-clixml import-csv \
invoke-expression invoke-history invoke-item join-path measure-command \
measure-object move-item move-itemproperty new-alias new-item new-itemproperty \
new-object new-psdrive new-service new-timespan new-variable out-default out-file \
out-host out-null out-printer out-string pop-location push-location read-host \
remove-item remove-itemproperty remove-psdrive remove-pssnapin remove-variable \
rename-item rename-itemproperty resolve-path restart-service resume-service \
select-object select-string set-acl set-alias set-authenticodesignature \
set-content set-date set-executionpolicy set-item set-itemproperty set-location \
set-psdebug set-service set-tracesource set-variable sort-object split-path \
start-service start-sleep start-transcript stop-process stop-service \
stop-transcript suspend-service tee-object test-path trace-command \
update-formatdata update-typedata where-object write-debug write-error write-host \
write-output write-progress write-verbose write-warning

# This keywords are aliases
keywords3.$(file.patterns.powershell)=\
ac asnp clc cli clp clv cpi cpp cvpa diff epal epcsv fc fl foreach ft fw gal gc \
gci gcm gdr ghy gi gl gm gp gps group gsv gsnp gu gv gwmi iex ihy ii ipal ipcsv \
mi mp nal ndr ni nv oh rdr ri rni rnp rp rsnp rv rvpa sal sasv sc select si sl \
sleep sort sp spps spsv sv tee where write cat cd clear cp h history kill lp ls \
mount mv popd ps pushd pwd r rm rmdir echo cls chdir copy del dir erase move rd \
ren set type

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

# PowerShell Styles
# White space
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
