# Define SciTE settings for Forth files

# These patterns conflict with fortran.properties and nncrontab.properties
# so disable these other properties files if you want to use forth.
#file.patterns.forth=*.f;*.spf
#extensions.filter.forth=f spf
file.patterns.forth=*.forth
extensions.filter.forth=forth

# add '*.tab;*.spf;' to 'source.files' variable in 'SciTEGlobal.properties'
# if you want to include these file patterns into default source file list

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

*language.forth=Forth|forth||

filter.forth=Forth files ($(extensions.filter.forth))|$(file.patterns.forth)|

*filter.forth=$(filter.forth)

word.characters.$(file.patterns.forth)=$(chars.alpha)$(chars.numeric)%-

#comment.block.at.line.start.forth=0
comment.block.forth=\\

comment.box.start.forth=\\

comment.box.middle.forth=\\

comment.box.end.forth=\\

comment.stream.start.forth=(
comment.stream.end.forth=)

# Forth styles

# control keywords Forth
keywords.$(file.patterns.forth)=\
again begin case do else endcase endof if loop of repeat then until while \
[if] [else] [then] ?do

# Keywords
keywords2.$(file.patterns.forth)=\
dup drop rot swap over @ ! 2@ 2! 2dup 2drop 2swap 2over nip r@ >r r> 2r@ 2>r 2r> \
0= 0< sp@ sp! w@ w! c@ c! < > = <> 0<>\
space spaces key? key throw catch abort */ 2* /mod cell+ cells char+ \
chars move erase dabs title hex decimal hold <# # #s #> sign \
d. . u. dump (.") >number ' immediate exit recurse unloop leave here allot , \
c, w, compile, branch, ret, lit, dlit, ?branch, ", >mark >resolve1 <mark >resolve \
align aligned user-allot user-here header does> smudge hide :noname last-word \
?error error2 find1 sfind set-current get-current definitions get-order forth \
only set-order also previous voc-name. order latest literal 2literal sliteral \
cliteral ?literal1 ?sliteral1 hex-literal hex-sliteral ?literal2 ?sliteral2 source \
endofchunk charaddr peekchar isdelimiter getchar ondelimiter skipdelimiters onnotdelimiter \
skipword skipupto parseword nextword parse skip console-handles refill depth ?stack \
?comp word interpret bye quit main1 evaluate include-file included >body +word \
wordlist class! class@ par! par@ id. ?immediate ?voc immediate voc wordbyaddrwl \
wordbyaddr nlist words save options /notransl ansi>oem accept emit cr type ekey? \
ekey ekey>char externtask erase-imports modulename moduledirname environment? \
drop-exc-handler set-exc-handler halt err close-file create-file create-file-shared \
open-file-shared delete-file file-position file-size open-file read-file reposition-file \
dos-lines unix-lines read-line write-file resize-file write-line allocate free resize \
start suspend resume stop pause min max true false asciiz> \
r/o w/o ;class endwith or and /string search compare export ;module space

# defwords
keywords3.$(file.patterns.forth)=\
variable create : value constant vm: m: var dvar chars obj \
constr: destr: class: object: pointer \
user user-create user-value vect \
wndproc: vocabulary -- task: cez: module:

# prewords1
keywords4.$(file.patterns.forth)=\
char [char] postpone with ['] to [compile] char ascii \'

# prewords2
keywords5.$(file.patterns.forth)=\
require winapi:

# string words
keywords6.$(file.patterns.forth)=\
s" abort" z" " ." c"

# whitespace (SCE_FORTH_DEFAULT)
style.forth.0=$(font.monospace)
# Comment (SCE_FORTH_COMMENT)
style.forth.1=fore:#009933,$(font.comment),$(font.monospace)
# ML comment (SCE_FORTH_COMMENT_ML)
style.forth.2=fore:#007F00,$(font.comment)
# ML comment (SCE_FORTH_IDENTIFIER)
style.forth.3=fore:#000000,bold
# control (SCE_FORTH_CONTROL)
style.forth.4=fore:#00007F,bold
# Keywords (SCE_FORTH_KEYWORD)
style.forth.5=fore:#000000,$(font.monospace),bold
# defwords (SCE_FORTH_DEFWORD)
style.forth.6=fore:#FF0000,bold,$(font.monospace)
# preword1 (SCE_FORTH_PREWORD1)
style.forth.7=fore:#CC3300,bold,$(font.monospace)
# preword2 (SCE_FORTH_PREWORD2)
style.forth.8=fore:#996633,bold,$(font.monospace)
# number (SCE_FORTH_NUMBER)
style.forth.9=fore:#007F7F,$(font.monospace)
# Double quoted string (SCE_FORTH_STRING)
style.forth.10=fore:#CC3300,$(font.monospace)
# locale
style.forth.11=fore:#0000CC,$(font.monospace)

#command.compile.*.f=spf.cmd $(FileNameExt)
