xref: /vim-8.2.3635/runtime/syntax/aspvbs.vim (revision 6c391a74)
1071d4279SBram Moolenaar" Vim syntax file
2071d4279SBram Moolenaar" Language:	Microsoft VBScript Web Content (ASP)
3d4755bb0SBram Moolenaar" Maintainer:	Devin Weaver <[email protected]> (non-functional)
4d4755bb0SBram Moolenaar" URL:		http://tritarget.com/pub/vim/syntax/aspvbs.vim (broken)
59964e468SBram Moolenaar" Last Change:	2006 Jun 19
69964e468SBram Moolenaar" 		by Dan Casey
75c73622aSBram Moolenaar" Version:	$Revision: 1.3 $
8071d4279SBram Moolenaar" Thanks to Jay-Jay <[email protected]> for a syntax sync hack, hungarian
9071d4279SBram Moolenaar" notation, and extra highlighting.
10071d4279SBram Moolenaar" Thanks to patrick dehne <[email protected]> for the folding code.
11071d4279SBram Moolenaar" Thanks to Dean Hall <[email protected]> for testing the use of classes in
12071d4279SBram Moolenaar" VBScripts which I've been too scared to do.
13071d4279SBram Moolenaar
1489bcfda6SBram Moolenaar" quit when a syntax file was already loaded
1589bcfda6SBram Moolenaarif exists("b:current_syntax")
16071d4279SBram Moolenaar  finish
17071d4279SBram Moolenaarendif
18071d4279SBram Moolenaar
19071d4279SBram Moolenaarif !exists("main_syntax")
20071d4279SBram Moolenaar  let main_syntax = 'aspvbs'
21071d4279SBram Moolenaarendif
22071d4279SBram Moolenaar
23071d4279SBram Moolenaarruntime! syntax/html.vim
24071d4279SBram Moolenaarunlet b:current_syntax
25071d4279SBram Moolenaar
26071d4279SBram Moolenaarsyn cluster htmlPreProc add=AspVBScriptInsideHtmlTags
27071d4279SBram Moolenaar
28071d4279SBram Moolenaar
29071d4279SBram Moolenaar" Colored variable names, if written in hungarian notation
30071d4279SBram Moolenaarhi def AspVBSVariableSimple   term=standout  ctermfg=3  guifg=#99ee99
31071d4279SBram Moolenaarhi def AspVBSVariableComplex  term=standout  ctermfg=3  guifg=#ee9900
32071d4279SBram Moolenaarsyn match AspVBSVariableSimple  contained "\<\(bln\|byt\|dtm\=\|dbl\|int\|str\)\u\w*"
339964e468SBram Moolenaarsyn match AspVBSVariableComplex contained "\<\(arr\|ary\|obj\)\u\w*"
34071d4279SBram Moolenaar
35071d4279SBram Moolenaar
36071d4279SBram Moolenaar" Functions and methods that are in VB but will cause errors in an ASP page
37*6c391a74SBram Moolenaar" This is helpful if your porting VB code to ASP
38071d4279SBram Moolenaar" I removed (Count, Item) because these are common variable names in AspVBScript
39071d4279SBram Moolenaarsyn keyword AspVBSError contained Val Str CVar CVDate DoEvents GoSub Return GoTo
40071d4279SBram Moolenaarsyn keyword AspVBSError contained Stop LinkExecute Add Type LinkPoke
41071d4279SBram Moolenaarsyn keyword AspVBSError contained LinkRequest LinkSend Declare Optional Sleep
42071d4279SBram Moolenaarsyn keyword AspVBSError contained ParamArray Static Erl TypeOf Like LSet RSet Mid StrConv
43071d4279SBram Moolenaar" It may seem that most of these can fit into a keyword clause but keyword takes
44071d4279SBram Moolenaar" priority over all so I can't get the multi-word matches
45071d4279SBram Moolenaarsyn match AspVBSError contained "\<Def[a-zA-Z0-9_]\+\>"
46071d4279SBram Moolenaarsyn match AspVBSError contained "^\s*Open\s\+"
47071d4279SBram Moolenaarsyn match AspVBSError contained "Debug\.[a-zA-Z0-9_]*"
48071d4279SBram Moolenaarsyn match AspVBSError contained "^\s*[a-zA-Z0-9_]\+:"
49071d4279SBram Moolenaarsyn match AspVBSError contained "[a-zA-Z0-9_]\+![a-zA-Z0-9_]\+"
50071d4279SBram Moolenaarsyn match AspVBSError contained "^\s*#.*$"
51071d4279SBram Moolenaarsyn match AspVBSError contained "\<As\s\+[a-zA-Z0-9_]*"
52071d4279SBram Moolenaarsyn match AspVBSError contained "\<End\>\|\<Exit\>"
53071d4279SBram Moolenaarsyn match AspVBSError contained "\<On\s\+Error\>\|\<On\>\|\<Error\>\|\<Resume\s\+Next\>\|\<Resume\>"
54071d4279SBram Moolenaarsyn match AspVBSError contained "\<Option\s\+\(Base\|Compare\|Private\s\+Module\)\>"
55071d4279SBram Moolenaar" This one I want 'cause I always seem to mis-spell it.
56071d4279SBram Moolenaarsyn match AspVBSError contained "Respon\?ce\.\S*"
57071d4279SBram Moolenaarsyn match AspVBSError contained "Respose\.\S*"
58071d4279SBram Moolenaar" When I looked up the VBScript syntax it mentioned that Property Get/Set/Let
59*6c391a74SBram Moolenaar" statements are illegal, however, I have received reports that they do work.
60071d4279SBram Moolenaar" So I commented it out for now.
61071d4279SBram Moolenaar" syn match AspVBSError contained "\<Property\s\+\(Get\|Let\|Set\)\>"
62071d4279SBram Moolenaar
63071d4279SBram Moolenaar" AspVBScript Reserved Words.
64071d4279SBram Moolenaarsyn match AspVBSStatement contained "\<On\s\+Error\s\+\(Resume\s\+Next\|goto\s\+0\)\>\|\<Next\>"
659964e468SBram Moolenaarsyn match AspVBSStatement contained "\<End\s\+\(If\|For\|Select\|Class\|Function\|Sub\|With\|Property\)\>"
66071d4279SBram Moolenaarsyn match AspVBSStatement contained "\<Exit\s\+\(Do\|For\|Sub\|Function\)\>"
679964e468SBram Moolenaarsyn match AspVBSStatement contained "\<Exit\s\+\(Do\|For\|Sub\|Function\|Property\)\>"
68071d4279SBram Moolenaarsyn match AspVBSStatement contained "\<Option\s\+Explicit\>"
69071d4279SBram Moolenaarsyn match AspVBSStatement contained "\<For\s\+Each\>\|\<For\>"
70071d4279SBram Moolenaarsyn match AspVBSStatement contained "\<Set\>"
71071d4279SBram Moolenaarsyn keyword AspVBSStatement contained Call Class Const Default Dim Do Loop Erase And
72071d4279SBram Moolenaarsyn keyword AspVBSStatement contained Function If Then Else ElseIf Or
73071d4279SBram Moolenaarsyn keyword AspVBSStatement contained Private Public Randomize ReDim
74071d4279SBram Moolenaarsyn keyword AspVBSStatement contained Select Case Sub While With Wend Not
75071d4279SBram Moolenaar
76071d4279SBram Moolenaar" AspVBScript Functions
77071d4279SBram Moolenaarsyn keyword AspVBSFunction contained Abs Array Asc Atn CBool CByte CCur CDate CDbl
78071d4279SBram Moolenaarsyn keyword AspVBSFunction contained Chr CInt CLng Cos CreateObject CSng CStr Date
79071d4279SBram Moolenaarsyn keyword AspVBSFunction contained DateAdd DateDiff DatePart DateSerial DateValue
80071d4279SBram Moolenaarsyn keyword AspVBSFunction contained Date Day Exp Filter Fix FormatCurrency
81071d4279SBram Moolenaarsyn keyword AspVBSFunction contained FormatDateTime FormatNumber FormatPercent
82071d4279SBram Moolenaarsyn keyword AspVBSFunction contained GetObject Hex Hour InputBox InStr InStrRev Int
83071d4279SBram Moolenaarsyn keyword AspVBSFunction contained IsArray IsDate IsEmpty IsNull IsNumeric
84071d4279SBram Moolenaarsyn keyword AspVBSFunction contained IsObject Join LBound LCase Left Len LoadPicture
85071d4279SBram Moolenaarsyn keyword AspVBSFunction contained Log LTrim Mid Minute Month MonthName MsgBox Now
86071d4279SBram Moolenaarsyn keyword AspVBSFunction contained Oct Replace RGB Right Rnd Round RTrim
87071d4279SBram Moolenaarsyn keyword AspVBSFunction contained ScriptEngine ScriptEngineBuildVersion
88071d4279SBram Moolenaarsyn keyword AspVBSFunction contained ScriptEngineMajorVersion
89071d4279SBram Moolenaarsyn keyword AspVBSFunction contained ScriptEngineMinorVersion Second Sgn Sin Space
90071d4279SBram Moolenaarsyn keyword AspVBSFunction contained Split Sqr StrComp StrReverse String Tan Time Timer
91071d4279SBram Moolenaarsyn keyword AspVBSFunction contained TimeSerial TimeValue Trim TypeName UBound UCase
92071d4279SBram Moolenaarsyn keyword AspVBSFunction contained VarType Weekday WeekdayName Year
93071d4279SBram Moolenaar
94071d4279SBram Moolenaar" AspVBScript Methods
95071d4279SBram Moolenaarsyn keyword AspVBSMethods contained Add AddFolders BuildPath Clear Close Copy
96071d4279SBram Moolenaarsyn keyword AspVBSMethods contained CopyFile CopyFolder CreateFolder CreateTextFile
97071d4279SBram Moolenaarsyn keyword AspVBSMethods contained Delete DeleteFile DeleteFolder DriveExists
98071d4279SBram Moolenaarsyn keyword AspVBSMethods contained Exists FileExists FolderExists
99071d4279SBram Moolenaarsyn keyword AspVBSMethods contained GetAbsolutePathName GetBaseName GetDrive
100071d4279SBram Moolenaarsyn keyword AspVBSMethods contained GetDriveName GetExtensionName GetFile
101071d4279SBram Moolenaarsyn keyword AspVBSMethods contained GetFileName GetFolder GetParentFolderName
102071d4279SBram Moolenaarsyn keyword AspVBSMethods contained GetSpecialFolder GetTempName Items Keys Move
103071d4279SBram Moolenaarsyn keyword AspVBSMethods contained MoveFile MoveFolder OpenAsTextStream
104071d4279SBram Moolenaarsyn keyword AspVBSMethods contained OpenTextFile Raise Read ReadAll ReadLine Remove
105071d4279SBram Moolenaarsyn keyword AspVBSMethods contained RemoveAll Skip SkipLine Write WriteBlankLines
106071d4279SBram Moolenaarsyn keyword AspVBSMethods contained WriteLine
107d4755bb0SBram Moolenaarsyn match AspVBSMethods contained "Response\.\w*"
108071d4279SBram Moolenaar" Colorize boolean constants:
109071d4279SBram Moolenaarsyn keyword AspVBSMethods contained true false
110071d4279SBram Moolenaar
111*6c391a74SBram Moolenaar" AspVBScript Number Constants
112071d4279SBram Moolenaar" Integer number, or floating point number without a dot.
113071d4279SBram Moolenaarsyn match  AspVBSNumber	contained	"\<\d\+\>"
114071d4279SBram Moolenaar" Floating point number, with dot
115071d4279SBram Moolenaarsyn match  AspVBSNumber	contained	"\<\d\+\.\d*\>"
116071d4279SBram Moolenaar" Floating point number, starting with a dot
117071d4279SBram Moolenaarsyn match  AspVBSNumber	contained	"\.\d\+\>"
118071d4279SBram Moolenaar
119*6c391a74SBram Moolenaar" String and Character Constants
120071d4279SBram Moolenaar" removed (skip=+\\\\\|\\"+) because VB doesn't have backslash escaping in
121071d4279SBram Moolenaar" strings (or does it?)
122071d4279SBram Moolenaarsyn region  AspVBSString	contained	  start=+"+  end=+"+ keepend
123071d4279SBram Moolenaar
124071d4279SBram Moolenaar" AspVBScript Comments
125071d4279SBram Moolenaarsyn region  AspVBSComment	contained start="^REM\s\|\sREM\s" end="$" contains=AspVBSTodo keepend
126071d4279SBram Moolenaarsyn region  AspVBSComment   contained start="^'\|\s'"   end="$" contains=AspVBSTodo keepend
127071d4279SBram Moolenaar" misc. Commenting Stuff
128071d4279SBram Moolenaarsyn keyword AspVBSTodo contained	TODO FIXME
129071d4279SBram Moolenaar
130071d4279SBram Moolenaar" Cosmetic syntax errors commanly found in VB but not in AspVBScript
131071d4279SBram Moolenaar" AspVBScript doesn't use line numbers
132071d4279SBram Moolenaarsyn region  AspVBSError	contained start="^\d" end="\s" keepend
133071d4279SBram Moolenaar" AspVBScript also doesn't have type defining variables
134071d4279SBram Moolenaarsyn match   AspVBSError  contained "[a-zA-Z0-9_][\$&!#]"ms=s+1
135071d4279SBram Moolenaar" Since 'a%' is a VB variable with a type and in AspVBScript you can have 'a%>'
136071d4279SBram Moolenaar" I have to make a special case so 'a%>' won't show as an error.
137071d4279SBram Moolenaarsyn match   AspVBSError  contained "[a-zA-Z0-9_]%\($\|[^>]\)"ms=s+1
138071d4279SBram Moolenaar
139071d4279SBram Moolenaar" Top Cluster
140071d4279SBram Moolenaarsyn cluster AspVBScriptTop contains=AspVBSStatement,AspVBSFunction,AspVBSMethods,AspVBSNumber,AspVBSString,AspVBSComment,AspVBSError,AspVBSVariableSimple,AspVBSVariableComplex
141071d4279SBram Moolenaar
142071d4279SBram Moolenaar" Folding
143071d4279SBram Moolenaarsyn region AspVBSFold start="^\s*\(class\)\s\+.*$" end="^\s*end\s\+\(class\)\>.*$" fold contained transparent keepend
144071d4279SBram Moolenaarsyn region AspVBSFold start="^\s*\(private\|public\)\=\(\s\+default\)\=\s\+\(sub\|function\)\s\+.*$" end="^\s*end\s\+\(function\|sub\)\>.*$" fold contained transparent keepend
145071d4279SBram Moolenaar
146*6c391a74SBram Moolenaar" Define AspVBScript delimiters
147071d4279SBram Moolenaar" <%= func("string_with_%>_in_it") %> This is illegal in ASP syntax.
148071d4279SBram Moolenaarsyn region  AspVBScriptInsideHtmlTags keepend matchgroup=Delimiter start=+<%=\=+ end=+%>+ contains=@AspVBScriptTop, AspVBSFold
149071d4279SBram Moolenaarsyn region  AspVBScriptInsideHtmlTags keepend matchgroup=Delimiter start=+<script\s\+language="\=vbscript"\=[^>]*\s\+runatserver[^>]*>+ end=+</script>+ contains=@AspVBScriptTop
150071d4279SBram Moolenaar
151071d4279SBram Moolenaar
152071d4279SBram Moolenaar" Synchronization
153071d4279SBram Moolenaar" syn sync match AspVBSSyncGroup grouphere AspVBScriptInsideHtmlTags "<%"
154071d4279SBram Moolenaar" This is a kludge so the HTML will sync properly
155071d4279SBram Moolenaarsyn sync match htmlHighlight grouphere htmlTag "%>"
156071d4279SBram Moolenaar
157071d4279SBram Moolenaar
158071d4279SBram Moolenaar
159071d4279SBram Moolenaar" Define the default highlighting.
16089bcfda6SBram Moolenaar" Only when an item doesn't have highlighting yet
161071d4279SBram Moolenaar
162f37506f6SBram Moolenaar"hi def link AspVBScript		Special
163f37506f6SBram Moolenaarhi def link AspVBSLineNumber	Comment
164f37506f6SBram Moolenaarhi def link AspVBSNumber		Number
165f37506f6SBram Moolenaarhi def link AspVBSError		Error
166f37506f6SBram Moolenaarhi def link AspVBSStatement	Statement
167f37506f6SBram Moolenaarhi def link AspVBSString		String
168f37506f6SBram Moolenaarhi def link AspVBSComment		Comment
169f37506f6SBram Moolenaarhi def link AspVBSTodo		Todo
170f37506f6SBram Moolenaarhi def link AspVBSFunction		Identifier
171f37506f6SBram Moolenaarhi def link AspVBSMethods		PreProc
172f37506f6SBram Moolenaarhi def link AspVBSEvents		Special
173f37506f6SBram Moolenaarhi def link AspVBSTypeSpecifier	Type
174071d4279SBram Moolenaar
175071d4279SBram Moolenaar
176071d4279SBram Moolenaarlet b:current_syntax = "aspvbs"
177071d4279SBram Moolenaar
178071d4279SBram Moolenaarif main_syntax == 'aspvbs'
179071d4279SBram Moolenaar  unlet main_syntax
180071d4279SBram Moolenaarendif
181071d4279SBram Moolenaar
182071d4279SBram Moolenaar" vim: ts=8:sw=2:sts=0:noet
183