| 
									
										
										
										
											2004-06-13 20:20:40 +00:00
										 |  |  | " Vim syntax file | 
					
						
							|  |  |  | " Language:	Microsoft VBScript Web Content (ASP) | 
					
						
							| 
									
										
										
										
											2004-09-02 19:12:26 +00:00
										 |  |  | " Maintainer:	Devin Weaver <ktohg@tritarget.com> (non-functional) | 
					
						
							|  |  |  | " URL:		http://tritarget.com/pub/vim/syntax/aspvbs.vim (broken) | 
					
						
							| 
									
										
										
										
											2007-05-05 17:54:07 +00:00
										 |  |  | " Last Change:	2006 Jun 19 | 
					
						
							|  |  |  | " 		by Dan Casey | 
					
						
							| 
									
										
										
										
											2010-01-06 20:54:52 +01:00
										 |  |  | " Version:	$Revision: 1.3 $ | 
					
						
							| 
									
										
										
										
											2004-06-13 20:20:40 +00:00
										 |  |  | " Thanks to Jay-Jay <vim@jay-jay.net> for a syntax sync hack, hungarian | 
					
						
							|  |  |  | " notation, and extra highlighting. | 
					
						
							|  |  |  | " Thanks to patrick dehne <patrick@steidle.net> for the folding code. | 
					
						
							|  |  |  | " Thanks to Dean Hall <hall@apt7.com> for testing the use of classes in | 
					
						
							|  |  |  | " VBScripts which I've been too scared to do. | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | " Quit when a syntax file was already loaded | 
					
						
							|  |  |  | if version < 600 | 
					
						
							|  |  |  |   syn clear | 
					
						
							|  |  |  | elseif exists("b:current_syntax") | 
					
						
							|  |  |  |   finish | 
					
						
							|  |  |  | endif | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | if !exists("main_syntax") | 
					
						
							|  |  |  |   let main_syntax = 'aspvbs' | 
					
						
							|  |  |  | endif | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | if version < 600 | 
					
						
							|  |  |  |   source <sfile>:p:h/html.vim | 
					
						
							|  |  |  | else | 
					
						
							|  |  |  |   runtime! syntax/html.vim | 
					
						
							|  |  |  | endif | 
					
						
							|  |  |  | unlet b:current_syntax | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | syn cluster htmlPreProc add=AspVBScriptInsideHtmlTags | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | " Colored variable names, if written in hungarian notation | 
					
						
							|  |  |  | hi def AspVBSVariableSimple   term=standout  ctermfg=3  guifg=#99ee99 | 
					
						
							|  |  |  | hi def AspVBSVariableComplex  term=standout  ctermfg=3  guifg=#ee9900 | 
					
						
							|  |  |  | syn match AspVBSVariableSimple  contained "\<\(bln\|byt\|dtm\=\|dbl\|int\|str\)\u\w*" | 
					
						
							| 
									
										
										
										
											2007-05-05 17:54:07 +00:00
										 |  |  | syn match AspVBSVariableComplex contained "\<\(arr\|ary\|obj\)\u\w*" | 
					
						
							| 
									
										
										
										
											2004-06-13 20:20:40 +00:00
										 |  |  | 
 | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | " Functions and methods that are in VB but will cause errors in an ASP page | 
					
						
							|  |  |  | " This is helpfull if your porting VB code to ASP | 
					
						
							|  |  |  | " I removed (Count, Item) because these are common variable names in AspVBScript | 
					
						
							|  |  |  | syn keyword AspVBSError contained Val Str CVar CVDate DoEvents GoSub Return GoTo | 
					
						
							|  |  |  | syn keyword AspVBSError contained Stop LinkExecute Add Type LinkPoke | 
					
						
							|  |  |  | syn keyword AspVBSError contained LinkRequest LinkSend Declare Optional Sleep | 
					
						
							|  |  |  | syn keyword AspVBSError contained ParamArray Static Erl TypeOf Like LSet RSet Mid StrConv | 
					
						
							|  |  |  | " It may seem that most of these can fit into a keyword clause but keyword takes | 
					
						
							|  |  |  | " priority over all so I can't get the multi-word matches | 
					
						
							|  |  |  | syn match AspVBSError contained "\<Def[a-zA-Z0-9_]\+\>" | 
					
						
							|  |  |  | syn match AspVBSError contained "^\s*Open\s\+" | 
					
						
							|  |  |  | syn match AspVBSError contained "Debug\.[a-zA-Z0-9_]*" | 
					
						
							|  |  |  | syn match AspVBSError contained "^\s*[a-zA-Z0-9_]\+:" | 
					
						
							|  |  |  | syn match AspVBSError contained "[a-zA-Z0-9_]\+![a-zA-Z0-9_]\+" | 
					
						
							|  |  |  | syn match AspVBSError contained "^\s*#.*$" | 
					
						
							|  |  |  | syn match AspVBSError contained "\<As\s\+[a-zA-Z0-9_]*" | 
					
						
							|  |  |  | syn match AspVBSError contained "\<End\>\|\<Exit\>" | 
					
						
							|  |  |  | syn match AspVBSError contained "\<On\s\+Error\>\|\<On\>\|\<Error\>\|\<Resume\s\+Next\>\|\<Resume\>" | 
					
						
							|  |  |  | syn match AspVBSError contained "\<Option\s\+\(Base\|Compare\|Private\s\+Module\)\>" | 
					
						
							|  |  |  | " This one I want 'cause I always seem to mis-spell it. | 
					
						
							|  |  |  | syn match AspVBSError contained "Respon\?ce\.\S*" | 
					
						
							|  |  |  | syn match AspVBSError contained "Respose\.\S*" | 
					
						
							|  |  |  | " When I looked up the VBScript syntax it mentioned that Property Get/Set/Let | 
					
						
							|  |  |  | " statements are illegal, however, I have recived reports that they do work. | 
					
						
							|  |  |  | " So I commented it out for now. | 
					
						
							|  |  |  | " syn match AspVBSError contained "\<Property\s\+\(Get\|Let\|Set\)\>" | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | " AspVBScript Reserved Words. | 
					
						
							|  |  |  | syn match AspVBSStatement contained "\<On\s\+Error\s\+\(Resume\s\+Next\|goto\s\+0\)\>\|\<Next\>" | 
					
						
							| 
									
										
										
										
											2007-05-05 17:54:07 +00:00
										 |  |  | syn match AspVBSStatement contained "\<End\s\+\(If\|For\|Select\|Class\|Function\|Sub\|With\|Property\)\>" | 
					
						
							| 
									
										
										
										
											2004-06-13 20:20:40 +00:00
										 |  |  | syn match AspVBSStatement contained "\<Exit\s\+\(Do\|For\|Sub\|Function\)\>" | 
					
						
							| 
									
										
										
										
											2007-05-05 17:54:07 +00:00
										 |  |  | syn match AspVBSStatement contained "\<Exit\s\+\(Do\|For\|Sub\|Function\|Property\)\>" | 
					
						
							| 
									
										
										
										
											2004-06-13 20:20:40 +00:00
										 |  |  | syn match AspVBSStatement contained "\<Option\s\+Explicit\>" | 
					
						
							|  |  |  | syn match AspVBSStatement contained "\<For\s\+Each\>\|\<For\>" | 
					
						
							|  |  |  | syn match AspVBSStatement contained "\<Set\>" | 
					
						
							|  |  |  | syn keyword AspVBSStatement contained Call Class Const Default Dim Do Loop Erase And | 
					
						
							|  |  |  | syn keyword AspVBSStatement contained Function If Then Else ElseIf Or | 
					
						
							|  |  |  | syn keyword AspVBSStatement contained Private Public Randomize ReDim | 
					
						
							|  |  |  | syn keyword AspVBSStatement contained Select Case Sub While With Wend Not | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | " AspVBScript Functions | 
					
						
							|  |  |  | syn keyword AspVBSFunction contained Abs Array Asc Atn CBool CByte CCur CDate CDbl | 
					
						
							|  |  |  | syn keyword AspVBSFunction contained Chr CInt CLng Cos CreateObject CSng CStr Date | 
					
						
							|  |  |  | syn keyword AspVBSFunction contained DateAdd DateDiff DatePart DateSerial DateValue | 
					
						
							|  |  |  | syn keyword AspVBSFunction contained Date Day Exp Filter Fix FormatCurrency | 
					
						
							|  |  |  | syn keyword AspVBSFunction contained FormatDateTime FormatNumber FormatPercent | 
					
						
							|  |  |  | syn keyword AspVBSFunction contained GetObject Hex Hour InputBox InStr InStrRev Int | 
					
						
							|  |  |  | syn keyword AspVBSFunction contained IsArray IsDate IsEmpty IsNull IsNumeric | 
					
						
							|  |  |  | syn keyword AspVBSFunction contained IsObject Join LBound LCase Left Len LoadPicture | 
					
						
							|  |  |  | syn keyword AspVBSFunction contained Log LTrim Mid Minute Month MonthName MsgBox Now | 
					
						
							|  |  |  | syn keyword AspVBSFunction contained Oct Replace RGB Right Rnd Round RTrim | 
					
						
							|  |  |  | syn keyword AspVBSFunction contained ScriptEngine ScriptEngineBuildVersion | 
					
						
							|  |  |  | syn keyword AspVBSFunction contained ScriptEngineMajorVersion | 
					
						
							|  |  |  | syn keyword AspVBSFunction contained ScriptEngineMinorVersion Second Sgn Sin Space | 
					
						
							|  |  |  | syn keyword AspVBSFunction contained Split Sqr StrComp StrReverse String Tan Time Timer | 
					
						
							|  |  |  | syn keyword AspVBSFunction contained TimeSerial TimeValue Trim TypeName UBound UCase | 
					
						
							|  |  |  | syn keyword AspVBSFunction contained VarType Weekday WeekdayName Year | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | " AspVBScript Methods | 
					
						
							|  |  |  | syn keyword AspVBSMethods contained Add AddFolders BuildPath Clear Close Copy | 
					
						
							|  |  |  | syn keyword AspVBSMethods contained CopyFile CopyFolder CreateFolder CreateTextFile | 
					
						
							|  |  |  | syn keyword AspVBSMethods contained Delete DeleteFile DeleteFolder DriveExists | 
					
						
							|  |  |  | syn keyword AspVBSMethods contained Exists FileExists FolderExists | 
					
						
							|  |  |  | syn keyword AspVBSMethods contained GetAbsolutePathName GetBaseName GetDrive | 
					
						
							|  |  |  | syn keyword AspVBSMethods contained GetDriveName GetExtensionName GetFile | 
					
						
							|  |  |  | syn keyword AspVBSMethods contained GetFileName GetFolder GetParentFolderName | 
					
						
							|  |  |  | syn keyword AspVBSMethods contained GetSpecialFolder GetTempName Items Keys Move | 
					
						
							|  |  |  | syn keyword AspVBSMethods contained MoveFile MoveFolder OpenAsTextStream | 
					
						
							|  |  |  | syn keyword AspVBSMethods contained OpenTextFile Raise Read ReadAll ReadLine Remove | 
					
						
							|  |  |  | syn keyword AspVBSMethods contained RemoveAll Skip SkipLine Write WriteBlankLines | 
					
						
							|  |  |  | syn keyword AspVBSMethods contained WriteLine | 
					
						
							| 
									
										
										
										
											2004-09-02 19:12:26 +00:00
										 |  |  | syn match AspVBSMethods contained "Response\.\w*" | 
					
						
							| 
									
										
										
										
											2004-06-13 20:20:40 +00:00
										 |  |  | " Colorize boolean constants: | 
					
						
							|  |  |  | syn keyword AspVBSMethods contained true false | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | " AspVBScript Number Contstants | 
					
						
							|  |  |  | " Integer number, or floating point number without a dot. | 
					
						
							|  |  |  | syn match  AspVBSNumber	contained	"\<\d\+\>" | 
					
						
							|  |  |  | " Floating point number, with dot | 
					
						
							|  |  |  | syn match  AspVBSNumber	contained	"\<\d\+\.\d*\>" | 
					
						
							|  |  |  | " Floating point number, starting with a dot | 
					
						
							|  |  |  | syn match  AspVBSNumber	contained	"\.\d\+\>" | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | " String and Character Contstants | 
					
						
							|  |  |  | " removed (skip=+\\\\\|\\"+) because VB doesn't have backslash escaping in | 
					
						
							|  |  |  | " strings (or does it?) | 
					
						
							|  |  |  | syn region  AspVBSString	contained	  start=+"+  end=+"+ keepend | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | " AspVBScript Comments | 
					
						
							|  |  |  | syn region  AspVBSComment	contained start="^REM\s\|\sREM\s" end="$" contains=AspVBSTodo keepend | 
					
						
							|  |  |  | syn region  AspVBSComment   contained start="^'\|\s'"   end="$" contains=AspVBSTodo keepend | 
					
						
							|  |  |  | " misc. Commenting Stuff | 
					
						
							|  |  |  | syn keyword AspVBSTodo contained	TODO FIXME | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | " Cosmetic syntax errors commanly found in VB but not in AspVBScript | 
					
						
							|  |  |  | " AspVBScript doesn't use line numbers | 
					
						
							|  |  |  | syn region  AspVBSError	contained start="^\d" end="\s" keepend | 
					
						
							|  |  |  | " AspVBScript also doesn't have type defining variables | 
					
						
							|  |  |  | syn match   AspVBSError  contained "[a-zA-Z0-9_][\$&!#]"ms=s+1 | 
					
						
							|  |  |  | " Since 'a%' is a VB variable with a type and in AspVBScript you can have 'a%>' | 
					
						
							|  |  |  | " I have to make a special case so 'a%>' won't show as an error. | 
					
						
							|  |  |  | syn match   AspVBSError  contained "[a-zA-Z0-9_]%\($\|[^>]\)"ms=s+1 | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | " Top Cluster | 
					
						
							|  |  |  | syn cluster AspVBScriptTop contains=AspVBSStatement,AspVBSFunction,AspVBSMethods,AspVBSNumber,AspVBSString,AspVBSComment,AspVBSError,AspVBSVariableSimple,AspVBSVariableComplex | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | " Folding | 
					
						
							|  |  |  | syn region AspVBSFold start="^\s*\(class\)\s\+.*$" end="^\s*end\s\+\(class\)\>.*$" fold contained transparent keepend | 
					
						
							|  |  |  | syn region AspVBSFold start="^\s*\(private\|public\)\=\(\s\+default\)\=\s\+\(sub\|function\)\s\+.*$" end="^\s*end\s\+\(function\|sub\)\>.*$" fold contained transparent keepend | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | " Define AspVBScript delimeters | 
					
						
							|  |  |  | " <%= func("string_with_%>_in_it") %> This is illegal in ASP syntax. | 
					
						
							|  |  |  | syn region  AspVBScriptInsideHtmlTags keepend matchgroup=Delimiter start=+<%=\=+ end=+%>+ contains=@AspVBScriptTop, AspVBSFold | 
					
						
							|  |  |  | syn region  AspVBScriptInsideHtmlTags keepend matchgroup=Delimiter start=+<script\s\+language="\=vbscript"\=[^>]*\s\+runatserver[^>]*>+ end=+</script>+ contains=@AspVBScriptTop | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | " Synchronization | 
					
						
							|  |  |  | " syn sync match AspVBSSyncGroup grouphere AspVBScriptInsideHtmlTags "<%" | 
					
						
							|  |  |  | " This is a kludge so the HTML will sync properly | 
					
						
							|  |  |  | syn sync match htmlHighlight grouphere htmlTag "%>" | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | " Define the default highlighting. | 
					
						
							|  |  |  | " For version 5.7 and earlier: only when not done already | 
					
						
							|  |  |  | " For version 5.8 and later: only when an item doesn't have highlighting yet | 
					
						
							|  |  |  | if version >= 508 || !exists("did_aspvbs_syn_inits") | 
					
						
							|  |  |  |   if version < 508 | 
					
						
							|  |  |  |     let did_aspvbs_syn_inits = 1 | 
					
						
							|  |  |  |     command -nargs=+ HiLink hi link <args> | 
					
						
							|  |  |  |   else | 
					
						
							|  |  |  |     command -nargs=+ HiLink hi def link <args> | 
					
						
							|  |  |  |   endif | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  |   "HiLink AspVBScript		Special | 
					
						
							|  |  |  |   HiLink AspVBSLineNumber	Comment | 
					
						
							|  |  |  |   HiLink AspVBSNumber		Number | 
					
						
							|  |  |  |   HiLink AspVBSError		Error | 
					
						
							|  |  |  |   HiLink AspVBSStatement	Statement | 
					
						
							|  |  |  |   HiLink AspVBSString		String | 
					
						
							|  |  |  |   HiLink AspVBSComment		Comment | 
					
						
							|  |  |  |   HiLink AspVBSTodo		Todo | 
					
						
							|  |  |  |   HiLink AspVBSFunction		Identifier | 
					
						
							|  |  |  |   HiLink AspVBSMethods		PreProc | 
					
						
							|  |  |  |   HiLink AspVBSEvents		Special | 
					
						
							|  |  |  |   HiLink AspVBSTypeSpecifier	Type | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  |   delcommand HiLink | 
					
						
							|  |  |  | endif | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | let b:current_syntax = "aspvbs" | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | if main_syntax == 'aspvbs' | 
					
						
							|  |  |  |   unlet main_syntax | 
					
						
							|  |  |  | endif | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | " vim: ts=8:sw=2:sts=0:noet |