blob: 36d3c25f3aff43010d793452350f363d0e4dc218 [file] [log] [blame]
Bram Moolenaar071d4272004-06-13 20:20:40 +00001" Vim syntax file
Bram Moolenaarbc2eada2017-01-02 21:27:47 +01002" Language: HTML
Bram Moolenaar9faec4e2021-02-27 16:38:07 +01003" Previous Maintainer: Jorge Maldonado Ventura <jorgesumle@freakspot.net>
Bram Moolenaarbc2eada2017-01-02 21:27:47 +01004" Previous Maintainer: Claudio Fleiner <claudio@fleiner.com>
Bram Moolenaar68563932017-01-10 13:31:15 +01005" Repository: https://notabug.org/jorgesumle/vim-html-syntax
Bram Moolenaar9faec4e2021-02-27 16:38:07 +01006" Last Change: 2021 Feb 25
7" Included patch #7900 to fix comments
Bram Moolenaar01164a62017-11-02 22:58:42 +01008"
Bram Moolenaar071d4272004-06-13 20:20:40 +00009
10" Please check :help html.vim for some comments and a description of the options
11
Bram Moolenaar89bcfda2016-08-30 23:26:57 +020012" quit when a syntax file was already loaded
Bram Moolenaar071d4272004-06-13 20:20:40 +000013if !exists("main_syntax")
Bram Moolenaar89bcfda2016-08-30 23:26:57 +020014 if exists("b:current_syntax")
Bram Moolenaar071d4272004-06-13 20:20:40 +000015 finish
16 endif
17 let main_syntax = 'html'
18endif
19
Bram Moolenaar0c5fa7d2012-10-05 22:26:30 +020020let s:cpo_save = &cpo
21set cpo&vim
22
Bram Moolenaarc81e5e72007-05-05 18:24:42 +000023syntax spell toplevel
Bram Moolenaar071d4272004-06-13 20:20:40 +000024
25syn case ignore
26
27" mark illegal characters
28syn match htmlError "[<>&]"
29
30
31" tags
32syn region htmlString contained start=+"+ end=+"+ contains=htmlSpecialChar,javaScriptExpression,@htmlPreproc
33syn region htmlString contained start=+'+ end=+'+ contains=htmlSpecialChar,javaScriptExpression,@htmlPreproc
34syn match htmlValue contained "=[\t ]*[^'" \t>][^ \t>]*"hs=s+1 contains=javaScriptExpression,@htmlPreproc
Bram Moolenaar9e54a0e2006-04-14 20:42:25 +000035syn region htmlEndTag start=+</+ end=+>+ contains=htmlTagN,htmlTagError
Bram Moolenaar0c5fa7d2012-10-05 22:26:30 +020036syn region htmlTag start=+<[^/]+ end=+>+ fold contains=htmlTagN,htmlString,htmlArg,htmlValue,htmlTagError,htmlEvent,htmlCssDefinition,@htmlPreproc,@htmlArgCluster
Bram Moolenaar071d4272004-06-13 20:20:40 +000037syn match htmlTagN contained +<\s*[-a-zA-Z0-9]\++hs=s+1 contains=htmlTagName,htmlSpecialTagName,@htmlTagNameCluster
38syn match htmlTagN contained +</\s*[-a-zA-Z0-9]\++hs=s+2 contains=htmlTagName,htmlSpecialTagName,@htmlTagNameCluster
39syn match htmlTagError contained "[^>]<"ms=s+1
40
41
42" tag names
43syn keyword htmlTagName contained address applet area a base basefont
44syn keyword htmlTagName contained big blockquote br caption center
45syn keyword htmlTagName contained cite code dd dfn dir div dl dt font
46syn keyword htmlTagName contained form hr html img
47syn keyword htmlTagName contained input isindex kbd li link map menu
48syn keyword htmlTagName contained meta ol option param pre p samp span
Bram Moolenaar01164a62017-11-02 22:58:42 +010049syn keyword htmlTagName contained select small sub sup
Bram Moolenaar071d4272004-06-13 20:20:40 +000050syn keyword htmlTagName contained table td textarea th tr tt ul var xmp
51syn match htmlTagName contained "\<\(b\|i\|u\|h[1-6]\|em\|strong\|head\|body\|title\)\>"
52
53" new html 4.0 tags
54syn keyword htmlTagName contained abbr acronym bdo button col label
Bram Moolenaar01164a62017-11-02 22:58:42 +010055syn keyword htmlTagName contained colgroup fieldset iframe ins legend
Bram Moolenaar071d4272004-06-13 20:20:40 +000056syn keyword htmlTagName contained object optgroup q s tbody tfoot thead
57
Bram Moolenaarbc2eada2017-01-02 21:27:47 +010058" new html 5 tags
Bram Moolenaar690afe12017-01-28 18:34:47 +010059syn keyword htmlTagName contained article aside audio bdi canvas data
Bram Moolenaar5666fcd2019-12-26 14:35:26 +010060syn keyword htmlTagName contained datalist details dialog embed figcaption
61syn keyword htmlTagName contained figure footer header hgroup keygen main
62syn keyword htmlTagName contained mark menuitem meter nav output picture
Bram Moolenaarbc2eada2017-01-02 21:27:47 +010063syn keyword htmlTagName contained progress rb rp rt rtc ruby section
Bram Moolenaarff781552020-03-19 20:37:11 +010064syn keyword htmlTagName contained slot source summary template time track
65syn keyword htmlTagName contained video wbr
Bram Moolenaarbc2eada2017-01-02 21:27:47 +010066
Bram Moolenaar071d4272004-06-13 20:20:40 +000067" legal arg names
68syn keyword htmlArg contained action
69syn keyword htmlArg contained align alink alt archive background bgcolor
70syn keyword htmlArg contained border bordercolor cellpadding
71syn keyword htmlArg contained cellspacing checked class clear code codebase color
72syn keyword htmlArg contained cols colspan content coords enctype face
73syn keyword htmlArg contained gutter height hspace id
74syn keyword htmlArg contained link lowsrc marginheight
75syn keyword htmlArg contained marginwidth maxlength method name prompt
76syn keyword htmlArg contained rel rev rows rowspan scrolling selected shape
77syn keyword htmlArg contained size src start target text type url
78syn keyword htmlArg contained usemap ismap valign value vlink vspace width wrap
79syn match htmlArg contained "\<\(http-equiv\|href\|title\)="me=e-1
80
Bram Moolenaard2f3a8b2018-06-19 14:35:59 +020081" aria attributes
82syn match htmlArg contained "\<\(aria-activedescendant\|aria-atomic\)\>"
83syn match htmlArg contained "\<\(aria-autocomplete\|aria-busy\|aria-checked\)\>"
84syn match htmlArg contained "\<\(aria-colcount\|aria-colindex\|aria-colspan\)\>"
85syn match htmlArg contained "\<\(aria-controls\|aria-current\)\>"
86syn match htmlArg contained "\<\(aria-describedby\|aria-details\)\>"
87syn match htmlArg contained "\<\(aria-disabled\|aria-dropeffect\)\>"
88syn match htmlArg contained "\<\(aria-errormessage\|aria-expanded\)\>"
89syn match htmlArg contained "\<\(aria-flowto\|aria-grabbed\|aria-haspopup\)\>"
90syn match htmlArg contained "\<\(aria-hidden\|aria-invalid\)\>"
91syn match htmlArg contained "\<\(aria-keyshortcuts\|aria-label\)\>"
92syn match htmlArg contained "\<\(aria-labelledby\|aria-level\|aria-live\)\>"
93syn match htmlArg contained "\<\(aria-modal\|aria-multiline\)\>"
94syn match htmlArg contained "\<\(aria-multiselectable\|aria-orientation\)\>"
95syn match htmlArg contained "\<\(aria-owns\|aria-placeholder\|aria-posinset\)\>"
96syn match htmlArg contained "\<\(aria-pressed\|aria-readonly\|aria-relevant\)\>"
97syn match htmlArg contained "\<\(aria-required\|aria-roledescription\)\>"
98syn match htmlArg contained "\<\(aria-rowcount\|aria-rowindex\|aria-rowspan\)\>"
99syn match htmlArg contained "\<\(aria-selected\|aria-setsize\|aria-sort\)\>"
100syn match htmlArg contained "\<\(aria-valuemax\|aria-valuemin\)\>"
101syn match htmlArg contained "\<\(aria-valuenow\|aria-valuetext\)\>"
102syn keyword htmlArg contained role
103
Bram Moolenaar071d4272004-06-13 20:20:40 +0000104" Netscape extensions
105syn keyword htmlTagName contained frame noframes frameset nobr blink
106syn keyword htmlTagName contained layer ilayer nolayer spacer
107syn keyword htmlArg contained frameborder noresize pagex pagey above below
108syn keyword htmlArg contained left top visibility clip id noshade
109syn match htmlArg contained "\<z-index\>"
110
111" Microsoft extensions
112syn keyword htmlTagName contained marquee
113
114" html 4.0 arg names
115syn match htmlArg contained "\<\(accept-charset\|label\)\>"
116syn keyword htmlArg contained abbr accept accesskey axis char charoff charset
117syn keyword htmlArg contained cite classid codetype compact data datetime
118syn keyword htmlArg contained declare defer dir disabled for frame
119syn keyword htmlArg contained headers hreflang lang language longdesc
120syn keyword htmlArg contained multiple nohref nowrap object profile readonly
121syn keyword htmlArg contained rules scheme scope span standby style
122syn keyword htmlArg contained summary tabindex valuetype version
123
Bram Moolenaar68563932017-01-10 13:31:15 +0100124" html 5 arg names
Bram Moolenaar690afe12017-01-28 18:34:47 +0100125syn keyword htmlArg contained allowfullscreen async autocomplete autofocus
126syn keyword htmlArg contained autoplay challenge contenteditable contextmenu
Bram Moolenaar5666fcd2019-12-26 14:35:26 +0100127syn keyword htmlArg contained controls crossorigin default dirname download
128syn keyword htmlArg contained draggable dropzone form formaction formenctype
129syn keyword htmlArg contained formmethod formnovalidate formtarget hidden
130syn keyword htmlArg contained high icon inputmode keytype kind list loop low
131syn keyword htmlArg contained max min minlength muted nonce novalidate open
Bram Moolenaar690afe12017-01-28 18:34:47 +0100132syn keyword htmlArg contained optimum pattern placeholder poster preload
133syn keyword htmlArg contained radiogroup required reversed sandbox spellcheck
134syn keyword htmlArg contained sizes srcset srcdoc srclang step title translate
135syn keyword htmlArg contained typemustmatch
Bram Moolenaar68563932017-01-10 13:31:15 +0100136
Bram Moolenaar071d4272004-06-13 20:20:40 +0000137" special characters
138syn match htmlSpecialChar "&#\=[0-9A-Za-z]\{1,8};"
139
140" Comments (the real ones or the old netscape ones)
141if exists("html_wrong_comments")
Bram Moolenaar0c5fa7d2012-10-05 22:26:30 +0200142 syn region htmlComment start=+<!--+ end=+--\s*>+ contains=@Spell
Bram Moolenaar071d4272004-06-13 20:20:40 +0000143else
Bram Moolenaar9faec4e2021-02-27 16:38:07 +0100144 " The HTML 5.2 syntax 8.2.4.41-42: bogus comment is parser error; browser skips until next &gt;
145 " Note: must stand first to get lesser :syn-priority
146 syn region htmlComment start=+<!+ end=+>+ contains=htmlCommentError
147 " Normal comment opening <!-- ...>
148 syn region htmlComment start=+<!--+ end=+>+ contains=htmlCommentPart,@Spell
149 " Idem 8.2.4.43-44: <!--> and <!---> are parser errors; browser treats as comments
150 syn match htmlComment "<!---\?>" contains=htmlCommentError
151 " Idem 8.2.4.51: any number of consecutive dashes within comment is okay; --> closes comment
152 " Idem 8.2.4.52: closing comment by dash-dash-bang (--!>) is error ignored by parser(!); closes comment
153 syn region htmlCommentPart contained start=+--+ end=+--!\?>+me=e-1 contains=htmlCommentNested,@htmlPreProc,@Spell
154 " Idem 8.2.4.49: opening nested comment <!-- is parser error, ignored by browser, except <!--> is all right
155 syn match htmlCommentNested contained "<!--[^>]"me=e-1
156 syn match htmlCommentNested contained "<!--->"me=e-3
157 syn match htmlCommentNested contained "<!---\?!>"me=e-4
158 syn match htmlCommentError contained "[^><!]"
Bram Moolenaar071d4272004-06-13 20:20:40 +0000159endif
Bram Moolenaar9e54a0e2006-04-14 20:42:25 +0000160syn region htmlComment start=+<!DOCTYPE+ keepend end=+>+
Bram Moolenaar071d4272004-06-13 20:20:40 +0000161
162" server-parsed commands
163syn region htmlPreProc start=+<!--#+ end=+-->+ contains=htmlPreStmt,htmlPreError,htmlPreAttr
164syn match htmlPreStmt contained "<!--#\(config\|echo\|exec\|fsize\|flastmod\|include\|printenv\|set\|if\|elif\|else\|endif\|geoguide\)\>"
165syn match htmlPreError contained "<!--#\S*"ms=s+4
166syn match htmlPreAttr contained "\w\+=[^"]\S\+" contains=htmlPreProcAttrError,htmlPreProcAttrName
167syn region htmlPreAttr contained start=+\w\+="+ skip=+\\\\\|\\"+ end=+"+ contains=htmlPreProcAttrName keepend
168syn match htmlPreProcAttrError contained "\w\+="he=e-1
169syn match htmlPreProcAttrName contained "\(expr\|errmsg\|sizefmt\|timefmt\|var\|cgi\|cmd\|file\|virtual\|value\)="he=e-1
170
171if !exists("html_no_rendering")
172 " rendering
Bram Moolenaarce0842a2005-07-18 21:58:11 +0000173 syn cluster htmlTop contains=@Spell,htmlTag,htmlEndTag,htmlSpecialChar,htmlPreProc,htmlComment,htmlLink,javaScript,@htmlPreproc
Bram Moolenaar071d4272004-06-13 20:20:40 +0000174
Bram Moolenaar62e1bb42019-04-08 16:25:07 +0200175 syn region htmlStrike start="<del\>" end="</del\_s*>"me=s-1 contains=@htmlTop
176 syn region htmlStrike start="<strike\>" end="</strike\_s*>"me=s-1 contains=@htmlTop
Bram Moolenaar01164a62017-11-02 22:58:42 +0100177
Bram Moolenaar62e1bb42019-04-08 16:25:07 +0200178 syn region htmlBold start="<b\>" end="</b\_s*>"me=s-1 contains=@htmlTop,htmlBoldUnderline,htmlBoldItalic
179 syn region htmlBold start="<strong\>" end="</strong\_s*>"me=s-1 contains=@htmlTop,htmlBoldUnderline,htmlBoldItalic
180 syn region htmlBoldUnderline contained start="<u\>" end="</u\_s*>"me=s-1 contains=@htmlTop,htmlBoldUnderlineItalic
181 syn region htmlBoldItalic contained start="<i\>" end="</i\_s*>"me=s-1 contains=@htmlTop,htmlBoldItalicUnderline
182 syn region htmlBoldItalic contained start="<em\>" end="</em\_s*>"me=s-1 contains=@htmlTop,htmlBoldItalicUnderline
183 syn region htmlBoldUnderlineItalic contained start="<i\>" end="</i\_s*>"me=s-1 contains=@htmlTop
184 syn region htmlBoldUnderlineItalic contained start="<em\>" end="</em\_s*>"me=s-1 contains=@htmlTop
185 syn region htmlBoldItalicUnderline contained start="<u\>" end="</u\_s*>"me=s-1 contains=@htmlTop,htmlBoldUnderlineItalic
Bram Moolenaar071d4272004-06-13 20:20:40 +0000186
Bram Moolenaar62e1bb42019-04-08 16:25:07 +0200187 syn region htmlUnderline start="<u\>" end="</u\_s*>"me=s-1 contains=@htmlTop,htmlUnderlineBold,htmlUnderlineItalic
188 syn region htmlUnderlineBold contained start="<b\>" end="</b\_s*>"me=s-1 contains=@htmlTop,htmlUnderlineBoldItalic
189 syn region htmlUnderlineBold contained start="<strong\>" end="</strong\_s*>"me=s-1 contains=@htmlTop,htmlUnderlineBoldItalic
190 syn region htmlUnderlineItalic contained start="<i\>" end="</i\_s*>"me=s-1 contains=@htmlTop,htmlUnderlineItalicBold
191 syn region htmlUnderlineItalic contained start="<em\>" end="</em\_s*>"me=s-1 contains=@htmlTop,htmlUnderlineItalicBold
192 syn region htmlUnderlineItalicBold contained start="<b\>" end="</b\_s*>"me=s-1 contains=@htmlTop
193 syn region htmlUnderlineItalicBold contained start="<strong\>" end="</strong\_s*>"me=s-1 contains=@htmlTop
194 syn region htmlUnderlineBoldItalic contained start="<i\>" end="</i\_s*>"me=s-1 contains=@htmlTop
195 syn region htmlUnderlineBoldItalic contained start="<em\>" end="</em\_s*>"me=s-1 contains=@htmlTop
Bram Moolenaar071d4272004-06-13 20:20:40 +0000196
Bram Moolenaar62e1bb42019-04-08 16:25:07 +0200197 syn region htmlItalic start="<i\>" end="</i\_s*>"me=s-1 contains=@htmlTop,htmlItalicBold,htmlItalicUnderline
198 syn region htmlItalic start="<em\>" end="</em\_s*>"me=s-1 contains=@htmlTop
199 syn region htmlItalicBold contained start="<b\>" end="</b\_s*>"me=s-1 contains=@htmlTop,htmlItalicBoldUnderline
200 syn region htmlItalicBold contained start="<strong\>" end="</strong\_s*>"me=s-1 contains=@htmlTop,htmlItalicBoldUnderline
201 syn region htmlItalicBoldUnderline contained start="<u\>" end="</u\_s*>"me=s-1 contains=@htmlTop
202 syn region htmlItalicUnderline contained start="<u\>" end="</u\_s*>"me=s-1 contains=@htmlTop,htmlItalicUnderlineBold
203 syn region htmlItalicUnderlineBold contained start="<b\>" end="</b\_s*>"me=s-1 contains=@htmlTop
204 syn region htmlItalicUnderlineBold contained start="<strong\>" end="</strong\_s*>"me=s-1 contains=@htmlTop
Bram Moolenaar071d4272004-06-13 20:20:40 +0000205
Bram Moolenaar0c5fa7d2012-10-05 22:26:30 +0200206 syn match htmlLeadingSpace "^\s\+" contained
Bram Moolenaar62e1bb42019-04-08 16:25:07 +0200207 syn region htmlLink start="<a\>\_[^>]*\<href\>" end="</a\_s*>"me=s-1 contains=@Spell,htmlTag,htmlEndTag,htmlSpecialChar,htmlPreProc,htmlComment,htmlLeadingSpace,javaScript,@htmlPreproc
208 syn region htmlH1 start="<h1\>" end="</h1\_s*>"me=s-1 contains=@htmlTop
209 syn region htmlH2 start="<h2\>" end="</h2\_s*>"me=s-1 contains=@htmlTop
210 syn region htmlH3 start="<h3\>" end="</h3\_s*>"me=s-1 contains=@htmlTop
211 syn region htmlH4 start="<h4\>" end="</h4\_s*>"me=s-1 contains=@htmlTop
212 syn region htmlH5 start="<h5\>" end="</h5\_s*>"me=s-1 contains=@htmlTop
213 syn region htmlH6 start="<h6\>" end="</h6\_s*>"me=s-1 contains=@htmlTop
214 syn region htmlHead start="<head\>" end="</head\_s*>"me=s-1 end="<body\>"me=s-1 end="<h[1-6]\>"me=s-1 contains=htmlTag,htmlEndTag,htmlSpecialChar,htmlPreProc,htmlComment,htmlLink,htmlTitle,javaScript,cssStyle,@htmlPreproc
215 syn region htmlTitle start="<title\>" end="</title\_s*>"me=s-1 contains=htmlTag,htmlEndTag,htmlSpecialChar,htmlPreProc,htmlComment,javaScript,@htmlPreproc
Bram Moolenaar071d4272004-06-13 20:20:40 +0000216endif
217
Bram Moolenaar9e54a0e2006-04-14 20:42:25 +0000218syn keyword htmlTagName contained noscript
Bram Moolenaar071d4272004-06-13 20:20:40 +0000219syn keyword htmlSpecialTagName contained script style
220if main_syntax != 'java' || exists("java_javascript")
221 " JAVA SCRIPT
Bram Moolenaar9e54a0e2006-04-14 20:42:25 +0000222 syn include @htmlJavaScript syntax/javascript.vim
Bram Moolenaar071d4272004-06-13 20:20:40 +0000223 unlet b:current_syntax
Bram Moolenaar8feef4f2015-01-07 16:57:10 +0100224 syn region javaScript start=+<script\_[^>]*>+ keepend end=+</script\_[^>]*>+me=s-1 contains=@htmlJavaScript,htmlCssStyleComment,htmlScriptTag,@htmlPreproc
Bram Moolenaar0c5fa7d2012-10-05 22:26:30 +0200225 syn region htmlScriptTag contained start=+<script+ end=+>+ fold contains=htmlTagN,htmlString,htmlArg,htmlValue,htmlTagError,htmlEvent
Bram Moolenaarf37506f2016-08-31 22:22:10 +0200226 hi def link htmlScriptTag htmlTag
Bram Moolenaar071d4272004-06-13 20:20:40 +0000227
228 " html events (i.e. arguments that include javascript commands)
229 if exists("html_extended_events")
Bram Moolenaar9e54a0e2006-04-14 20:42:25 +0000230 syn region htmlEvent contained start=+\<on\a\+\s*=[\t ]*'+ end=+'+ contains=htmlEventSQ
231 syn region htmlEvent contained start=+\<on\a\+\s*=[\t ]*"+ end=+"+ contains=htmlEventDQ
Bram Moolenaar071d4272004-06-13 20:20:40 +0000232 else
Bram Moolenaar9e54a0e2006-04-14 20:42:25 +0000233 syn region htmlEvent contained start=+\<on\a\+\s*=[\t ]*'+ end=+'+ keepend contains=htmlEventSQ
234 syn region htmlEvent contained start=+\<on\a\+\s*=[\t ]*"+ end=+"+ keepend contains=htmlEventDQ
Bram Moolenaar071d4272004-06-13 20:20:40 +0000235 endif
Bram Moolenaar9e54a0e2006-04-14 20:42:25 +0000236 syn region htmlEventSQ contained start=+'+ms=s+1 end=+'+me=s-1 contains=@htmlJavaScript
237 syn region htmlEventDQ contained start=+"+ms=s+1 end=+"+me=s-1 contains=@htmlJavaScript
Bram Moolenaarf37506f2016-08-31 22:22:10 +0200238 hi def link htmlEventSQ htmlEvent
239 hi def link htmlEventDQ htmlEvent
Bram Moolenaar071d4272004-06-13 20:20:40 +0000240
241 " a javascript expression is used as an arg value
242 syn region javaScriptExpression contained start=+&{+ keepend end=+};+ contains=@htmlJavaScript,@htmlPreproc
243endif
244
245if main_syntax != 'java' || exists("java_vb")
246 " VB SCRIPT
Bram Moolenaar9e54a0e2006-04-14 20:42:25 +0000247 syn include @htmlVbScript syntax/vb.vim
Bram Moolenaar071d4272004-06-13 20:20:40 +0000248 unlet b:current_syntax
Bram Moolenaar8feef4f2015-01-07 16:57:10 +0100249 syn region javaScript start=+<script \_[^>]*language *=\_[^>]*vbscript\_[^>]*>+ keepend end=+</script\_[^>]*>+me=s-1 contains=@htmlVbScript,htmlCssStyleComment,htmlScriptTag,@htmlPreproc
Bram Moolenaar071d4272004-06-13 20:20:40 +0000250endif
251
252syn cluster htmlJavaScript add=@htmlPreproc
253
254if main_syntax != 'java' || exists("java_css")
255 " embedded style sheets
Bram Moolenaar9e54a0e2006-04-14 20:42:25 +0000256 syn keyword htmlArg contained media
257 syn include @htmlCss syntax/css.vim
Bram Moolenaar071d4272004-06-13 20:20:40 +0000258 unlet b:current_syntax
259 syn region cssStyle start=+<style+ keepend end=+</style>+ contains=@htmlCss,htmlTag,htmlEndTag,htmlCssStyleComment,@htmlPreproc
260 syn match htmlCssStyleComment contained "\(<!--\|-->\)"
261 syn region htmlCssDefinition matchgroup=htmlArg start='style="' keepend matchgroup=htmlString end='"' contains=css.*Attr,css.*Prop,cssComment,cssLength,cssColor,cssURL,cssImportant,cssError,cssString,@htmlPreproc
Bram Moolenaarf37506f2016-08-31 22:22:10 +0200262 hi def link htmlStyleArg htmlString
Bram Moolenaar071d4272004-06-13 20:20:40 +0000263endif
264
265if main_syntax == "html"
266 " synchronizing (does not always work if a comment includes legal
267 " html tags, but doing it right would mean to always start
268 " at the first line, which is too slow)
269 syn sync match htmlHighlight groupthere NONE "<[/a-zA-Z]"
270 syn sync match htmlHighlight groupthere javaScript "<script"
271 syn sync match htmlHighlightSkip "^.*['\"].*$"
272 syn sync minlines=10
273endif
274
275" The default highlighting.
Bram Moolenaarf37506f2016-08-31 22:22:10 +0200276hi def link htmlTag Function
277hi def link htmlEndTag Identifier
278hi def link htmlArg Type
279hi def link htmlTagName htmlStatement
280hi def link htmlSpecialTagName Exception
281hi def link htmlValue String
282hi def link htmlSpecialChar Special
Bram Moolenaar89bcfda2016-08-30 23:26:57 +0200283
284if !exists("html_no_rendering")
Bram Moolenaarf37506f2016-08-31 22:22:10 +0200285 hi def link htmlH1 Title
286 hi def link htmlH2 htmlH1
287 hi def link htmlH3 htmlH2
288 hi def link htmlH4 htmlH3
289 hi def link htmlH5 htmlH4
290 hi def link htmlH6 htmlH5
291 hi def link htmlHead PreProc
292 hi def link htmlTitle Title
293 hi def link htmlBoldItalicUnderline htmlBoldUnderlineItalic
294 hi def link htmlUnderlineBold htmlBoldUnderline
295 hi def link htmlUnderlineItalicBold htmlBoldUnderlineItalic
296 hi def link htmlUnderlineBoldItalic htmlBoldUnderlineItalic
297 hi def link htmlItalicUnderline htmlUnderlineItalic
298 hi def link htmlItalicBold htmlBoldItalic
299 hi def link htmlItalicBoldUnderline htmlBoldUnderlineItalic
300 hi def link htmlItalicUnderlineBold htmlBoldUnderlineItalic
301 hi def link htmlLink Underlined
302 hi def link htmlLeadingSpace None
Bram Moolenaar89bcfda2016-08-30 23:26:57 +0200303 if !exists("html_my_rendering")
304 hi def htmlBold term=bold cterm=bold gui=bold
305 hi def htmlBoldUnderline term=bold,underline cterm=bold,underline gui=bold,underline
306 hi def htmlBoldItalic term=bold,italic cterm=bold,italic gui=bold,italic
307 hi def htmlBoldUnderlineItalic term=bold,italic,underline cterm=bold,italic,underline gui=bold,italic,underline
308 hi def htmlUnderline term=underline cterm=underline gui=underline
309 hi def htmlUnderlineItalic term=italic,underline cterm=italic,underline gui=italic,underline
310 hi def htmlItalic term=italic cterm=italic gui=italic
Bram Moolenaar01164a62017-11-02 22:58:42 +0100311 if v:version > 800 || v:version == 800 && has("patch1038")
312 hi def htmlStrike term=strikethrough cterm=strikethrough gui=strikethrough
313 else
314 hi def htmlStrike term=underline cterm=underline gui=underline
315 endif
Bram Moolenaar071d4272004-06-13 20:20:40 +0000316 endif
Bram Moolenaar071d4272004-06-13 20:20:40 +0000317endif
318
Bram Moolenaarf37506f2016-08-31 22:22:10 +0200319hi def link htmlPreStmt PreProc
320hi def link htmlPreError Error
321hi def link htmlPreProc PreProc
322hi def link htmlPreAttr String
323hi def link htmlPreProcAttrName PreProc
324hi def link htmlPreProcAttrError Error
325hi def link htmlSpecial Special
326hi def link htmlSpecialChar Special
327hi def link htmlString String
328hi def link htmlStatement Statement
329hi def link htmlComment Comment
330hi def link htmlCommentPart Comment
331hi def link htmlValue String
Bram Moolenaar9faec4e2021-02-27 16:38:07 +0100332hi def link htmlCommentNested htmlCommentError
Bram Moolenaarf37506f2016-08-31 22:22:10 +0200333hi def link htmlCommentError htmlError
334hi def link htmlTagError htmlError
335hi def link htmlEvent javaScript
336hi def link htmlError Error
Bram Moolenaar89bcfda2016-08-30 23:26:57 +0200337
Bram Moolenaarf37506f2016-08-31 22:22:10 +0200338hi def link javaScript Special
339hi def link javaScriptExpression javaScript
340hi def link htmlCssStyleComment Comment
341hi def link htmlCssDefinition Special
Bram Moolenaar071d4272004-06-13 20:20:40 +0000342
343let b:current_syntax = "html"
344
345if main_syntax == 'html'
346 unlet main_syntax
347endif
348
Bram Moolenaar0c5fa7d2012-10-05 22:26:30 +0200349let &cpo = s:cpo_save
350unlet s:cpo_save
Bram Moolenaar071d4272004-06-13 20:20:40 +0000351" vim: ts=8