# Define SciTE settings for lisp and Scheme files.

file.patterns.lisp=*.lsp;*.lisp

filter.lisp=LISP (lsp lisp)|$(file.patterns.lisp)|

file.patterns.scheme=*.scm;*.smd;*.ss
filter.scheme=Scheme (scm smd)|$(file.patterns.scheme)|

#*filter.lisp=$(filter.lisp)
#*filter.scheme=$(filter.scheme)

lexer.$(file.patterns.lisp)=lisp
lexer.$(file.patterns.scheme)=lisp

*language.lisp=Lisp|lisp||

# lisp build in functions, xlisp dialect
keywords.$(file.patterns.lisp)= not defun + - * / = < > <= >= princ \
eval apply funcall quote identity function complement backquote lambda set setq setf \
defun defmacro gensym make symbol intern symbol name symbol value symbol plist get \
getf putprop remprop hash make array aref car cdr caar cadr cdar cddr caaar caadr cadar \
caddr cdaar cdadr cddar cdddr caaaar caaadr caadar caaddr cadaar cadadr caddar cadddr \
cdaaar cdaadr cdadar cdaddr cddaar cddadr cdddar cddddr cons list append reverse last nth \
nthcdr member assoc subst sublis nsubst  nsublis remove length list length \
mapc mapcar mapl maplist mapcan mapcon rplaca rplacd nconc delete atom symbolp numberp \
boundp null listp consp minusp zerop plusp evenp oddp eq eql equal cond case and or let l if prog \
prog1 prog2 progn go return do dolist dotimes catch throw error cerror break \
continue errset baktrace evalhook truncate float rem min max abs sin cos tan expt exp sqrt \
random logand logior logxor lognot bignums logeqv lognand lognor \
logorc2 logtest logbitp logcount integer length nil

word.chars.lisp=$(chars.alpha)$(chars.numeric)_-<>.#+@$%^&=*!?
word.characters.$(file.patterns.lisp)=$(word.chars.lisp)

# Scheme functions, R5RS
keywords.$(file.patterns.scheme)= + - * / = < > <= >= => \
abs acos and angle append apply asin assoc assoc assq assv atan \
begin boolean? \
caar cadr call-with-current-continuation call/cc \
call-with-input-file call-with-output-file call-with-values \
car cdr \
caar cadr cdar cddr \
caaar caadr cadar caddr cdaar cdadr cddar cdddr \
caaaar caaadr caadar caaddr cadaar cadadr caddar cadddr \
cdaaar cdaadr cdadar cdaddr cddaar cddadr cdddar cddddr \
case ceiling char->integer \
char-alphabetic? char-ci<=? char-ci<? char-ci=? char-ci>=? char-ci>? \
char-downcase char-lower-case? char-numeric? char-ready? \
char-upcase char-upper-case? char-whitespace? \
char<=? char<? char=? char>=? char>? char? \
close-input-port close-output-port complex? cond cons cos \
current-input-port current-output-port \
define define-syntax delay denominator display do dynamic-wind \
else eof-object? eq? equal? eqv? eval even? exact->inexact exact? \
exp expt \
floor for-each force \
gcd \
if imag-part inexact->exact inexact? input-port? integer->char integer? interaction-environment \
lambda lcm length let let* let-syntax letrec letrec-syntax \
list list->string list->vector list-ref list-tail list? load log \
magnitude make-polar make-rectangular make-string make-vector \
map max member memq memv min modulo \
negative? newline not null-environment null? number->string number? numerator \
odd? open-input-file open-output-file or output-port? \
pair? peek-char input-port? output-port? positive? procedure? \
quasiquote quote quotient \
rational? rationalize read read-char real-part real? remainder reverse round \
scheme-report-environment set! set-car! set-cdr! sin sqrt string \
string->list string->number string->symbol string-append \
string-ci<=? string-ci<? string-ci=? string-ci>=? string-ci>? \
string-copy string-fill! string-length string-ref string-set! \
string<=? string<? string=? string>=? string>? string? \
substring symbol->string symbol? syntax-rules \
transcript-off transcript-on truncate \
unquote unquote-splicing \
values vector vector->list vector-fill! vector-length vector-ref vector-set! vector? \
with-input-from-file with-output-to-file write write-char \
zero?

word.chars.scheme=$(chars.alpha)$(chars.numeric)!$%&*/:<=>?^_~+-.@
word.characters.$(file.patterns.scheme)=$(word.chars.scheme)


comment.block.lisp=;
comment.box.start.lisp=;;
comment.box.middle.lisp=;;
comment.box.end.lisp=;;


# LISP styles

# Default
style.lisp.32=$(font.base)
# White space
style.lisp.0=fore:#808080
# Line Comment
style.lisp.1=$(colour.code.comment.box),$(font.code.comment.box)
# Number
style.lisp.2=$(colour.number)
# Keyword
style.lisp.3=$(colour.keyword),bold
# Keyword 2
style.lisp.4=fore:#EE00AA
# Symbol
style.lisp.5=fore:#DD9900
# String
style.lisp.6=$(colour.string)
# Operators
style.lisp.10=$(colour.operator),bold
# Identifiers
style.lisp.9=
# End of line where string is not closed
style.lisp.8=fore:#000000,font:Verdana,size:9,back:#fefecc,eolfilled
# Special
style.lisp.11=fore:#60AA00
# Multi-line comment
style.lisp.12=$(colour.code.comment.box),$(font.code.comment.box)
# Matched Operators
style.lisp.34=fore:#0000FF,bold
style.lisp.35=fore:#FF0000,bold
# Braces are only matched in operator style
braces.lisp.style=10

#command.go.$(file.patterns.scheme)=c:\tools\pscheme\pscheme.exe /r "$(FilePath)"
command.go.$(file.patterns.scheme)=c:\tools\gambit\gsi.exe -f "$(FilePath)"
#command.go.$(file.patterns.scheme)=c:\tools\plt\mzscheme.exe -r "$(FilePath)"
command.go.subsystem.$(file.patterns.scheme)=0
