197 lines
		
	
	
		
			9.1 KiB
		
	
	
	
		
			VimL
		
	
	
	
	
	
			
		
		
	
	
			197 lines
		
	
	
		
			9.1 KiB
		
	
	
	
		
			VimL
		
	
	
	
	
	
| " Vim syntax file
 | |
| " Language:	Microsoft VBScript Web Content (ASP)
 | |
| " Maintainer:	Devin Weaver <ktohg@tritarget.com> (non-functional)
 | |
| " URL:		http://tritarget.com/pub/vim/syntax/aspvbs.vim (broken)
 | |
| " Last Change:	2004 Jul 29
 | |
| " Version:	$Revision$
 | |
| " 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*"
 | |
| syn match AspVBSVariableComplex contained "\<\(arr\|obj\)\u\w*"
 | |
| 
 | |
| 
 | |
| " 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\>"
 | |
| syn match AspVBSStatement contained "\<End\s\+\(If\|For\|Select\|Class\|Function\|Sub\|With\)\>"
 | |
| syn match AspVBSStatement contained "\<Exit\s\+\(Do\|For\|Sub\|Function\)\>"
 | |
| 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
 | |
| syn match AspVBSMethods contained "Response\.\w*"
 | |
| " 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
 |