aspvbs.vim (9099B)
1 " Vim syntax file 2 " Language: Microsoft VBScript Web Content (ASP) 3 " Maintainer: Devin Weaver <ktohg@tritarget.com> (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 <vim@jay-jay.net> for a syntax sync hack, hungarian 9 " notation, and extra highlighting. 10 " Thanks to patrick dehne <patrick@steidle.net> for the folding code. 11 " Thanks to Dean Hall <hall@apt7.com> 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 15 if exists("b:current_syntax") 16 finish 17 endif 18 19 if !exists("main_syntax") 20 let main_syntax = 'aspvbs' 21 endif 22 23 runtime! syntax/html.vim 24 unlet b:current_syntax 25 26 syn cluster htmlPreProc add=AspVBScriptInsideHtmlTags 27 28 29 " Colored variable names, if written in hungarian notation 30 hi def AspVBSVariableSimple term=standout ctermfg=3 guifg=#99ee99 31 hi def AspVBSVariableComplex term=standout ctermfg=3 guifg=#ee9900 32 syn match AspVBSVariableSimple contained "\<\(bln\|byt\|dtm\=\|dbl\|int\|str\)\u\w*" 33 syn 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 you're porting VB code to ASP 38 " I removed (Count, Item) because these are common variable names in AspVBScript 39 syn keyword AspVBSError contained Val Str CVar CVDate DoEvents GoSub Return GoTo 40 syn keyword AspVBSError contained Stop LinkExecute Add Type LinkPoke 41 syn keyword AspVBSError contained LinkRequest LinkSend Declare Optional Sleep 42 syn 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 45 syn match AspVBSError contained "\<Def[a-zA-Z0-9_]\+\>" 46 syn match AspVBSError contained "^\s*Open\s\+" 47 syn match AspVBSError contained "Debug\.[a-zA-Z0-9_]*" 48 syn match AspVBSError contained "^\s*[a-zA-Z0-9_]\+:" 49 syn match AspVBSError contained "[a-zA-Z0-9_]\+![a-zA-Z0-9_]\+" 50 syn match AspVBSError contained "^\s*#.*$" 51 syn match AspVBSError contained "\<As\s\+[a-zA-Z0-9_]*" 52 syn match AspVBSError contained "\<End\>\|\<Exit\>" 53 syn match AspVBSError contained "\<On\s\+Error\>\|\<On\>\|\<Error\>\|\<Resume\s\+Next\>\|\<Resume\>" 54 syn match AspVBSError contained "\<Option\s\+\(Base\|Compare\|Private\s\+Module\)\>" 55 " This one I want 'cause I always seem to mis-spell it. 56 syn match AspVBSError contained "Respon\?ce\.\S*" 57 syn 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. 64 syn match AspVBSStatement contained "\<On\s\+Error\s\+\(Resume\s\+Next\|goto\s\+0\)\>\|\<Next\>" 65 syn match AspVBSStatement contained "\<End\s\+\(If\|For\|Select\|Class\|Function\|Sub\|With\|Property\)\>" 66 syn match AspVBSStatement contained "\<Exit\s\+\(Do\|For\|Sub\|Function\)\>" 67 syn match AspVBSStatement contained "\<Exit\s\+\(Do\|For\|Sub\|Function\|Property\)\>" 68 syn match AspVBSStatement contained "\<Option\s\+Explicit\>" 69 syn match AspVBSStatement contained "\<For\s\+Each\>\|\<For\>" 70 syn match AspVBSStatement contained "\<Set\>" 71 syn keyword AspVBSStatement contained Call Class Const Default Dim Do Loop Erase And 72 syn keyword AspVBSStatement contained Function If Then Else ElseIf Or 73 syn keyword AspVBSStatement contained Private Public Randomize ReDim 74 syn keyword AspVBSStatement contained Select Case Sub While With Wend Not 75 76 " AspVBScript Functions 77 syn keyword AspVBSFunction contained Abs Array Asc Atn CBool CByte CCur CDate CDbl 78 syn keyword AspVBSFunction contained Chr CInt CLng Cos CreateObject CSng CStr Date 79 syn keyword AspVBSFunction contained DateAdd DateDiff DatePart DateSerial DateValue 80 syn keyword AspVBSFunction contained Date Day Exp Filter Fix FormatCurrency 81 syn keyword AspVBSFunction contained FormatDateTime FormatNumber FormatPercent 82 syn keyword AspVBSFunction contained GetObject Hex Hour InputBox InStr InStrRev Int 83 syn keyword AspVBSFunction contained IsArray IsDate IsEmpty IsNull IsNumeric 84 syn keyword AspVBSFunction contained IsObject Join LBound LCase Left Len LoadPicture 85 syn keyword AspVBSFunction contained Log LTrim Mid Minute Month MonthName MsgBox Now 86 syn keyword AspVBSFunction contained Oct Replace RGB Right Rnd Round RTrim 87 syn keyword AspVBSFunction contained ScriptEngine ScriptEngineBuildVersion 88 syn keyword AspVBSFunction contained ScriptEngineMajorVersion 89 syn keyword AspVBSFunction contained ScriptEngineMinorVersion Second Sgn Sin Space 90 syn keyword AspVBSFunction contained Split Sqr StrComp StrReverse String Tan Time Timer 91 syn keyword AspVBSFunction contained TimeSerial TimeValue Trim TypeName UBound UCase 92 syn keyword AspVBSFunction contained VarType Weekday WeekdayName Year 93 94 " AspVBScript Methods 95 syn keyword AspVBSMethods contained Add AddFolders BuildPath Clear Close Copy 96 syn keyword AspVBSMethods contained CopyFile CopyFolder CreateFolder CreateTextFile 97 syn keyword AspVBSMethods contained Delete DeleteFile DeleteFolder DriveExists 98 syn keyword AspVBSMethods contained Exists FileExists FolderExists 99 syn keyword AspVBSMethods contained GetAbsolutePathName GetBaseName GetDrive 100 syn keyword AspVBSMethods contained GetDriveName GetExtensionName GetFile 101 syn keyword AspVBSMethods contained GetFileName GetFolder GetParentFolderName 102 syn keyword AspVBSMethods contained GetSpecialFolder GetTempName Items Keys Move 103 syn keyword AspVBSMethods contained MoveFile MoveFolder OpenAsTextStream 104 syn keyword AspVBSMethods contained OpenTextFile Raise Read ReadAll ReadLine Remove 105 syn keyword AspVBSMethods contained RemoveAll Skip SkipLine Write WriteBlankLines 106 syn keyword AspVBSMethods contained WriteLine 107 syn match AspVBSMethods contained "Response\.\w*" 108 " Colorize boolean constants: 109 syn keyword AspVBSMethods contained true false 110 111 " AspVBScript Number Constants 112 " Integer number, or floating point number without a dot. 113 syn match AspVBSNumber contained "\<\d\+\>" 114 " Floating point number, with dot 115 syn match AspVBSNumber contained "\<\d\+\.\d*\>" 116 " Floating point number, starting with a dot 117 syn 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?) 122 syn region AspVBSString contained start=+"+ end=+"+ keepend 123 124 " AspVBScript Comments 125 syn region AspVBSComment contained start="^REM\s\|\sREM\s" end="$" contains=AspVBSTodo keepend 126 syn region AspVBSComment contained start="^'\|\s'" end="$" contains=AspVBSTodo keepend 127 " misc. Commenting Stuff 128 syn 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 132 syn region AspVBSError contained start="^\d" end="\s" keepend 133 " AspVBScript also doesn't have type defining variables 134 syn 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. 137 syn match AspVBSError contained "[a-zA-Z0-9_]%\($\|[^>]\)"ms=s+1 138 139 " Top Cluster 140 syn cluster AspVBScriptTop contains=AspVBSStatement,AspVBSFunction,AspVBSMethods,AspVBSNumber,AspVBSString,AspVBSComment,AspVBSError,AspVBSVariableSimple,AspVBSVariableComplex 141 142 " Folding 143 syn region AspVBSFold start="^\s*\(class\)\s\+.*$" end="^\s*end\s\+\(class\)\>.*$" fold contained transparent keepend 144 syn 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. 148 syn region AspVBScriptInsideHtmlTags keepend matchgroup=Delimiter start=+<%=\=+ end=+%>+ contains=@AspVBScriptTop, AspVBSFold 149 syn 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 155 syn 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 163 hi def link AspVBSLineNumber Comment 164 hi def link AspVBSNumber Number 165 hi def link AspVBSError Error 166 hi def link AspVBSStatement Statement 167 hi def link AspVBSString String 168 hi def link AspVBSComment Comment 169 hi def link AspVBSTodo Todo 170 hi def link AspVBSFunction Identifier 171 hi def link AspVBSMethods PreProc 172 hi def link AspVBSEvents Special 173 hi def link AspVBSTypeSpecifier Type 174 175 176 let b:current_syntax = "aspvbs" 177 178 if main_syntax == 'aspvbs' 179 unlet main_syntax 180 endif 181 182 " vim: ts=8:sw=2:sts=0:noet