# Define SciTE settings for lisp and Scheme files.

file.patterns.scheme=*.scm
filter.scheme=Scheme|$(file.patterns.scheme)|
file.patterns.hfl=*.hfl
filter.hfl=HFL|$(file.patterns.hfl)|

*filter.scheme=$(filter.scheme)
*filter.hfl=$(filter.hfl)

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

*language.lisp=Scheme|lisp||
*language.null=HFL|null||

# Scheme functions, R5RS
keywords.$(file.patterns.hfl)=/\\ quote atom number number? pair? real? integer? symbol? procedure? \
boolean? cons if eq eq? null null? sqrt max min sin cos exp log abs tan atan acos asin floor ceiling expt quotient remainder \
and apply caar cadr car cdar cddr cdr curry define delay div else force in lambda lazy let letrec \
mod not or then where whererec в возобновить где гдерек если \
задержать и или иначе л не пусть пустьрек то

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 case-lambda 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 memp sort find foldr foldl filter 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)
word.characters.$(file.patterns.hfl)=$(chars.alpha)$(chars.numeric)$(chars.accented)?\\/


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.compile.name.$(file.patterns.scheme)=Start interpreter
command.compile.$(file.patterns.scheme)=scheme_Restart
command.compile.subsystem.$(file.patterns.scheme)=3

command.clean.name.$(file.patterns.scheme)=Stop interpreter
command.clean.$(file.patterns.scheme)=interp_Stop
command.clean.subsystem.$(file.patterns.scheme)=3

command.go.name.$(file.patterns.scheme)=Load file
command.go.$(file.patterns.scheme)=scheme_Load
command.go.save.before.$(file.patterns.scheme)=1
command.go.subsystem.$(file.patterns.scheme)=3

command.build.name.$(file.patterns.scheme)=Run selected
command.build.$(file.patterns.scheme)=scheme_Run
command.build.subsystem.$(file.patterns.scheme)=3

command.compile.name.$(file.patterns.hfl)=Start interpreter
command.compile.$(file.patterns.hfl)=hfl_Restart
command.compile.subsystem.$(file.patterns.hfl)=3

command.clean.name.$(file.patterns.hfl)=Stop interpreter
command.clean.$(file.patterns.hfl)=interp_Stop
command.clean.subsystem.$(file.patterns.hfl)=3

command.go.name.$(file.patterns.hfl)=Load file
command.go.$(file.patterns.hfl)=hfl_Load
command.go.save.before.$(file.patterns.hfl)=1
command.go.subsystem.$(file.patterns.hfl)=3

command.build.name.$(file.patterns.hfl)=Run selected
command.build.$(file.patterns.hfl)=hfl_Run
command.build.subsystem.$(file.patterns.hfl)=3
