# SciTE settings for ML (derived from Objective Caml)

# ML implementation and interface files
file.patterns.ml=*.ml;*.mli;*.ML;*.sml;*.thy

filter.ml=ML (ml mli ML sml)|$(file.patterns.ml)|

# file.patterns.braces=$(file.patterns.ml);$(file.patterns.haskell)
# file.patterns.braces=$(file.patterns.ml)

lexer.$(file.patterns.ml)=caml

# the line below is ONLY used as part of "external" lexer support
#lexerpath.$(file.patterns.caml)=LexCaml.dll

# the standard ml language "textual" keywords
keywords.$(file.patterns.ml)= \
abstype and andalso as case datatype \
do else end eqtype exception fn fun \
functor handle if in include infix \
infixr installpp let local nonfix of op open \
orelse raise rec sharing sig signature \
struct structure then type use val where \
while with withtype


# "optional" ml / library keywords; some suggested entries are here,
# more could come from, say, Pervasives
#~ keywordoptional.ml=
keywords2.$(file.patterns.ml)= \
option SOME NONE ignore ref the \
not o oo ooo oooo ` |> |-> ||> ||>> |>> #> #-> ##> ##>> #>>

word.characters.$(file.patterns.ml)=$(chars.alpha)$(chars.numeric)_'

comment.stream.start.caml=(*
comment.stream.end.caml=*)
comment.block.caml=
comment.block.at.line.start.caml=1
comment.box.start.caml=(*
comment.box.middle.caml= *
comment.box.end.caml= *)

# "folding" support not currently implemented
#fold.comment=1
#fold.at.else=1

# Braces are only matched in operator style
braces.caml.style=7

# Default
style.caml.32=$(font.base)
# White space
style.caml.0=fore:#808080
# Identifiers
style.caml.1=
# Tag-names
style.caml.2=$(colour.keyword),bold
# Keywords (builtin language-defined keywords)
style.caml.3=$(colour.keyword),bold
# Keywords2 (season to taste - use for option, SOME, NONE, etc)
style.caml.4=$(colour.keyword),bold
# Keywords3 (season to taste - use for bool, char, float, etc)
style.caml.5=$(colour.keyword),bold
# Linenum directive
style.caml.6=back:#C0C0C0,$(font.base)
# Operators
style.caml.7=$(colour.operator),bold
# Number
style.caml.8=$(colour.number)
# Single quoted string (character constant)
style.caml.9=$(colour.char)
# Double quoted string (string constant)
style.caml.11=$(colour.string)
# Comment (NOT nested)
style.caml.12=$(colour.code.comment.line),$(font.code.comment.line)
# Comment (SINGLY nested)
style.caml.13=$(colour.code.comment.line),$(font.code.comment.line)
# Comment (DOUBLY nested)
style.caml.14=$(colour.code.comment.line),$(font.code.comment.line)
# Comment (TRIPLY nested)
style.caml.15=$(colour.code.comment.line),$(font.code.comment.line)

# Braces are only matched in operator style
braces.caml.style=7

# The below command(s) can and should be adjusted to reflect your environment;
# in addition, per-directory overrides are possible, so that project-specific "build"
# commands may be used for more complex cases - see the SciTE documentation.
#~ command.compile.$(file.patterns.ml)=ocamlc -c $(FileNameExt)
