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