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

# tuxd3v lypus theme for Scite, bash Lexer.
# By Default dark theme for all, but majority os languages need to be worked out.
# Whats work nice:
# shell scripting and anonymous files, without specific lexers. ie: txt files
# <tuxd3v@sapo.pt>
# v0.2

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

shbang.sh=sh
shbang.bash=bash

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

filter.bash=Bash (sh bash)|$(file.patterns.bash)|
filter.awk=GAWK  (awk)|$(file.patterns.awk)|

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

# BASH 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

# BASH 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 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 pr print              \
printf ps 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

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

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

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

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

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

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

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

# 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.
#2e3436
style.bash.32=back:#1A1A1A
# White space
style.bash.0=fore:#272822,$(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:#729FC7
# Scalars: $var,$TERM,
style.bash.9=fore:#FF275E
# Parameter expansion: ${var}
style.bash.10=fore:#89E234
# Back Ticks
style.bash.11=fore:#D3D400
# Here-doc (delimiter)
style.bash.12=fore:#90EE90,bold,back:#000000,eolfilled
# Here-doc (single quoted, q)
style.bash.13=fore:#FFFFFF,back:#000000,eolfilled,notbold
# Braces are only matched in operator style
braces.bash.style=7

command.go.$(file.patterns.bash)=bash $(FileNameExt)
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

# Give symbolic names to the set of colours used in the standard styles.
colour.code.comment.box=fore:#A5A5A5,italics
colour.code.comment.line=fore:#C2D400,italics
colour.code.comment.doc=fore:#C2D400,italics
colour.code.comment.nested=fore:#A0C0A0
colour.text.comment=fore:#C2D400
colour.other.comment=fore:#C2D400
colour.embedded.comment=back:#BFBFBF
colour.embedded.js=back:#F0F0FF
colour.notused=back:#FF0000
 
colour.bracket=#D8D8D8,notbold
colour.number=fore:#ce5c00
colour.keyword=fore:#D2D2D2
colour.string=fore:#edd400
colour.char=fore:#FB2525
colour.operator=fore:#FFFFFF
colour.preproc=fore:#7F7F00
colour.error=fore:#FFFF00,back:#FF0000

# Set LineLength Delimiter
edge.mode=1
edge.column=150
edge.colour=#90EE90

autocompleteword.automatic=1
view.eol=0
