# Define SciTE settings for D

file.patterns.d=*.d
filter.d=D (d)|$(file.patterns.d)|
*filter.d=$(filter.d)
lexer.$(file.patterns.d)=d
*language.d=D|d||

word.chars.d=$(chars.alpha)$(chars.numeric)_#
word.characters.$(file.patterns.d)=$(word.chars.d)
#~ word.characters.$(file.patterns.cs)=$(word.chars.d)
calltip.d.word.characters=$(chars.alpha)$(chars.numeric)_


#comment.block.at.line.start.d=1
comment.block.d=//~
comment.stream.start.d=/+
comment.stream.end.d=+/
comment.box.start.d=/*
comment.box.middle.d= *
comment.box.end.d= */
#lexer.d.fold.at.else=1

statement.indent.$(file.patterns.d)=6 case catch class debug default do else \
finally for foreach foreach_reverse if private protected public scope struct \
try union while with
statement.end.$(file.patterns.d)=13 ;
statement.lookback.$(file.patterns.d)=20
block.start.$(file.patterns.d)=13 {
block.end.$(file.patterns.d)=13 }

# D keywords
keywords.$(file.patterns.d)=abstract alias align asm assert auto \
 body bool break byte \
 case cast catch cdouble cent cfloat char class const continue creal \
 dchar debug default delegate delete deprecated do double \
 else enum export extern \
 false final finally float for foreach foreach_reverse function \
 goto \
 idouble if ifloat import in inout int interface invariant ireal is \
 lazy long \
 mixin module \
 new null \
 out override \
 package pragma private protected public \
 real return \
 scope short static struct super switch synchronized \
 template this throw true try typedef typeid typeof \
 ubyte ucent uint ulong union unittest ushort \
 version void volatile \
 wchar while with

# keywords2 are intended for embedded ASM

# keywords3 are intended for doxygen
keywords3.$(file.patterns.d)=a addindex addtogroup anchor arg attention \
author b brief bug c class code date def defgroup deprecated dontinclude \
e em endcode endhtmlonly endif endlatexonly endlink endverbatim enum example exception \
f$ f[ f] file fn hideinitializer htmlinclude htmlonly \
if image include ingroup internal invariant interface latexonly li line link \
mainpage name namespace nosubgrouping note overload \
p page par param post pre ref relates remarks return retval \
sa section see showinitializer since skip skipline struct subsection \
test throw todo typedef union until \
var verbatim verbinclude version warning weakgroup $ @ \ & < > # { }

# keywords4 are intended for syntax driven or custom highlighting

#fold.d.comment.explicit=0
#fold.d.comment.multiline=0
#fold.d.explicit.anywhere=1
#fold.d.explicit.end=//{{
#fold.d.explicit.start=//}}
#fold.d.syntax.based=0

# Styles

# 0 - whitespace
# 1, 2, 3, 4 - comments:  /* */,  //,  /** */ or /*! */,  /+ +/
# 5 - number
# 6, 7, 8, 9 - keywords: standard, secondary, doc keywords, typedefs and aliases
# 10 - string
# 11 - string not closed
# 12 - char
# 13 - operator
# 14 - identifier
# 15, 16, 17 - Doc comments: line doc /// or //!, doc keyword, doc keyword err
# 18, 19 stringb, stringr
# 20, 21, 22 keywords 5, 6, and 7

style.d.32=$(font.base)
style.d.0=fore:#808080
style.d.1=$(colour.code.comment.box),$(font.code.comment.box)
style.d.2=$(colour.code.comment.line),$(font.code.comment.line)
style.d.3=$(colour.code.comment.doc),$(font.code.comment.doc)
style.d.4=$(colour.code.comment.nested),$(font.code.comment.nested)
style.d.5=$(colour.number)
style.d.6=$(colour.keyword),bold
style.d.7=$(colour.keyword),bold
style.d.8=$(colour.keyword),bold
style.d.9=$(colour.keyword),bold
style.d.10=$(colour.string)
style.d.11=fore:#000000,$(font.monospace),back:#E0C0E0,eolfilled
style.d.12=$(colour.char)
style.d.13=$(colour.operator),bold
style.d.14=
style.d.15=$(colour.code.comment.doc),$(font.code.comment.doc)
style.d.16=fore:#3060A0,$(font.code.comment.doc)
style.d.17=fore:#804020,$(font.code.comment.doc)
style.d.18=fore:#DD9900
style.d.19=fore:#DD9900
style.d.20=fore:#DD9900
style.d.21=fore:#DD9900
style.d.22=fore:#DD9900
# breaces must be operator style to allow matching
braces.d.style=13


command.compile.*.d=dmd -O "$(FileNameExt)"
command.build.*.d=$(make.command)
command.go.*.d="$(FileName)"

