# Define SciTE settings for Visual Prolog source

file.patterns.visualprolog=*.pro;*.cl;*.i;*.ph;*.pack
file.patterns.visualprologgrammar=*.vipgrm
file.patterns.visualprolog.like=$(file.patterns.visualprolog);$(file.patterns.visualprologgrammar)

filter.visualprolog=Visual Prolog source|$(file.patterns.visualprolog.like)|

*filter.visualprolog=$(filter.visualprolog)

lexer.$(file.patterns.visualprolog.like)=visualprolog

*language.visualprolog=Visual Prolog|visualprolog||

# Visual Prolog
# Major keywords
keywords.$(file.patterns.visualprolog)=goal namespace interface \
class implement open inherits supports resolve delegate monitor constants \
domains predicates constructors properties clauses facts
# Minor keywords
keywords2.$(file.patterns.visualprolog)=guard language stdcall apicall c thiscall prolog \
digits if then elseif else foreach do try catch finally erroneous failure procedure determ \
multi nondeterm anyflow and or externally from div mod rem quot in orelse otherwise
# Directive keywords
keywords3.$(file.patterns.visualprolog)=include bininclude requires orrequires if then \
else elseif endif error message export externally options

# Visual Prolog Grammar files
# Major keywords
keywords.$(file.patterns.visualprologgrammar)=namespace open grammar terminals nonterminals startsymbols precedence rules
# Minor keywords
keywords2.$(file.patterns.visualprologgrammar)=left right nonassoc
# Directive keywords
keywords3.$(file.patterns.visualprologgrammar)=

# Shared
# Doc keywords
keywords4.$(file.patterns.visualprolog.like)=short detail end exception withdomain

word.chars.visualprolog=$(chars.alpha)$(chars.numeric)_
word.characters.$(file.patterns.visualprolog.like)=$(word.chars.visualprolog)
comment.block.visualprolog=%
comment.stream.start.visualprolog=/*
comment.stream.end.visualprolog=*/

statement.indent.$(file.patterns.visualprolog)=2 do then :-
statement.$(file.patterns.visualprolog)=1 . end
statement.lookback.$(file.visualprolog)=20

# Visual Prolog styles
# Default
style.visualprolog.32=$(font.base)
# White space
style.visualprolog.0=fore:#808080
# Keyword major
style.visualprolog.1=fore:#808000,$(font.keyword)
# Keyword minor
style.visualprolog.2=fore:#333399,$(font.keyword)
# Keyword directive
style.visualprolog.3=fore:#800080,$(font.keyword)
# Comment block
style.visualprolog.4=fore:#808080,$(font.code.comment.box)
# Comment line
style.visualprolog.5=$(style.visualprolog.4)
# Comment key
style.visualprolog.6=fore:#8050A0,$(font.code.comment.doc)
# Comment key error
style.visualprolog.7=$(style.visualprolog.4),$(font.code.comment.box)
# Identifier
style.visualprolog.8=fore:#000000,$(font.identifier)
# Variable
style.visualprolog.9=fore:#008000,$(font.identifier)
# Anonymous
style.visualprolog.10=fore:#A0C0A0,$(font.identifier)
# Number
style.visualprolog.11=fore:#0000C0,$(font.number)
# Operator
style.visualprolog.12=fore:#A00000,$(font.operator)
# Character styles are not used any more
# style.visualprolog.13=<<unused>>
# style.visualprolog.14=<<unused>>
# style.visualprolog.15=<<unused>>
# String
style.visualprolog.16=fore:#3898B2,$(font.string.literal)
# String escape
style.visualprolog.17=fore:#F07000,$(font.string.literal)
# String escape error
style.visualprolog.18=fore:#FFFFFF,back:#FF4040,$(font.error)
# String EOL open
style.visualprolog.19=$(style.visualprolog.18)
# String verbatim
style.visualprolog.20=fore:#8064A2,$(font.string.literal)
# String verbatim special
style.visualprolog.21=$(style.visualprolog.14)
# String verbatim EOL
style.visualprolog.22=back:#FFB060,$(font.string.literal)

# Braces are only matched in operator style
braces.visualprolog.style=12

