# Define SciTE settings for Perl, Bash, and AWK files.

file.patterns.perl=*.pl;*.pm;*.pod
file.patterns.bash=*.sh;*.bsh;configure;*.ksh
file.patterns.awk=*.awk

*source.patterns.perl=$(file.patterns.perl);
*source.patterns.bash=$(file.patterns.bash);

shbang.perl=pl
shbang.sh=sh
shbang.bash=sh

shbang.gawk=awk
shbang.nawk=awk
shbang.mawk=awk

filter.perl=Perl (pl pm)|$(file.patterns.perl)|
filter.bash=Bash (sh bsh)|$(file.patterns.bash)|
filter.awk=GAWK  (awk)|$(file.patterns.awk)|

*filter.perl=$(filter.perl)
*filter.bash=$(filter.bash)

*language.perl=Pe&rl|pl||
*language.shell=Shell|sh||

lexer.$(file.patterns.perl)=perl
lexer.$(file.patterns.bash)=bash
lexer.$(file.patterns.awk)=perl

keywords.$(file.patterns.perl)=\
NULL __FILE__ __LINE__ __PACKAGE__ __DATA__ __END__ AUTOLOAD \
BEGIN CORE DESTROY END EQ GE GT INIT LE LT NE CHECK abs accept \
alarm and atan2 bind binmode bless caller chdir chmod chomp chop \
chown chr chroot close closedir cmp connect continue cos crypt \
dbmclose dbmopen defined delete die do dump each else elsif endgrent \
endhostent endnetent endprotoent endpwent endservent eof eq eval \
exec exists exit exp fcntl fileno flock for foreach fork format \
formline ge getc getgrent getgrgid getgrnam gethostbyaddr gethostbyname \
gethostent getlogin getnetbyaddr getnetbyname getnetent getpeername \
getpgrp getppid getpriority getprotobyname getprotobynumber getprotoent \
getpwent getpwnam getpwuid getservbyname getservbyport getservent \
getsockname getsockopt glob gmtime goto grep gt hex if index \
int ioctl join keys kill last lc lcfirst le length link listen \
local localtime lock log lstat lt map mkdir msgctl msgget msgrcv \
msgsnd my ne next no not oct open opendir or ord our pack package \
pipe pop pos print printf prototype push quotemeta qu \
rand read readdir readline readlink readpipe recv redo \
ref rename require reset return reverse rewinddir rindex rmdir \
scalar seek seekdir select semctl semget semop send setgrent \
sethostent setnetent setpgrp setpriority setprotoent setpwent \
setservent setsockopt shift shmctl shmget shmread shmwrite shutdown \
sin sleep socket socketpair sort splice split sprintf sqrt srand \
stat study sub substr symlink syscall sysopen sysread sysseek \
system syswrite tell telldir tie tied time times truncate \
uc ucfirst umask undef unless unlink unpack unshift untie until \
use utime values vec wait waitpid wantarray warn while write \
xor \
given when default break say state UNITCHECK __SUB__ fc

keywords.$(file.patterns.awk)=\
BEGIN END \
if else while do for in break continue delete exit function return \
print printf sprintf \
system close getline next nextfile fflush \
atan2 cos exp int log rand sin sqrt srand \
asort asorti gensub sub gsub index length match split \
strtonum substr tolower toupper \
mktime strftime systime \
and compl lshift or rshift xor \
bindtextdomain dcgettext dcngettext \
ARGC ARGIND ARGV BINMODE CONVFMT ENVIRON ERRNO FIELDWIDTHS \
FILENAME FNR FS IGNORECASE LINT NF NR OFMT OFS ORS PROCINFO \
RS RT RSTART RLENGTH SUBSEP TEXTDOMAIN


comment.block.awk=#~
block.start.$(file.patterns.awk)=10 {
block.end.$(file.patterns.awk)=10 }


word.characters.$(file.patterns.perl)=$(chars.alpha)$(chars.numeric)_$@%&

comment.block.perl=#~
block.start.$(file.patterns.perl)=10 {
block.end.$(file.patterns.perl)=10 }

colour.perl.heredoc=$(colour.embedded.comment)

#fold.perl.package=1
#fold.perl.pod=1

