home *** CD-ROM | disk | FTP | other *** search
/ vim.ftp.fu-berlin.de / 2015-02-03.vim.ftp.fu-berlin.de.tar / vim.ftp.fu-berlin.de / runtime / syntax / aspvbs.vim < prev    next >
Encoding:
Text File  |  2010-08-14  |  9.3 KB  |  199 lines

  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 version < 600
  16.   syn clear
  17. elseif exists("b:current_syntax")
  18.   finish
  19. endif
  20.  
  21. if !exists("main_syntax")
  22.   let main_syntax = 'aspvbs'
  23. endif
  24.  
  25. if version < 600
  26.   source <sfile>:p:h/html.vim
  27. else
  28.   runtime! syntax/html.vim
  29. endif
  30. unlet b:current_syntax
  31.  
  32. syn cluster htmlPreProc add=AspVBScriptInsideHtmlTags
  33.  
  34.  
  35. " Colored variable names, if written in hungarian notation
  36. hi def AspVBSVariableSimple   term=standout  ctermfg=3  guifg=#99ee99
  37. hi def AspVBSVariableComplex  term=standout  ctermfg=3  guifg=#ee9900
  38. syn match AspVBSVariableSimple  contained "\<\(bln\|byt\|dtm\=\|dbl\|int\|str\)\u\w*"
  39. syn match AspVBSVariableComplex contained "\<\(arr\|ary\|obj\)\u\w*"
  40.  
  41.  
  42. " Functions and methods that are in VB but will cause errors in an ASP page
  43. " This is helpfull if your porting VB code to ASP
  44. " I removed (Count, Item) because these are common variable names in AspVBScript
  45. syn keyword AspVBSError contained Val Str CVar CVDate DoEvents GoSub Return GoTo
  46. syn keyword AspVBSError contained Stop LinkExecute Add Type LinkPoke
  47. syn keyword AspVBSError contained LinkRequest LinkSend Declare Optional Sleep
  48. syn keyword AspVBSError contained ParamArray Static Erl TypeOf Like LSet RSet Mid StrConv
  49. " It may seem that most of these can fit into a keyword clause but keyword takes
  50. " priority over all so I can't get the multi-word matches
  51. syn match AspVBSError contained "\<Def[a-zA-Z0-9_]\+\>"
  52. syn match AspVBSError contained "^\s*Open\s\+"
  53. syn match AspVBSError contained "Debug\.[a-zA-Z0-9_]*"
  54. syn match AspVBSError contained "^\s*[a-zA-Z0-9_]\+:"
  55. syn match AspVBSError contained "[a-zA-Z0-9_]\+![a-zA-Z0-9_]\+"
  56. syn match AspVBSError contained "^\s*#.*$"
  57. syn match AspVBSError contained "\<As\s\+[a-zA-Z0-9_]*"
  58. syn match AspVBSError contained "\<End\>\|\<Exit\>"
  59. syn match AspVBSError contained "\<On\s\+Error\>\|\<On\>\|\<Error\>\|\<Resume\s\+Next\>\|\<Resume\>"
  60. syn match AspVBSError contained "\<Option\s\+\(Base\|Compare\|Private\s\+Module\)\>"
  61. " This one I want 'cause I always seem to mis-spell it.
  62. syn match AspVBSError contained "Respon\?ce\.\S*"
  63. syn match AspVBSError contained "Respose\.\S*"
  64. " When I looked up the VBScript syntax it mentioned that Property Get/Set/Let
  65. " statements are illegal, however, I have recived reports that they do work.
  66. " So I commented it out for now.
  67. " syn match AspVBSError contained "\<Property\s\+\(Get\|Let\|Set\)\>"
  68.  
  69. " AspVBScript Reserved Words.
  70. syn match AspVBSStatement contained "\<On\s\+Error\s\+\(Resume\s\+Next\|goto\s\+0\)\>\|\<Next\>"
  71. syn match AspVBSStatement contained "\<End\s\+\(If\|For\|Select\|Class\|Function\|Sub\|With\|Property\)\>"
  72. syn match AspVBSStatement contained "\<Exit\s\+\(Do\|For\|Sub\|Function\)\>"
  73. syn match AspVBSStatement contained "\<Exit\s\+\(Do\|For\|Sub\|Function\|Property\)\>"
  74. syn match AspVBSStatement contained "\<Option\s\+Explicit\>"
  75. syn match AspVBSStatement contained "\<For\s\+Each\>\|\<For\>"
  76. syn match AspVBSStatement contained "\<Set\>"
  77. syn keyword AspVBSStatement contained Call Class Const Default Dim Do Loop Erase And
  78. syn keyword AspVBSStatement contained Function If Then Else ElseIf Or
  79. syn keyword AspVBSStatement contained Private Public Randomize ReDim
  80. syn keyword AspVBSStatement contained Select Case Sub While With Wend Not
  81.  
  82. " AspVBScript Functions
  83. syn keyword AspVBSFunction contained Abs Array Asc Atn CBool CByte CCur CDate CDbl
  84. syn keyword AspVBSFunction contained Chr CInt CLng Cos CreateObject CSng CStr Date
  85. syn keyword AspVBSFunction contained DateAdd DateDiff DatePart DateSerial DateValue
  86. syn keyword AspVBSFunction contained Date Day Exp Filter Fix FormatCurrency
  87. syn keyword AspVBSFunction contained FormatDateTime FormatNumber FormatPercent
  88. syn keyword AspVBSFunction contained GetObject Hex Hour InputBox InStr InStrRev Int
  89. syn keyword AspVBSFunction contained IsArray IsDate IsEmpty IsNull IsNumeric
  90. syn keyword AspVBSFunction contained IsObject Join LBound LCase Left Len LoadPicture
  91. syn keyword AspVBSFunction contained Log LTrim Mid Minute Month MonthName MsgBox Now
  92. syn keyword AspVBSFunction contained Oct Replace RGB Right Rnd Round RTrim
  93. syn keyword AspVBSFunction contained ScriptEngine ScriptEngineBuildVersion
  94. syn keyword AspVBSFunction contained ScriptEngineMajorVersion
  95. syn keyword AspVBSFunction contained ScriptEngineMinorVersion Second Sgn Sin Space
  96. syn keyword AspVBSFunction contained Split Sqr StrComp StrReverse String Tan Time Timer
  97. syn keyword AspVBSFunction contained TimeSerial TimeValue Trim TypeName UBound UCase
  98. syn keyword AspVBSFunction contained VarType Weekday WeekdayName Year
  99.  
  100. " AspVBScript Methods
  101. syn keyword AspVBSMethods contained Add AddFolders BuildPath Clear Close Copy
  102. syn keyword AspVBSMethods contained CopyFile CopyFolder CreateFolder CreateTextFile
  103. syn keyword AspVBSMethods contained Delete DeleteFile DeleteFolder DriveExists
  104. syn keyword AspVBSMethods contained Exists FileExists FolderExists
  105. syn keyword AspVBSMethods contained GetAbsolutePathName GetBaseName GetDrive
  106. syn keyword AspVBSMethods contained GetDriveName GetExtensionName GetFile
  107. syn keyword AspVBSMethods contained GetFileName GetFolder GetParentFolderName
  108. syn keyword AspVBSMethods contained GetSpecialFolder GetTempName Items Keys Move
  109. syn keyword AspVBSMethods contained MoveFile MoveFolder OpenAsTextStream
  110. syn keyword AspVBSMethods contained OpenTextFile Raise Read ReadAll ReadLine Remove
  111. syn keyword AspVBSMethods contained RemoveAll Skip SkipLine Write WriteBlankLines
  112. syn keyword AspVBSMethods contained WriteLine
  113. syn match AspVBSMethods contained "Response\.\w*"
  114. " Colorize boolean constants:
  115. syn keyword AspVBSMethods contained true false
  116.  
  117. " AspVBScript Number Contstants
  118. " Integer number, or floating point number without a dot.
  119. syn match  AspVBSNumber    contained    "\<\d\+\>"
  120. " Floating point number, with dot
  121. syn match  AspVBSNumber    contained    "\<\d\+\.\d*\>"
  122. " Floating point number, starting with a dot
  123. syn match  AspVBSNumber    contained    "\.\d\+\>"
  124.  
  125. " String and Character Contstants
  126. " removed (skip=+\\\\\|\\"+) because VB doesn't have backslash escaping in
  127. " strings (or does it?)
  128. syn region  AspVBSString    contained      start=+"+  end=+"+ keepend
  129.  
  130. " AspVBScript Comments
  131. syn region  AspVBSComment    contained start="^REM\s\|\sREM\s" end="$" contains=AspVBSTodo keepend
  132. syn region  AspVBSComment   contained start="^'\|\s'"   end="$" contains=AspVBSTodo keepend
  133. " misc. Commenting Stuff
  134. syn keyword AspVBSTodo contained    TODO FIXME
  135.  
  136. " Cosmetic syntax errors commanly found in VB but not in AspVBScript
  137. " AspVBScript doesn't use line numbers
  138. syn region  AspVBSError    contained start="^\d" end="\s" keepend
  139. " AspVBScript also doesn't have type defining variables
  140. syn match   AspVBSError  contained "[a-zA-Z0-9_][\$&!#]"ms=s+1
  141. " Since 'a%' is a VB variable with a type and in AspVBScript you can have 'a%>'
  142. " I have to make a special case so 'a%>' won't show as an error.
  143. syn match   AspVBSError  contained "[a-zA-Z0-9_]%\($\|[^>]\)"ms=s+1
  144.  
  145. " Top Cluster
  146. syn cluster AspVBScriptTop contains=AspVBSStatement,AspVBSFunction,AspVBSMethods,AspVBSNumber,AspVBSString,AspVBSComment,AspVBSError,AspVBSVariableSimple,AspVBSVariableComplex
  147.  
  148. " Folding
  149. syn region AspVBSFold start="^\s*\(class\)\s\+.*$" end="^\s*end\s\+\(class\)\>.*$" fold contained transparent keepend
  150. syn region AspVBSFold start="^\s*\(private\|public\)\=\(\s\+default\)\=\s\+\(sub\|function\)\s\+.*$" end="^\s*end\s\+\(function\|sub\)\>.*$" fold contained transparent keepend
  151.  
  152. " Define AspVBScript delimeters
  153. " <%= func("string_with_%>_in_it") %> This is illegal in ASP syntax.
  154. syn region  AspVBScriptInsideHtmlTags keepend matchgroup=Delimiter start=+<%=\=+ end=+%>+ contains=@AspVBScriptTop, AspVBSFold
  155. syn region  AspVBScriptInsideHtmlTags keepend matchgroup=Delimiter start=+<script\s\+language="\=vbscript"\=[^>]*\s\+runatserver[^>]*>+ end=+</script>+ contains=@AspVBScriptTop
  156.  
  157.  
  158. " Synchronization
  159. " syn sync match AspVBSSyncGroup grouphere AspVBScriptInsideHtmlTags "<%"
  160. " This is a kludge so the HTML will sync properly
  161. syn sync match htmlHighlight grouphere htmlTag "%>"
  162.  
  163.  
  164.  
  165. " Define the default highlighting.
  166. " For version 5.7 and earlier: only when not done already
  167. " For version 5.8 and later: only when an item doesn't have highlighting yet
  168. if version >= 508 || !exists("did_aspvbs_syn_inits")
  169.   if version < 508
  170.     let did_aspvbs_syn_inits = 1
  171.     command -nargs=+ HiLink hi link <args>
  172.   else
  173.     command -nargs=+ HiLink hi def link <args>
  174.   endif
  175.  
  176.   "HiLink AspVBScript        Special
  177.   HiLink AspVBSLineNumber    Comment
  178.   HiLink AspVBSNumber        Number
  179.   HiLink AspVBSError        Error
  180.   HiLink AspVBSStatement    Statement
  181.   HiLink AspVBSString        String
  182.   HiLink AspVBSComment        Comment
  183.   HiLink AspVBSTodo        Todo
  184.   HiLink AspVBSFunction        Identifier
  185.   HiLink AspVBSMethods        PreProc
  186.   HiLink AspVBSEvents        Special
  187.   HiLink AspVBSTypeSpecifier    Type
  188.  
  189.   delcommand HiLink
  190. endif
  191.  
  192. let b:current_syntax = "aspvbs"
  193.  
  194. if main_syntax == 'aspvbs'
  195.   unlet main_syntax
  196. endif
  197.  
  198. " vim: ts=8:sw=2:sts=0:noet
  199.