# Define SciTE settings for Haskell

# files
file.patterns.haskell=*.hs

filter.haskell=Haskell (hs)|$(file.patterns.haskell)|

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

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

# the standard haskell language "textual" keywords
keywords.$(file.patterns.haskell)= \
case class data default deriving do else \
forall if import in infix infixl infixr instance \
let module newtype of return then type where _

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

comment.stream.start.haskell={-
comment.stream.end.haskell=-}
comment.block.haskell=-- ~
comment.block.at.line.start.haskell=1
comment.box.start.haskell={-
comment.box.middle.haskell= -
comment.box.end.haskell= -}

# "Out-of-the-box" syntax colors are defined here
# Default
style.haskell.32=$(font.base)
# White space
style.haskell.0=fore:#808080
# Identifiers
style.haskell.1=
# Keywords (builtin language-defined keywords)
style.haskell.2=$(colour.keyword),bold
# Number constant
style.haskell.3=$(colour.number)
# String constant
style.haskell.4=$(colour.string)
# Character constant
style.haskell.5=$(colour.char)
# ???
style.haskell.6=
# ???
style.haskell.7=
# Types
style.haskell.8=$(colour.preproc)
# Type constructors
style.haskell.9=$(colour.preproc)
# ???
style.haskell.10=
# Operators
style.haskell.11=$(colour.operator),bold
# ???
style.haskell.12=
# single comment
style.haskell.13=$(colour.code.comment.line),$(font.code.comment.line)
# block comments
style.haskell.14=$(colour.code.comment.box),$(font.code.comment.box)

# Braces are only matched in operator style
braces.haskell.style=11
