| " 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 |