Mercurial > hg > RemoteEditor > vim7
annotate runtime/syntax/aspvbs.vim @ 34:e170173ecb68 current-release
before ack base protocol.
author | Shinji KONO <kono@ie.u-ryukyu.ac.jp> |
---|---|
date | Wed, 26 Nov 2008 15:02:10 +0900 |
parents | 76efa0be13f1 |
children | c16898406ff2 |
rev | line source |
---|---|
0 | 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 | |
34
e170173ecb68
before ack base protocol.
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
0
diff
changeset
|
7 " Version: $Revision: 1.2 $ |
0 | 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 |