neovim

Neovim text editor
git clone https://git.dasho.dev/neovim.git
Log | Files | Refs | README

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