# generic keywords
bash_keywords1=alias \
ar asa awk banner basename bash bc bdiff break \
bunzip2 bzip2 cal calendar case cat cc cd chmod cksum \
clear cmp col comm compress continue cp cpio crypt \
csplit ctags cut date dc dd declare deroff dev df diff diff3 \
dircmp dirname dirs do done du echo ed egrep elif else env \
esac eval ex exec exit expand export expr false fc \
fgrep fi file find fmt fold for function functions \
getconf getopt getopts grep gres hash head help \
history iconv id if in integer jobs join kill local lc \
let line ln logname look ls m4 mail mailx make \
man mkdir more mt mv newgrp nl nm nohup ntps od \
pack paste patch pathchk pax pcat perl pg popd pr print \
printf ps pushd pwd read readonly red return rev rm rmdir \
sed select set sh shift size sleep sort spell \
split start stop strings strip stty sum suspend \
sync tail tar tee test then time times touch tr \
trap true tsort tty type typeset ulimit umask unalias \
uname uncompress unexpand uniq unpack unset until \
uudecode uuencode vi vim vpax wait wc whence which \
while who wpaste wstart xargs zcat

# additional keywords from coreutils
bash_keywords2=chgrp chown chroot dir dircolors \
factor groups hostid install link md5sum mkfifo \
mknod nice pinky printenv ptx readlink seq \
sha1sum shred stat su tac unlink users vdir whoami yes

keywords.$(file.patterns.bash)=$(bash_keywords1) $(bash_keywords2)

word.characters.$(file.patterns.bash)=$(chars.alpha)$(chars.numeric)_$@%&

comment.block.bash=#~

colour.bash.heredoc=$(colour.embedded.comment)

# Perl styles
# The perl styles are set to lots of different foreground and background colours as an
# aid to debugging SciTE's Perl lexer - not because this is a good way to display Perl.
style.perl.32=
# White space
style.perl.0=fore:#808080,$(font.base)
# Error
style.perl.1=$(colour.error)
# Comment
style.perl.2=$(colour.code.comment.box),$(font.code.comment.box)
# POD: = at beginning of line
style.perl.3=fore:#004000,back:#E0FFE0,$(font.text),eolfilled
# Number
style.perl.4=$(colour.number)
# Keyword
style.perl.5=$(colour.keyword),bold
# Double quoted string
style.perl.6=$(colour.string),$(font.monospace)
# Single quoted string
style.perl.7=$(colour.char),$(font.monospace)
# Symbols / Punctuation. Currently not used by LexPerl.
style.perl.8=$(colour.notused),$(font.notused)
# Preprocessor. Currently not used by LexPerl.
style.perl.9=$(colour.notused),$(font.notused)
# Operators
style.perl.10=$(colour.operator),bold
# Identifiers (functions, etc.)
style.perl.11=fore:#000000
# Scalars: $var
style.perl.12=fore:#000000,back:#FFE0E0
# Array: @var
style.perl.13=fore:#000000,back:#FFFFE0
# Hash: %var
style.perl.14=fore:#000000,back:#FFE0FF
# Symbol table: *var
style.perl.15=fore:#000000,back:#E0E0E0
# SCE_PL_VARIABLE_INDEXER allocated but unused
style.perl.16=back:#FF0000
# Regex: /re/ or m{re}
style.perl.17=fore:#000000,back:#A0FFA0
# Substitution: s/re/ore/
style.perl.18=fore:#000000,back:#F0E080
# Long Quote (qq, qr, qw, qx) -- obsolete: replaced by qq, qx, qr, qw
style.perl.19=fore:#FFFF00,back:#8080A0
# Back Ticks
style.perl.20=$(style.perl.6),back:#90FFFF
# Data Section: __DATA__ or __END__ at beginning of line
style.perl.21=fore:#600000,back:#FFF0D8,eolfilled
# Here-doc (delimiter)
style.perl.22=fore:#000000,back:#DDD0DD
# Here-doc (single quoted, q)
style.perl.23=fore:#7F007F,back:#DDD0DD,eolfilled,notbold
# Here-doc (double quoted, qq)
style.perl.24=fore:#7F007F,back:#DDD0DD,eolfilled,bold
# Here-doc (back ticks, qx)
style.perl.25=fore:#7F007F,back:#DDD0DD,eolfilled,italics
# Single quoted string, generic
style.perl.26=fore:#7F007F,$(font.monospace),notbold
# qq = Double quoted string
style.perl.27=$(style.perl.6)
# qx = Back ticks
style.perl.28=$(style.perl.20)
# qr = Regex
style.perl.29=$(style.perl.17)
# qw = Array
style.perl.30=$(style.perl.13)
# POD: verbatim paragraphs
style.perl.31=fore:#004000,back:#C0FFC0,$(font.monospace),eolfilled
# subroutine prototype
style.perl.40=$(style.perl.10),italics
# format identifier
style.perl.41=fore:#C000C0,bold
# format body
style.perl.42=fore:#C000C0,back:#FFF0FF,eolfilled
# translation: tr{}{} y{}{}
style.perl.44=$(style.perl.18)

