# Define SciTE settings for FreeBasic files.

file.patterns.freebasic=*.bas;*.bi

filter.freebasic=FreeBasic (bb bi)|$(file.patterns.freebasic)|

*filter.freebasic=$(filter.freebasic)

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

*language.freebasic=FreeBasic|bas||

# keywords must be all lowercase

keywordclass.freebasic=\
append as asc asin asm atan2 atn beep bin binary bit bitreset bitset bload \
bsave byref byte byval call callocate case cbyte cdbl cdecl chain chdir chr \
cint circle clear clng clngint close cls color command common cons const \
continue cos cshort csign csng csrlin cubyte cuint culngint cunsg curdir \
cushort custom cvd cvi cvl cvlongint cvs cvshort data date deallocate declare \
defbyte defdbl defined defint deflng deflngint defshort defsng defstr defubyte \
defuint defulngint defushort dim dir do double draw dylibload dylibsymbol else \
elseif end enum environ environ$ eof eqv erase err error exec exepath exit exp \
export extern field fix flip for fre freefile function get getjoystick getkey \
getmouse gosub goto hex hibyte hiword if iif imagecreate imagedestroy imp \
inkey inp input instr int integer is kill lbound lcase left len let lib line \
lobyte loc local locate lock lof log long longint loop loword lset ltrim \
mid mkd mkdir mki mkl mklongint mks mkshort mod multikey mutexcreate \
mutexdestroy mutexlock mutexunlock name next not oct on once open option or out \
output overload paint palette pascal pcopy peek peeki peeks pipe pmap point \
pointer poke pokei pokes pos preserve preset print private procptr pset ptr \
public put random randomize read reallocate redim rem reset restore resume \
resume next return rgb rgba right rmdir rnd rset rtrim run sadd screen \
screencopy screeninfo screenlock screenptr screenres screenset screensync \
screenunlock seek statement seek function selectcase setdate setenviron \
setmouse settime sgn shared shell shl short shr sin single sizeof sleep space \
spc sqr static stdcall step stop str string string strptr sub swap system tab \
tan then threadcreate threadwait time time timer to trans trim type ubound \
ubyte ucase uinteger ulongint union unlock unsigned until ushort using va_arg \
va_first va_next val val64 valint varptr view viewprint wait wend while width \
window windowtitle with write xor zstring

keywordclass.preprocessor=\
#define #dynamic #else #endif #error #if #ifdef #ifndef #inclib #include \
#print #static #undef

keywords.$(file.patterns.freebasic)=$(keywordclass.freebasic)
keywords2.$(file.patterns.freebasic)=$(keywordclass.preprocessor)

# FB styles
# Default
style.freebasic.0=fore:#000000
# Comment
style.freebasic.1=$(colour.code.comment.line),$(font.code.comment.line)
# Number
style.freebasic.2=$(colour.number)
# Keyword1
style.freebasic.3=$(colour.keyword),bold
# String
style.freebasic.4=$(colour.string)
# Preprocessor
style.freebasic.5=$(colour.preproc)
# Operator
style.freebasic.6=$(colour.operator)
# Identifier
style.freebasic.7=$(style.freebasic.0)
# Date
# style.freebasic.8=$(colour.error)
# StringEOL
# style.freebasic.9=$(colour.error)
# Keyword2
style.freebasic.10=$(colour.keyword)
# Keyword3
style.freebasic.11=$(colour.keyword)
# Keyword4
style.freebasic.12=$(colour.keyword)
# Constant
# style.freebasic.13=$(colour.error)
# Asm
# style.freebasic.14=$(colour.error)
# Label
style.freebasic.15=$(colour.preproc)
# Error
style.freebasic.16=$(colour.error)
# HexNumber
style.freebasic.17=$(colour.number)
# BinNumber
style.freebasic.18=$(colour.number)

