# Define SciTE settings for MSIL files.
# Evain Jb <jb at evain dot net>

filter.il=IL (il)|*.msil|*.il|

lexer.*.il=cpp

file.patterns.il=*.msil;*.il

keywordclass.il= assembly extern module \
namespace class public \
auto ansi extends field static int32 \
void cil managed entrypoint locals \
init ldstr call string ldsflda valuetype varargstloc int8 ldloc \
brfalse ldsfld and br brtrue ret \
data bytearray explicit method pinvokeimpl size cdecl at \
stloc ldloc brfalse try pop ldnull \
leave.s catch ver file hash mresource private nested \
family famandassem sequential interface abstract \
sealed specialname import serializable beforefieldinit \
unicode autochar rtspecialname value enum implements \
.pack ldloca instance runtime ctor object hidebysig \
unsigned int native virtual stind.i ldfntcalli newobj \
privatescope famorasssem initonly literal notserialized \
marshal ldtoken bool nullref float32 int16 tls stsfld \
unmanagedexp newslot reqsecobj optil forwardref \
preservesig internalcall synchronized noinlining param \
ldarg. castclass dup callvirt override ldind \
arglist typedref refanyval brtrue beq bne il \
bge bgt \
ble blt property \
switch break leave endfilter endfinally \
endfault nop ldc \
ldind stind \
add sub mul div rem \
neg add ovf \
or xor not shl shr sbr conv \
ceq cgt clt \
ckfinite cpblk initblk ldarg ldarga \
starg sldloc ldloc ldloca stloc \
unaligned volatile localloc ldfld ldsfld ldsflda stfld \
stsfld jmp call callvirt ldftn ldvirtftn calli tail ldnull ldobj \
stobj ldstr cpobj newobj initobj isinst box unbox \
mkrefany refanytype refanyval ldtoken sizeof throw \
rethrow newarr ldlen ldelema ldelem \
stelem subsystem \
corflags alignement imagebase vtfixup callmostderived \
fromunmanaged sequential import with char float32 \
float64 unsigned native cdecl stdcall thiscall fastcall custom \
fixed sysstring array currency variantsyschar error \
decimal date bstr lpstr lpwstr lptstr objectref iunknown \
idispatch struct safearray byvalstr tbstr lpstruct null \
date decimal hresult carray userdefined record filetime \
blob streamstorage streamed_object stored_object cf \
clsid vector nomangle unmanagedexp lasterr winapi cdecl \
stdcall cctor emitbyte maxstack zeroinit export vtentry \
fault finally filter handler to set get addon removeon fire \
other event custom request demand assert deny \
permitonly linkcheck inheritcheck reqmin reqopt reqrefuse \
prejitgrant prejitdeny noncasdemand noncaslinkdemand \
noncasinheritance nometadata noappdomain noprocess \
nomachine algorithm ver locale publickey publickeytoken

keywords.$(file.patterns.il)=$(keywordclass.il)

statement.indent.*.il=
statement.end*.il=
statement.lookback.*.il=1
block.start.*.il=10

comment.block.il=//~
#comment.block.at.line.start.cpp=1
comment.stream.start.il=/*
comment.stream.end.il=*/
comment.box.start.il=/*
comment.box.middle.il= *
comment.box.end.il= */

# msil styles
# White space
style.il.0=fore:#808080
# Comment
style.il.1=fore:#007F00,$(font.comment)
# Number
style.il.2=fore:#007F7F
# String
style.il.3=fore:#7F007F,$(font.monospace)
# Single quoted string
style.il.4=fore:#7F007F,$(font.monospace)
# Keyword
style.il.5=fore:#00007F,bold
# Triple quotes
# style.msil.6=fore:#7F0000
# Triple double quotes
style.il.7=fore:#7F0000
# Class name definition
style.il.8=fore:#0000FF,bold
# Function or method name definition
style.il.9=fore:#007F7F,bold
# Operators
style.il.10=bold
# Identifiers
style.il.11=fore:#7F7F7F
# Comment-blocks
style.il.12=fore:#7F7F7F
# End of line where string is not closed
style.il.13=fore:#000000,$(font.monospace),back:#E0C0E0,eolfilled
# Matched Operators
style.il.34=fore:#0000FF,bold
style.il.35=fore:#FF0000,bold
# Braces are only matched in operator style
braces.il.style=10

if PLAT_WIN
	command.compile.*.il=ilasm /nologo $(FileNameExt)
	command.compile.subsystem.*.il=1
	command.go.*.il=$(FileName).exe
	command.go.subsystem.*.il=1

if PLAT_GTK
	command.go.*.msil=il $(FileNameExt)
	command.go.*.il=./$(FileName).exe