# Define SciTE settings for VB files.

# BAS: Module, FRM: Form, CLS: Class Module, CTL: User Control
# PAG: Property Page, DSR: Data Report, DOB: User Document
file.patterns.vb=*.vb;*.bas;*.frm;*.cls;*.ctl;*.pag;*.dsr;*.dob
# VBS: VBScript, DSM: Visual[ex. Dev] Studio macro
file.patterns.wscript=*.vbs;*.dsm

*source.patterns.vb=$(file.patterns.vb);$(file.patterns.wscript);

# VBP: VB Project, VBG: VB Project Group (ActiveX), MAK: old (VB3) project file, VBW: VB Workspace
filter.vb=VB (vb vbp vbs bas frm cls ctl pag dsr dob)|$(file.patterns.vb);$(file.patterns.wscript);*.vbp;*.vbg;*.mak;*.vbw|

*filter.vb=$(filter.vb)

lexer.$(file.patterns.vb)=vb
lexer.$(file.patterns.wscript)=vbscript

*language.vb=&VB|vb||
#*language.vbscript=VBScr&ipt|vbs||

# Keywords, operators, statements, data types and some words in .frm files
keywordclass.vb6=\
addressof alias and as attribute base begin binary boolean byref byte byval call case cdbl \
cint clng compare const csng cstr currency date decimal declare defbool defbyte defcur \
defdate defdbl defdec defint deflng defobj defsng defstr defvar dim do double each else \
elseif empty end enum eqv erase error event exit explicit false for friend function get \
global gosub goto if imp implements in input integer is len let lib like load lock long \
loop lset me mid midb mod new next not nothing null object on option optional or paramarray \
preserve print private property public raiseevent randomize redim rem resume return rset \
seek select set single static step stop string sub text then time to true type typeof \
unload until variant wend while with withevents xor

# html.properties picks up VB keywords from keywordclass.vb
keywordclass.vb=$(keywordclass.vb6)

# Mostly system statements (files, registry, I/O...) that
# I am not sure to include with the regular statements.
keywordclass.vbotherstatements=\
appactivate beep chdir chdrive close filecopy get input kill line unlock mkdir name \
open print put reset rmdir savepicture savesetting seek sendkeys setattr width write

# VBNet specific keywords
keywordclass.vbnet=\
addhandler andalso ansi assembly auto catch cbool cbyte cchar cdate cdec char class \
cobj continue csbyte cshort ctype cuint culng cushort custom default delegate directcast \
endif externalsource finally gettype handles imports inherits interface isfalse isnot \
istrue module mustinherit mustoverride my mybase myclass namespace narrowing notinheritable \
notoverridable of off operator orelse overloads overridable overrides partial protected \
readonly region removehandler sbyte shadows shared short strict structure synclock \
throw try trycast uinteger ulong unicode ushort using when widening writeonly

keywords.$(file.patterns.vb)=$(keywordclass.vb6) $(keywordclass.vbnet)
keywords.$(file.patterns.wscript)=$(keywordclass.vb6)

keywords2.$(file.patterns.vb)=$(keywordclass.vbotherstatements)

comment.block.vb='~
comment.block.vbscript='~

#lexer.vb.strings.multiline=1

# VB styles

# Default
style.vb.32=$(font.base)
# White space
style.vb.0=
# Comment
style.vb.1=$(colour.code.comment.line),$(font.code.comment.line)
# Number
style.vb.2=$(colour.number)
# Keyword
style.vb.3=$(colour.keyword)
# String
style.vb.4=$(colour.string)
# Preprocessor (directives)
style.vb.5=$(colour.preproc)
# Operator
style.vb.6=$(colour.operator)
# Identifier
style.vb.7=
# Date
style.vb.8=$(colour.number)
# End of line where string is not closed
style.vb.9=$(style.stringeol)
# Other keywords (bozo test colors :-)
style.vb.10=$(style.vb.5),back:#D0FFD0
style.vb.11=$(style.vb.5),back:#D0D0FF
style.vb.12=$(style.vb.5),back:#FFD0D0

# VBScript styles same as VB styles
style.vbscript.0=$(style.vb.0)
style.vbscript.1=$(style.vb.1)
style.vbscript.2=$(style.vb.2)
style.vbscript.3=$(style.vb.3)
style.vbscript.4=$(style.vb.4)
style.vbscript.5=$(style.vb.5)
style.vbscript.6=$(style.vb.6)
style.vbscript.7=$(style.vb.7)
style.vbscript.8=$(style.vb.8)
style.vbscript.9=$(style.vb.9)
style.vbscript.10=$(style.vb.10)
style.vbscript.11=$(style.vb.11)
style.vbscript.12=$(style.vb.12)

# wscript
# normal execute
command.go.$(file.patterns.wscript)="$(FilePath)"
command.go.subsystem.$(file.patterns.wscript)=2

# note we have no real "build"; rather "execute and capture
# compiletime and runtime errors"
command.build.$(file.patterns.wscript)=cscript "$(FilePath)"
command.build.subsystem.$(file.patterns.wscript)=1

command.help.$(file.patterns.wscript)=$(CurrentWord)!C:\Program Files\Microsoft Visual Studio\MSDN\2001OCT\1033\MSDN130.COL
command.help.subsystem.$(file.patterns.wscript)=4
command.help.$(file.patterns.vb)=$(CurrentWord)!C:\Program Files\Microsoft Visual Studio\MSDN\2001OCT\1033\MSDN130.COL
command.help.subsystem.$(file.patterns.vb)=4
