xref: /vim-8.2.3635/runtime/syntax/aspvbs.vim (revision 6c391a74)
1" Vim syntax file
2" Language:	Microsoft VBScript Web Content (ASP)
3" Maintainer:	Devin Weaver <[email protected]> (non-functional)
4" URL:		http://tritarget.com/pub/vim/syntax/aspvbs.vim (broken)
5" Last Change:	2006 Jun 19
6" 		by Dan Casey
7" Version:	$Revision: 1.3 $
8" Thanks to Jay-Jay <[email protected]> for a syntax sync hack, hungarian
9" notation, and extra highlighting.
10" Thanks to patrick dehne <[email protected]> for the folding code.
11" Thanks to Dean Hall <[email protected]> for testing the use of classes in
12" VBScripts which I've been too scared to do.
13
14" quit when a syntax file was already loaded
15if exists("b:current_syntax")
16  finish
17endif
18
19if !exists("main_syntax")
20  let main_syntax = 'aspvbs'
21endif
22
23runtime! syntax/html.vim
24unlet b:current_syntax
25
26syn cluster htmlPreProc add=AspVBScriptInsideHtmlTags
27
28
29" Colored variable names, if written in hungarian notation
30hi def AspVBSVariableSimple   term=standout  ctermfg=3  guifg=#99ee99
31hi def AspVBSVariableComplex  term=standout  ctermfg=3  guifg=#ee9900
32syn match AspVBSVariableSimple  contained "\<\(bln\|byt\|dtm\=\|dbl\|int\|str\)\u\w*"
33syn match AspVBSVariableComplex contained "\<\(arr\|ary\|obj\)\u\w*"
34
35
36" Functions and methods that are in VB but will cause errors in an ASP page
37" This is helpful if your porting VB code to ASP
38" I removed (Count, Item) because these are common variable names in AspVBScript
39syn keyword AspVBSError contained Val Str CVar CVDate DoEvents GoSub Return GoTo
40syn keyword AspVBSError contained Stop LinkExecute Add Type LinkPoke
41syn keyword AspVBSError contained LinkRequest LinkSend Declare Optional Sleep
42syn keyword AspVBSError contained ParamArray Static Erl TypeOf Like LSet RSet Mid StrConv
43" It may seem that most of these can fit into a keyword clause but keyword takes
44" priority over all so I can't get the multi-word matches
45syn match AspVBSError contained "\<Def[a-zA-Z0-9_]\+\>"
46syn match AspVBSError contained "^\s*Open\s\+"
47syn match AspVBSError contained "Debug\.[a-zA-Z0-9_]*"
48syn match AspVBSError contained "^\s*[a-zA-Z0-9_]\+:"
49syn match AspVBSError contained "[a-zA-Z0-9_]\+![a-zA-Z0-9_]\+"
50syn match AspVBSError contained "^\s*#.*$"
51syn match AspVBSError contained "\<As\s\+[a-zA-Z0-9_]*"
52syn match AspVBSError contained "\<End\>\|\<Exit\>"
53syn match AspVBSError contained "\<On\s\+Error\>\|\<On\>\|\<Error\>\|\<Resume\s\+Next\>\|\<Resume\>"
54syn match AspVBSError contained "\<Option\s\+\(Base\|Compare\|Private\s\+Module\)\>"
55" This one I want 'cause I always seem to mis-spell it.
56syn match AspVBSError contained "Respon\?ce\.\S*"
57syn match AspVBSError contained "Respose\.\S*"
58" When I looked up the VBScript syntax it mentioned that Property Get/Set/Let
59" statements are illegal, however, I have received reports that they do work.
60" So I commented it out for now.
61" syn match AspVBSError contained "\<Property\s\+\(Get\|Let\|Set\)\>"
62
63" AspVBScript Reserved Words.
64syn match AspVBSStatement contained "\<On\s\+Error\s\+\(Resume\s\+Next\|goto\s\+0\)\>\|\<Next\>"
65syn match AspVBSStatement contained "\<End\s\+\(If\|For\|Select\|Class\|Function\|Sub\|With\|Property\)\>"
66syn match AspVBSStatement contained "\<Exit\s\+\(Do\|For\|Sub\|Function\)\>"
67syn match AspVBSStatement contained "\<Exit\s\+\(Do\|For\|Sub\|Function\|Property\)\>"
68syn match AspVBSStatement contained "\<Option\s\+Explicit\>"
69syn match AspVBSStatement contained "\<For\s\+Each\>\|\<For\>"
70syn match AspVBSStatement contained "\<Set\>"
71syn keyword AspVBSStatement contained Call Class Const Default Dim Do Loop Erase And
72syn keyword AspVBSStatement contained Function If Then Else ElseIf Or
73syn keyword AspVBSStatement contained Private Public Randomize ReDim
74syn keyword AspVBSStatement contained Select Case Sub While With Wend Not
75
76" AspVBScript Functions
77syn keyword AspVBSFunction contained Abs Array Asc Atn CBool CByte CCur CDate CDbl
78syn keyword AspVBSFunction contained Chr CInt CLng Cos CreateObject CSng CStr Date
79syn keyword AspVBSFunction contained DateAdd DateDiff DatePart DateSerial DateValue
80syn keyword AspVBSFunction contained Date Day Exp Filter Fix FormatCurrency
81syn keyword AspVBSFunction contained FormatDateTime FormatNumber FormatPercent
82syn keyword AspVBSFunction contained GetObject Hex Hour InputBox InStr InStrRev Int
83syn keyword AspVBSFunction contained IsArray IsDate IsEmpty IsNull IsNumeric
84syn keyword AspVBSFunction contained IsObject Join LBound LCase Left Len LoadPicture
85syn keyword AspVBSFunction contained Log LTrim Mid Minute Month MonthName MsgBox Now
86syn keyword AspVBSFunction contained Oct Replace RGB Right Rnd Round RTrim
87syn keyword AspVBSFunction contained ScriptEngine ScriptEngineBuildVersion
88syn keyword AspVBSFunction contained ScriptEngineMajorVersion
89syn keyword AspVBSFunction contained ScriptEngineMinorVersion Second Sgn Sin Space
90syn keyword AspVBSFunction contained Split Sqr StrComp StrReverse String Tan Time Timer
91syn keyword AspVBSFunction contained TimeSerial TimeValue Trim TypeName UBound UCase
92syn keyword AspVBSFunction contained VarType Weekday WeekdayName Year
93
94" AspVBScript Methods
95syn keyword AspVBSMethods contained Add AddFolders BuildPath Clear Close Copy
96syn keyword AspVBSMethods contained CopyFile CopyFolder CreateFolder CreateTextFile
97syn keyword AspVBSMethods contained Delete DeleteFile DeleteFolder DriveExists
98syn keyword AspVBSMethods contained Exists FileExists FolderExists
99syn keyword AspVBSMethods contained GetAbsolutePathName GetBaseName GetDrive
100syn keyword AspVBSMethods contained GetDriveName GetExtensionName GetFile
101syn keyword AspVBSMethods contained GetFileName GetFolder GetParentFolderName
102syn keyword AspVBSMethods contained GetSpecialFolder GetTempName Items Keys Move
103syn keyword AspVBSMethods contained MoveFile MoveFolder OpenAsTextStream
104syn keyword AspVBSMethods contained OpenTextFile Raise Read ReadAll ReadLine Remove
105syn keyword AspVBSMethods contained RemoveAll Skip SkipLine Write WriteBlankLines
106syn keyword AspVBSMethods contained WriteLine
107syn match AspVBSMethods contained "Response\.\w*"
108" Colorize boolean constants:
109syn keyword AspVBSMethods contained true false
110
111" AspVBScript Number Constants
112" Integer number, or floating point number without a dot.
113syn match  AspVBSNumber	contained	"\<\d\+\>"
114" Floating point number, with dot
115syn match  AspVBSNumber	contained	"\<\d\+\.\d*\>"
116" Floating point number, starting with a dot
117syn match  AspVBSNumber	contained	"\.\d\+\>"
118
119" String and Character Constants
120" removed (skip=+\\\\\|\\"+) because VB doesn't have backslash escaping in
121" strings (or does it?)
122syn region  AspVBSString	contained	  start=+"+  end=+"+ keepend
123
124" AspVBScript Comments
125syn region  AspVBSComment	contained start="^REM\s\|\sREM\s" end="$" contains=AspVBSTodo keepend
126syn region  AspVBSComment   contained start="^'\|\s'"   end="$" contains=AspVBSTodo keepend
127" misc. Commenting Stuff
128syn keyword AspVBSTodo contained	TODO FIXME
129
130" Cosmetic syntax errors commanly found in VB but not in AspVBScript
131" AspVBScript doesn't use line numbers
132syn region  AspVBSError	contained start="^\d" end="\s" keepend
133" AspVBScript also doesn't have type defining variables
134syn match   AspVBSError  contained "[a-zA-Z0-9_][\$&!#]"ms=s+1
135" Since 'a%' is a VB variable with a type and in AspVBScript you can have 'a%>'
136" I have to make a special case so 'a%>' won't show as an error.
137syn match   AspVBSError  contained "[a-zA-Z0-9_]%\($\|[^>]\)"ms=s+1
138
139" Top Cluster
140syn cluster AspVBScriptTop contains=AspVBSStatement,AspVBSFunction,AspVBSMethods,AspVBSNumber,AspVBSString,AspVBSComment,AspVBSError,AspVBSVariableSimple,AspVBSVariableComplex
141
142" Folding
143syn region AspVBSFold start="^\s*\(class\)\s\+.*$" end="^\s*end\s\+\(class\)\>.*$" fold contained transparent keepend
144syn region AspVBSFold start="^\s*\(private\|public\)\=\(\s\+default\)\=\s\+\(sub\|function\)\s\+.*$" end="^\s*end\s\+\(function\|sub\)\>.*$" fold contained transparent keepend
145
146" Define AspVBScript delimiters
147" <%= func("string_with_%>_in_it") %> This is illegal in ASP syntax.
148syn region  AspVBScriptInsideHtmlTags keepend matchgroup=Delimiter start=+<%=\=+ end=+%>+ contains=@AspVBScriptTop, AspVBSFold
149syn region  AspVBScriptInsideHtmlTags keepend matchgroup=Delimiter start=+<script\s\+language="\=vbscript"\=[^>]*\s\+runatserver[^>]*>+ end=+</script>+ contains=@AspVBScriptTop
150
151
152" Synchronization
153" syn sync match AspVBSSyncGroup grouphere AspVBScriptInsideHtmlTags "<%"
154" This is a kludge so the HTML will sync properly
155syn sync match htmlHighlight grouphere htmlTag "%>"
156
157
158
159" Define the default highlighting.
160" Only when an item doesn't have highlighting yet
161
162"hi def link AspVBScript		Special
163hi def link AspVBSLineNumber	Comment
164hi def link AspVBSNumber		Number
165hi def link AspVBSError		Error
166hi def link AspVBSStatement	Statement
167hi def link AspVBSString		String
168hi def link AspVBSComment		Comment
169hi def link AspVBSTodo		Todo
170hi def link AspVBSFunction		Identifier
171hi def link AspVBSMethods		PreProc
172hi def link AspVBSEvents		Special
173hi def link AspVBSTypeSpecifier	Type
174
175
176let b:current_syntax = "aspvbs"
177
178if main_syntax == 'aspvbs'
179  unlet main_syntax
180endif
181
182" vim: ts=8:sw=2:sts=0:noet
183