Mercurial > hg > RemoteEditor > vim7
comparison runtime/syntax/html.vim @ 0:76efa0be13f1
Initial revision
author | atsuki |
---|---|
date | Sat, 10 Nov 2007 15:07:22 +0900 (2007-11-10) |
parents | |
children |
comparison
equal
deleted
inserted
replaced
-1:000000000000 | 0:76efa0be13f1 |
---|---|
1 " Vim syntax file | |
2 " Language: HTML | |
3 " Maintainer: Claudio Fleiner <claudio@fleiner.com> | |
4 " URL: http://www.fleiner.com/vim/syntax/html.vim | |
5 " Last Change: 2006 Jun 19 | |
6 | |
7 " Please check :help html.vim for some comments and a description of the options | |
8 | |
9 " For version 5.x: Clear all syntax items | |
10 " For version 6.x: Quit when a syntax file was already loaded | |
11 if !exists("main_syntax") | |
12 if version < 600 | |
13 syntax clear | |
14 elseif exists("b:current_syntax") | |
15 finish | |
16 endif | |
17 let main_syntax = 'html' | |
18 endif | |
19 | |
20 " don't use standard HiLink, it will not work with included syntax files | |
21 if version < 508 | |
22 command! -nargs=+ HtmlHiLink hi link <args> | |
23 else | |
24 command! -nargs=+ HtmlHiLink hi def link <args> | |
25 endif | |
26 | |
27 syntax spell toplevel | |
28 | |
29 syn case ignore | |
30 | |
31 " mark illegal characters | |
32 syn match htmlError "[<>&]" | |
33 | |
34 | |
35 " tags | |
36 syn region htmlString contained start=+"+ end=+"+ contains=htmlSpecialChar,javaScriptExpression,@htmlPreproc | |
37 syn region htmlString contained start=+'+ end=+'+ contains=htmlSpecialChar,javaScriptExpression,@htmlPreproc | |
38 syn match htmlValue contained "=[\t ]*[^'" \t>][^ \t>]*"hs=s+1 contains=javaScriptExpression,@htmlPreproc | |
39 syn region htmlEndTag start=+</+ end=+>+ contains=htmlTagN,htmlTagError | |
40 syn region htmlTag start=+<[^/]+ end=+>+ contains=htmlTagN,htmlString,htmlArg,htmlValue,htmlTagError,htmlEvent,htmlCssDefinition,@htmlPreproc,@htmlArgCluster | |
41 syn match htmlTagN contained +<\s*[-a-zA-Z0-9]\++hs=s+1 contains=htmlTagName,htmlSpecialTagName,@htmlTagNameCluster | |
42 syn match htmlTagN contained +</\s*[-a-zA-Z0-9]\++hs=s+2 contains=htmlTagName,htmlSpecialTagName,@htmlTagNameCluster | |
43 syn match htmlTagError contained "[^>]<"ms=s+1 | |
44 | |
45 | |
46 " tag names | |
47 syn keyword htmlTagName contained address applet area a base basefont | |
48 syn keyword htmlTagName contained big blockquote br caption center | |
49 syn keyword htmlTagName contained cite code dd dfn dir div dl dt font | |
50 syn keyword htmlTagName contained form hr html img | |
51 syn keyword htmlTagName contained input isindex kbd li link map menu | |
52 syn keyword htmlTagName contained meta ol option param pre p samp span | |
53 syn keyword htmlTagName contained select small strike sub sup | |
54 syn keyword htmlTagName contained table td textarea th tr tt ul var xmp | |
55 syn match htmlTagName contained "\<\(b\|i\|u\|h[1-6]\|em\|strong\|head\|body\|title\)\>" | |
56 | |
57 " new html 4.0 tags | |
58 syn keyword htmlTagName contained abbr acronym bdo button col label | |
59 syn keyword htmlTagName contained colgroup del fieldset iframe ins legend | |
60 syn keyword htmlTagName contained object optgroup q s tbody tfoot thead | |
61 | |
62 " legal arg names | |
63 syn keyword htmlArg contained action | |
64 syn keyword htmlArg contained align alink alt archive background bgcolor | |
65 syn keyword htmlArg contained border bordercolor cellpadding | |
66 syn keyword htmlArg contained cellspacing checked class clear code codebase color | |
67 syn keyword htmlArg contained cols colspan content coords enctype face | |
68 syn keyword htmlArg contained gutter height hspace id | |
69 syn keyword htmlArg contained link lowsrc marginheight | |
70 syn keyword htmlArg contained marginwidth maxlength method name prompt | |
71 syn keyword htmlArg contained rel rev rows rowspan scrolling selected shape | |
72 syn keyword htmlArg contained size src start target text type url | |
73 syn keyword htmlArg contained usemap ismap valign value vlink vspace width wrap | |
74 syn match htmlArg contained "\<\(http-equiv\|href\|title\)="me=e-1 | |
75 | |
76 " Netscape extensions | |
77 syn keyword htmlTagName contained frame noframes frameset nobr blink | |
78 syn keyword htmlTagName contained layer ilayer nolayer spacer | |
79 syn keyword htmlArg contained frameborder noresize pagex pagey above below | |
80 syn keyword htmlArg contained left top visibility clip id noshade | |
81 syn match htmlArg contained "\<z-index\>" | |
82 | |
83 " Microsoft extensions | |
84 syn keyword htmlTagName contained marquee | |
85 | |
86 " html 4.0 arg names | |
87 syn match htmlArg contained "\<\(accept-charset\|label\)\>" | |
88 syn keyword htmlArg contained abbr accept accesskey axis char charoff charset | |
89 syn keyword htmlArg contained cite classid codetype compact data datetime | |
90 syn keyword htmlArg contained declare defer dir disabled for frame | |
91 syn keyword htmlArg contained headers hreflang lang language longdesc | |
92 syn keyword htmlArg contained multiple nohref nowrap object profile readonly | |
93 syn keyword htmlArg contained rules scheme scope span standby style | |
94 syn keyword htmlArg contained summary tabindex valuetype version | |
95 | |
96 " special characters | |
97 syn match htmlSpecialChar "&#\=[0-9A-Za-z]\{1,8};" | |
98 | |
99 " Comments (the real ones or the old netscape ones) | |
100 if exists("html_wrong_comments") | |
101 syn region htmlComment start=+<!--+ end=+--\s*>+ | |
102 else | |
103 syn region htmlComment start=+<!+ end=+>+ contains=htmlCommentPart,htmlCommentError | |
104 syn match htmlCommentError contained "[^><!]" | |
105 syn region htmlCommentPart contained start=+--+ end=+--\s*+ contains=@htmlPreProc | |
106 endif | |
107 syn region htmlComment start=+<!DOCTYPE+ keepend end=+>+ | |
108 | |
109 " server-parsed commands | |
110 syn region htmlPreProc start=+<!--#+ end=+-->+ contains=htmlPreStmt,htmlPreError,htmlPreAttr | |
111 syn match htmlPreStmt contained "<!--#\(config\|echo\|exec\|fsize\|flastmod\|include\|printenv\|set\|if\|elif\|else\|endif\|geoguide\)\>" | |
112 syn match htmlPreError contained "<!--#\S*"ms=s+4 | |
113 syn match htmlPreAttr contained "\w\+=[^"]\S\+" contains=htmlPreProcAttrError,htmlPreProcAttrName | |
114 syn region htmlPreAttr contained start=+\w\+="+ skip=+\\\\\|\\"+ end=+"+ contains=htmlPreProcAttrName keepend | |
115 syn match htmlPreProcAttrError contained "\w\+="he=e-1 | |
116 syn match htmlPreProcAttrName contained "\(expr\|errmsg\|sizefmt\|timefmt\|var\|cgi\|cmd\|file\|virtual\|value\)="he=e-1 | |
117 | |
118 if !exists("html_no_rendering") | |
119 " rendering | |
120 syn cluster htmlTop contains=@Spell,htmlTag,htmlEndTag,htmlSpecialChar,htmlPreProc,htmlComment,htmlLink,javaScript,@htmlPreproc | |
121 | |
122 syn region htmlBold start="<b\>" end="</b>"me=e-4 contains=@htmlTop,htmlBoldUnderline,htmlBoldItalic | |
123 syn region htmlBold start="<strong\>" end="</strong>"me=e-9 contains=@htmlTop,htmlBoldUnderline,htmlBoldItalic | |
124 syn region htmlBoldUnderline contained start="<u\>" end="</u>"me=e-4 contains=@htmlTop,htmlBoldUnderlineItalic | |
125 syn region htmlBoldItalic contained start="<i\>" end="</i>"me=e-4 contains=@htmlTop,htmlBoldItalicUnderline | |
126 syn region htmlBoldItalic contained start="<em\>" end="</em>"me=e-5 contains=@htmlTop,htmlBoldItalicUnderline | |
127 syn region htmlBoldUnderlineItalic contained start="<i\>" end="</i>"me=e-4 contains=@htmlTop | |
128 syn region htmlBoldUnderlineItalic contained start="<em\>" end="</em>"me=e-5 contains=@htmlTop | |
129 syn region htmlBoldItalicUnderline contained start="<u\>" end="</u>"me=e-4 contains=@htmlTop,htmlBoldUnderlineItalic | |
130 | |
131 syn region htmlUnderline start="<u\>" end="</u>"me=e-4 contains=@htmlTop,htmlUnderlineBold,htmlUnderlineItalic | |
132 syn region htmlUnderlineBold contained start="<b\>" end="</b>"me=e-4 contains=@htmlTop,htmlUnderlineBoldItalic | |
133 syn region htmlUnderlineBold contained start="<strong\>" end="</strong>"me=e-9 contains=@htmlTop,htmlUnderlineBoldItalic | |
134 syn region htmlUnderlineItalic contained start="<i\>" end="</i>"me=e-4 contains=@htmlTop,htmlUnderlineItalicBold | |
135 syn region htmlUnderlineItalic contained start="<em\>" end="</em>"me=e-5 contains=@htmlTop,htmlUnderlineItalicBold | |
136 syn region htmlUnderlineItalicBold contained start="<b\>" end="</b>"me=e-4 contains=@htmlTop | |
137 syn region htmlUnderlineItalicBold contained start="<strong\>" end="</strong>"me=e-9 contains=@htmlTop | |
138 syn region htmlUnderlineBoldItalic contained start="<i\>" end="</i>"me=e-4 contains=@htmlTop | |
139 syn region htmlUnderlineBoldItalic contained start="<em\>" end="</em>"me=e-5 contains=@htmlTop | |
140 | |
141 syn region htmlItalic start="<i\>" end="</i>"me=e-4 contains=@htmlTop,htmlItalicBold,htmlItalicUnderline | |
142 syn region htmlItalic start="<em\>" end="</em>"me=e-5 contains=@htmlTop | |
143 syn region htmlItalicBold contained start="<b\>" end="</b>"me=e-4 contains=@htmlTop,htmlItalicBoldUnderline | |
144 syn region htmlItalicBold contained start="<strong\>" end="</strong>"me=e-9 contains=@htmlTop,htmlItalicBoldUnderline | |
145 syn region htmlItalicBoldUnderline contained start="<u\>" end="</u>"me=e-4 contains=@htmlTop | |
146 syn region htmlItalicUnderline contained start="<u\>" end="</u>"me=e-4 contains=@htmlTop,htmlItalicUnderlineBold | |
147 syn region htmlItalicUnderlineBold contained start="<b\>" end="</b>"me=e-4 contains=@htmlTop | |
148 syn region htmlItalicUnderlineBold contained start="<strong\>" end="</strong>"me=e-9 contains=@htmlTop | |
149 | |
150 syn region htmlLink start="<a\>\_[^>]*\<href\>" end="</a>"me=e-4 contains=@Spell,htmlTag,htmlEndTag,htmlSpecialChar,htmlPreProc,htmlComment,javaScript,@htmlPreproc | |
151 syn region htmlH1 start="<h1\>" end="</h1>"me=e-5 contains=@htmlTop | |
152 syn region htmlH2 start="<h2\>" end="</h2>"me=e-5 contains=@htmlTop | |
153 syn region htmlH3 start="<h3\>" end="</h3>"me=e-5 contains=@htmlTop | |
154 syn region htmlH4 start="<h4\>" end="</h4>"me=e-5 contains=@htmlTop | |
155 syn region htmlH5 start="<h5\>" end="</h5>"me=e-5 contains=@htmlTop | |
156 syn region htmlH6 start="<h6\>" end="</h6>"me=e-5 contains=@htmlTop | |
157 syn region htmlHead start="<head\>" end="</head>"me=e-7 end="<body\>"me=e-5 end="<h[1-6]\>"me=e-3 contains=htmlTag,htmlEndTag,htmlSpecialChar,htmlPreProc,htmlComment,htmlLink,htmlTitle,javaScript,cssStyle,@htmlPreproc | |
158 syn region htmlTitle start="<title\>" end="</title>"me=e-8 contains=htmlTag,htmlEndTag,htmlSpecialChar,htmlPreProc,htmlComment,javaScript,@htmlPreproc | |
159 endif | |
160 | |
161 syn keyword htmlTagName contained noscript | |
162 syn keyword htmlSpecialTagName contained script style | |
163 if main_syntax != 'java' || exists("java_javascript") | |
164 " JAVA SCRIPT | |
165 syn include @htmlJavaScript syntax/javascript.vim | |
166 unlet b:current_syntax | |
167 syn region javaScript start=+<script[^>]*>+ keepend end=+</script>+me=s-1 contains=@htmlJavaScript,htmlCssStyleComment,htmlScriptTag,@htmlPreproc | |
168 syn region htmlScriptTag contained start=+<script+ end=+>+ contains=htmlTagN,htmlString,htmlArg,htmlValue,htmlTagError,htmlEvent | |
169 HtmlHiLink htmlScriptTag htmlTag | |
170 | |
171 " html events (i.e. arguments that include javascript commands) | |
172 if exists("html_extended_events") | |
173 syn region htmlEvent contained start=+\<on\a\+\s*=[\t ]*'+ end=+'+ contains=htmlEventSQ | |
174 syn region htmlEvent contained start=+\<on\a\+\s*=[\t ]*"+ end=+"+ contains=htmlEventDQ | |
175 else | |
176 syn region htmlEvent contained start=+\<on\a\+\s*=[\t ]*'+ end=+'+ keepend contains=htmlEventSQ | |
177 syn region htmlEvent contained start=+\<on\a\+\s*=[\t ]*"+ end=+"+ keepend contains=htmlEventDQ | |
178 endif | |
179 syn region htmlEventSQ contained start=+'+ms=s+1 end=+'+me=s-1 contains=@htmlJavaScript | |
180 syn region htmlEventDQ contained start=+"+ms=s+1 end=+"+me=s-1 contains=@htmlJavaScript | |
181 HtmlHiLink htmlEventSQ htmlEvent | |
182 HtmlHiLink htmlEventDQ htmlEvent | |
183 | |
184 " a javascript expression is used as an arg value | |
185 syn region javaScriptExpression contained start=+&{+ keepend end=+};+ contains=@htmlJavaScript,@htmlPreproc | |
186 endif | |
187 | |
188 if main_syntax != 'java' || exists("java_vb") | |
189 " VB SCRIPT | |
190 syn include @htmlVbScript syntax/vb.vim | |
191 unlet b:current_syntax | |
192 syn region javaScript start=+<script [^>]*language *=[^>]*vbscript[^>]*>+ keepend end=+</script>+me=s-1 contains=@htmlVbScript,htmlCssStyleComment,htmlScriptTag,@htmlPreproc | |
193 endif | |
194 | |
195 syn cluster htmlJavaScript add=@htmlPreproc | |
196 | |
197 if main_syntax != 'java' || exists("java_css") | |
198 " embedded style sheets | |
199 syn keyword htmlArg contained media | |
200 syn include @htmlCss syntax/css.vim | |
201 unlet b:current_syntax | |
202 syn region cssStyle start=+<style+ keepend end=+</style>+ contains=@htmlCss,htmlTag,htmlEndTag,htmlCssStyleComment,@htmlPreproc | |
203 syn match htmlCssStyleComment contained "\(<!--\|-->\)" | |
204 syn region htmlCssDefinition matchgroup=htmlArg start='style="' keepend matchgroup=htmlString end='"' contains=css.*Attr,css.*Prop,cssComment,cssLength,cssColor,cssURL,cssImportant,cssError,cssString,@htmlPreproc | |
205 HtmlHiLink htmlStyleArg htmlString | |
206 endif | |
207 | |
208 if main_syntax == "html" | |
209 " synchronizing (does not always work if a comment includes legal | |
210 " html tags, but doing it right would mean to always start | |
211 " at the first line, which is too slow) | |
212 syn sync match htmlHighlight groupthere NONE "<[/a-zA-Z]" | |
213 syn sync match htmlHighlight groupthere javaScript "<script" | |
214 syn sync match htmlHighlightSkip "^.*['\"].*$" | |
215 syn sync minlines=10 | |
216 endif | |
217 | |
218 " The default highlighting. | |
219 if version >= 508 || !exists("did_html_syn_inits") | |
220 if version < 508 | |
221 let did_html_syn_inits = 1 | |
222 endif | |
223 HtmlHiLink htmlTag Function | |
224 HtmlHiLink htmlEndTag Identifier | |
225 HtmlHiLink htmlArg Type | |
226 HtmlHiLink htmlTagName htmlStatement | |
227 HtmlHiLink htmlSpecialTagName Exception | |
228 HtmlHiLink htmlValue String | |
229 HtmlHiLink htmlSpecialChar Special | |
230 | |
231 if !exists("html_no_rendering") | |
232 HtmlHiLink htmlH1 Title | |
233 HtmlHiLink htmlH2 htmlH1 | |
234 HtmlHiLink htmlH3 htmlH2 | |
235 HtmlHiLink htmlH4 htmlH3 | |
236 HtmlHiLink htmlH5 htmlH4 | |
237 HtmlHiLink htmlH6 htmlH5 | |
238 HtmlHiLink htmlHead PreProc | |
239 HtmlHiLink htmlTitle Title | |
240 HtmlHiLink htmlBoldItalicUnderline htmlBoldUnderlineItalic | |
241 HtmlHiLink htmlUnderlineBold htmlBoldUnderline | |
242 HtmlHiLink htmlUnderlineItalicBold htmlBoldUnderlineItalic | |
243 HtmlHiLink htmlUnderlineBoldItalic htmlBoldUnderlineItalic | |
244 HtmlHiLink htmlItalicUnderline htmlUnderlineItalic | |
245 HtmlHiLink htmlItalicBold htmlBoldItalic | |
246 HtmlHiLink htmlItalicBoldUnderline htmlBoldUnderlineItalic | |
247 HtmlHiLink htmlItalicUnderlineBold htmlBoldUnderlineItalic | |
248 HtmlHiLink htmlLink Underlined | |
249 if !exists("html_my_rendering") | |
250 hi def htmlBold term=bold cterm=bold gui=bold | |
251 hi def htmlBoldUnderline term=bold,underline cterm=bold,underline gui=bold,underline | |
252 hi def htmlBoldItalic term=bold,italic cterm=bold,italic gui=bold,italic | |
253 hi def htmlBoldUnderlineItalic term=bold,italic,underline cterm=bold,italic,underline gui=bold,italic,underline | |
254 hi def htmlUnderline term=underline cterm=underline gui=underline | |
255 hi def htmlUnderlineItalic term=italic,underline cterm=italic,underline gui=italic,underline | |
256 hi def htmlItalic term=italic cterm=italic gui=italic | |
257 endif | |
258 endif | |
259 | |
260 HtmlHiLink htmlPreStmt PreProc | |
261 HtmlHiLink htmlPreError Error | |
262 HtmlHiLink htmlPreProc PreProc | |
263 HtmlHiLink htmlPreAttr String | |
264 HtmlHiLink htmlPreProcAttrName PreProc | |
265 HtmlHiLink htmlPreProcAttrError Error | |
266 HtmlHiLink htmlSpecial Special | |
267 HtmlHiLink htmlSpecialChar Special | |
268 HtmlHiLink htmlString String | |
269 HtmlHiLink htmlStatement Statement | |
270 HtmlHiLink htmlComment Comment | |
271 HtmlHiLink htmlCommentPart Comment | |
272 HtmlHiLink htmlValue String | |
273 HtmlHiLink htmlCommentError htmlError | |
274 HtmlHiLink htmlTagError htmlError | |
275 HtmlHiLink htmlEvent javaScript | |
276 HtmlHiLink htmlError Error | |
277 | |
278 HtmlHiLink javaScript Special | |
279 HtmlHiLink javaScriptExpression javaScript | |
280 HtmlHiLink htmlCssStyleComment Comment | |
281 HtmlHiLink htmlCssDefinition Special | |
282 endif | |
283 | |
284 delcommand HtmlHiLink | |
285 | |
286 let b:current_syntax = "html" | |
287 | |
288 if main_syntax == 'html' | |
289 unlet main_syntax | |
290 endif | |
291 | |
292 " vim: ts=8 |