# Double quoted string (interpolated variable)
style.perl.43=$(style.perl.6),fore:#D00000,bold
# Regex: /re/ or m{re} (interpolated variable)
style.perl.54=$(style.perl.17),fore:#D00000,bold
# Substitution: s/re/ore/ (interpolated variable)
style.perl.55=$(style.perl.18),fore:#D00000,bold
# Back Ticks (interpolated variable)
style.perl.57=$(style.perl.20),fore:#D00000,bold
# Here-doc (double quoted, qq) (interpolated variable)
style.perl.61=$(style.perl.24),fore:#D00000,bold
# Here-doc (back ticks, qx) (interpolated variable)
style.perl.62=$(style.perl.61)
# qq = Double quoted string (interpolated variable)
style.perl.64=$(style.perl.43)
# qx = Back ticks (interpolated variable)
style.perl.65=$(style.perl.57)
# qr = Regex (interpolated variable)
style.perl.66=$(style.perl.54)

# Braces are only matched in operator style
braces.perl.style=10

# Bash styles
# The bash styles are set to lots of different foreground and background colours as an
# aid to debugging SciTE's Bash lexer - not because this is a good way to display Bash.
style.bash.32=
# White space
style.bash.0=fore:#808080,$(font.base)
# Error
style.bash.1=$(colour.error)
# Comment
style.bash.2=$(colour.code.comment.box),$(font.code.comment.box)
# Number
style.bash.3=$(colour.number)
# Keyword
style.bash.4=$(colour.keyword),bold
# Double quoted string
style.bash.5=$(colour.string),$(font.monospace)
# Single quoted string
style.bash.6=$(colour.char),$(font.monospace)
# Operators
style.bash.7=$(colour.operator),bold
# Identifiers (functions, etc.)
style.bash.8=fore:#000000
# Scalars: $var
style.bash.9=fore:#000000,back:#FFE0E0
# Parameter expansion: ${var}
style.bash.10=fore:#000000,back:#FFFFE0
# Back Ticks
style.bash.11=fore:#FFFF00,back:#A08080
# Here-doc (delimiter)
style.bash.12=fore:#000000,back:#DDD0DD
# Here-doc (single quoted, q)
style.bash.13=fore:#7F007F,back:#DDD0DD,eolfilled,notbold
# Braces are only matched in operator style
braces.bash.style=7

command.go.$(file.patterns.awk)=gawk -f $(FileNameExt)

command.go.$(file.patterns.perl)=perl -w $(FileNameExt)

command.compile.$(file.patterns.perl)=perl -c -w $(FileNameExt)
command.name.0.$(file.patterns.perl)=Lint
command.0.$(file.patterns.perl)=perl -MO=Lint,all $(FileNameExt)

command.name.1.$(file.patterns.perl)=Check Syntax
command.1.$(file.patterns.perl)=perl -cw $(FileNameExt)

command.name.2.$(file.patterns.perl)=Code Profiler
command.2.$(file.patterns.perl)=perl -d:DProf $(FileNameExt)

command.name.3.$(file.patterns.perl)=Profiler Parser
command.3.$(file.patterns.perl)=C:\Perl\bin\dprofpp.bat $(FileDir)\tmon.out

command.go.$(file.patterns.bash)=bash $(FileNameExt)
