blob: 8ccb5574e77cb5dbb6eb71c95318e6876dd3298d [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 Moolenaarc8cdf0f2021-03-13 13:28:13 +01006" Last Change: 2021 Mar 02
Bram Moolenaar9faec4e2021-02-27 16:38:07 +01007" Included patch #7900 to fix comments
Bram Moolenaarc8cdf0f2021-03-13 13:28:13 +01008" Included patch #7916 to fix a few more things
Bram Moolenaar01164a62017-11-02 22:58:42 +01009"
Bram Moolenaar071d4272004-06-13 20:20:40 +000010
11" Please check :help html.vim for some comments and a description of the options
12
Bram Moolenaar89bcfda2016-08-30 23:26:57 +020013" quit when a syntax file was already loaded
Bram Moolenaar071d4272004-06-13 20:20:40 +000014if !exists("main_syntax")
Bram Moolenaar89bcfda2016-08-30 23:26:57 +020015 if exists("b:current_syntax")
Bram Moolenaar071d4272004-06-13 20:20:40 +000016 finish
17 endif
18 let main_syntax = 'html'
19endif
20
Bram Moolenaar0c5fa7d2012-10-05 22:26:30 +020021let s:cpo_save = &cpo
22set cpo&vim
23
Bram Moolenaarc81e5e72007-05-05 18:24:42 +000024syntax spell toplevel
Bram Moolenaar071d4272004-06-13 20:20:40 +000025
26syn case ignore
27
28" mark illegal characters
29syn match htmlError "[<>&]"
30
31
32" tags
33syn region htmlString contained start=+"+ end=+"+ contains=htmlSpecialChar,javaScriptExpression,@htmlPreproc
34syn region htmlString contained start=+'+ end=+'+ contains=htmlSpecialChar,javaScriptExpression,@htmlPreproc
35syn match htmlValue contained "=[\t ]*[^'" \t>][^ \t>]*"hs=s+1 contains=javaScriptExpression,@htmlPreproc
Bram Moolenaar9e54a0e2006-04-14 20:42:25 +000036syn region htmlEndTag start=+</+ end=+>+ contains=htmlTagN,htmlTagError
Bram Moolenaar0c5fa7d2012-10-05 22:26:30 +020037syn region htmlTag start=+<[^/]+ end=+>+ fold contains=htmlTagN,htmlString,htmlArg,htmlValue,htmlTagError,htmlEvent,htmlCssDefinition,@htmlPreproc,@htmlArgCluster
Bram Moolenaar071d4272004-06-13 20:20:40 +000038syn match htmlTagN contained +<\s*[-a-zA-Z0-9]\++hs=s+1 contains=htmlTagName,htmlSpecialTagName,@htmlTagNameCluster
39syn match htmlTagN contained +</\s*[-a-zA-Z0-9]\++hs=s+2 contains=htmlTagName,htmlSpecialTagName,@htmlTagNameCluster
40syn match htmlTagError contained "[^>]<"ms=s+1
41
42
43" tag names
44syn keyword htmlTagName contained address applet area a base basefont
45syn keyword htmlTagName contained big blockquote br caption center
46syn keyword htmlTagName contained cite code dd dfn dir div dl dt font
47syn keyword htmlTagName contained form hr html img
48syn keyword htmlTagName contained input isindex kbd li link map menu
49syn keyword htmlTagName contained meta ol option param pre p samp span
Bram Moolenaar01164a62017-11-02 22:58:42 +010050syn keyword htmlTagName contained select small sub sup
Bram Moolenaar071d4272004-06-13 20:20:40 +000051syn keyword htmlTagName contained table td textarea th tr tt ul var xmp
52syn match htmlTagName contained "\<\(b\|i\|u\|h[1-6]\|em\|strong\|head\|body\|title\)\>"
53
54" new html 4.0 tags
55syn keyword htmlTagName contained abbr acronym bdo button col label
Bram Moolenaar01164a62017-11-02 22:58:42 +010056syn keyword htmlTagName contained colgroup fieldset iframe ins legend
Bram Moolenaar071d4272004-06-13 20:20:40 +000057syn keyword htmlTagName contained object optgroup q s tbody tfoot thead
58
Bram Moolenaarbc2eada2017-01-02 21:27:47 +010059" new html 5 tags
Bram Moolenaar690afe12017-01-28 18:34:47 +010060syn keyword htmlTagName contained article aside audio bdi canvas data
Bram Moolenaar5666fcd2019-12-26 14:35:26 +010061syn keyword htmlTagName contained datalist details dialog embed figcaption
62syn keyword htmlTagName contained figure footer header hgroup keygen main
63syn keyword htmlTagName contained mark menuitem meter nav output picture
Bram Moolenaarbc2eada2017-01-02 21:27:47 +010064syn keyword htmlTagName contained progress rb rp rt rtc ruby section
Bram Moolenaarff781552020-03-19 20:37:11 +010065syn keyword htmlTagName contained slot source summary template time track
66syn keyword htmlTagName contained video wbr
Bram Moolenaarbc2eada2017-01-02 21:27:47 +010067
Bram Moolenaar071d4272004-06-13 20:20:40 +000068" legal arg names
69syn keyword htmlArg contained action
70syn keyword htmlArg contained align alink alt archive background bgcolor
71syn keyword htmlArg contained border bordercolor cellpadding
72syn keyword htmlArg contained cellspacing checked class clear code codebase color
73syn keyword htmlArg contained cols colspan content coords enctype face
74syn keyword htmlArg contained gutter height hspace id
75syn keyword htmlArg contained link lowsrc marginheight
76syn keyword htmlArg contained marginwidth maxlength method name prompt
77syn keyword htmlArg contained rel rev rows rowspan scrolling selected shape
78syn keyword htmlArg contained size src start target text type url
79syn keyword htmlArg contained usemap ismap valign value vlink vspace width wrap
80syn match htmlArg contained "\<\(http-equiv\|href\|title\)="me=e-1
81
Bram Moolenaard2f3a8b2018-06-19 14:35:59 +020082" aria attributes
Bram Moolenaarc8cdf0f2021-03-13 13:28:13 +010083exe 'syn match htmlArg contained "\<aria-\%(' . join([
84 \ 'activedescendant', 'atomic', 'autocomplete', 'busy', 'checked', 'colcount',
85 \ 'colindex', 'colspan', 'controls', 'current', 'describedby', 'details',
86 \ 'disabled', 'dropeffect', 'errormessage', 'expanded', 'flowto', 'grabbed',
87 \ 'haspopup', 'hidden', 'invalid', 'keyshortcuts', 'label', 'labelledby', 'level',
88 \ 'live', 'modal', 'multiline', 'multiselectable', 'orientation', 'owns',
89 \ 'placeholder', 'posinset', 'pressed', 'readonly', 'relevant', 'required',
90 \ 'roledescription', 'rowcount', 'rowindex', 'rowspan', 'selected', 'setsize',
91 \ 'sort', 'valuemax', 'valuemin', 'valuenow', 'valuetext'
92 \ ], '\|') . '\)\>"'
Bram Moolenaard2f3a8b2018-06-19 14:35:59 +020093syn keyword htmlArg contained role
94
Bram Moolenaar071d4272004-06-13 20:20:40 +000095" Netscape extensions
96syn keyword htmlTagName contained frame noframes frameset nobr blink
97syn keyword htmlTagName contained layer ilayer nolayer spacer
98syn keyword htmlArg contained frameborder noresize pagex pagey above below
99syn keyword htmlArg contained left top visibility clip id noshade
100syn match htmlArg contained "\<z-index\>"
101
102" Microsoft extensions
103syn keyword htmlTagName contained marquee
104
105" html 4.0 arg names
106syn match htmlArg contained "\<\(accept-charset\|label\)\>"
107syn keyword htmlArg contained abbr accept accesskey axis char charoff charset
108syn keyword htmlArg contained cite classid codetype compact data datetime
109syn keyword htmlArg contained declare defer dir disabled for frame
110syn keyword htmlArg contained headers hreflang lang language longdesc
111syn keyword htmlArg contained multiple nohref nowrap object profile readonly
112syn keyword htmlArg contained rules scheme scope span standby style
113syn keyword htmlArg contained summary tabindex valuetype version
114
Bram Moolenaar68563932017-01-10 13:31:15 +0100115" html 5 arg names
Bram Moolenaar690afe12017-01-28 18:34:47 +0100116syn keyword htmlArg contained allowfullscreen async autocomplete autofocus
117syn keyword htmlArg contained autoplay challenge contenteditable contextmenu
Bram Moolenaar5666fcd2019-12-26 14:35:26 +0100118syn keyword htmlArg contained controls crossorigin default dirname download
119syn keyword htmlArg contained draggable dropzone form formaction formenctype
120syn keyword htmlArg contained formmethod formnovalidate formtarget hidden
121syn keyword htmlArg contained high icon inputmode keytype kind list loop low
122syn keyword htmlArg contained max min minlength muted nonce novalidate open
Bram Moolenaar690afe12017-01-28 18:34:47 +0100123syn keyword htmlArg contained optimum pattern placeholder poster preload
124syn keyword htmlArg contained radiogroup required reversed sandbox spellcheck
125syn keyword htmlArg contained sizes srcset srcdoc srclang step title translate
126syn keyword htmlArg contained typemustmatch
Bram Moolenaar68563932017-01-10 13:31:15 +0100127
Bram Moolenaar071d4272004-06-13 20:20:40 +0000128" special characters
129syn match htmlSpecialChar "&#\=[0-9A-Za-z]\{1,8};"
130
131" Comments (the real ones or the old netscape ones)
132if exists("html_wrong_comments")
Bram Moolenaarc8cdf0f2021-03-13 13:28:13 +0100133 syn region htmlComment start=+<!--+ end=+--\s*>+ contains=@Spell
Bram Moolenaar071d4272004-06-13 20:20:40 +0000134else
Bram Moolenaarc8cdf0f2021-03-13 13:28:13 +0100135 " The HTML 5.2 syntax 8.2.4.41: bogus comment is parser error; browser skips until next &gt
136 syn region htmlComment start=+<!+ end=+>+ contains=htmlCommentError keepend
137 " Idem 8.2.4.42,51: Comment starts with <!-- and ends with -->
138 " Idem 8.2.4.43,44: Except <!--> and <!---> are parser errors
139 " Idem 8.2.4.52: dash-dash-bang (--!>) is error ignored by parser, also closes comment
140 syn region htmlComment matchgroup=htmlComment start=+<!--\%(-\?>\)\@!+ end=+--!\?>+ contains=htmlCommentNested,@htmlPreProc,@Spell keepend
141 " Idem 8.2.4.49: nested comment is parser error, except <!--> is all right
142 syn match htmlCommentNested contained "<!-->\@!"
143 syn match htmlCommentError contained "[^><!]"
Bram Moolenaar071d4272004-06-13 20:20:40 +0000144endif
Bram Moolenaarc8cdf0f2021-03-13 13:28:13 +0100145syn region htmlComment start=+<!DOCTYPE+ end=+>+ keepend
Bram Moolenaar071d4272004-06-13 20:20:40 +0000146
147" server-parsed commands
148syn region htmlPreProc start=+<!--#+ end=+-->+ contains=htmlPreStmt,htmlPreError,htmlPreAttr
149syn match htmlPreStmt contained "<!--#\(config\|echo\|exec\|fsize\|flastmod\|include\|printenv\|set\|if\|elif\|else\|endif\|geoguide\)\>"
150syn match htmlPreError contained "<!--#\S*"ms=s+4
151syn match htmlPreAttr contained "\w\+=[^"]\S\+" contains=htmlPreProcAttrError,htmlPreProcAttrName
152syn region htmlPreAttr contained start=+\w\+="+ skip=+\\\\\|\\"+ end=+"+ contains=htmlPreProcAttrName keepend
153syn match htmlPreProcAttrError contained "\w\+="he=e-1
154syn match htmlPreProcAttrName contained "\(expr\|errmsg\|sizefmt\|timefmt\|var\|cgi\|cmd\|file\|virtual\|value\)="he=e-1
155
156if !exists("html_no_rendering")
157 " rendering
Bram Moolenaarce0842a2005-07-18 21:58:11 +0000158 syn cluster htmlTop contains=@Spell,htmlTag,htmlEndTag,htmlSpecialChar,htmlPreProc,htmlComment,htmlLink,javaScript,@htmlPreproc
Bram Moolenaar071d4272004-06-13 20:20:40 +0000159
Bram Moolenaar62e1bb42019-04-08 16:25:07 +0200160 syn region htmlStrike start="<del\>" end="</del\_s*>"me=s-1 contains=@htmlTop
161 syn region htmlStrike start="<strike\>" end="</strike\_s*>"me=s-1 contains=@htmlTop
Bram Moolenaar01164a62017-11-02 22:58:42 +0100162
Bram Moolenaar62e1bb42019-04-08 16:25:07 +0200163 syn region htmlBold start="<b\>" end="</b\_s*>"me=s-1 contains=@htmlTop,htmlBoldUnderline,htmlBoldItalic
164 syn region htmlBold start="<strong\>" end="</strong\_s*>"me=s-1 contains=@htmlTop,htmlBoldUnderline,htmlBoldItalic
165 syn region htmlBoldUnderline contained start="<u\>" end="</u\_s*>"me=s-1 contains=@htmlTop,htmlBoldUnderlineItalic
166 syn region htmlBoldItalic contained start="<i\>" end="</i\_s*>"me=s-1 contains=@htmlTop,htmlBoldItalicUnderline
167 syn region htmlBoldItalic contained start="<em\>" end="</em\_s*>"me=s-1 contains=@htmlTop,htmlBoldItalicUnderline
168 syn region htmlBoldUnderlineItalic contained start="<i\>" end="</i\_s*>"me=s-1 contains=@htmlTop
169 syn region htmlBoldUnderlineItalic contained start="<em\>" end="</em\_s*>"me=s-1 contains=@htmlTop
170 syn region htmlBoldItalicUnderline contained start="<u\>" end="</u\_s*>"me=s-1 contains=@htmlTop,htmlBoldUnderlineItalic
Bram Moolenaar071d4272004-06-13 20:20:40 +0000171
Bram Moolenaar62e1bb42019-04-08 16:25:07 +0200172 syn region htmlUnderline start="<u\>" end="</u\_s*>"me=s-1 contains=@htmlTop,htmlUnderlineBold,htmlUnderlineItalic
173 syn region htmlUnderlineBold contained start="<b\>" end="</b\_s*>"me=s-1 contains=@htmlTop,htmlUnderlineBoldItalic
174 syn region htmlUnderlineBold contained start="<strong\>" end="</strong\_s*>"me=s-1 contains=@htmlTop,htmlUnderlineBoldItalic
175 syn region htmlUnderlineItalic contained start="<i\>" end="</i\_s*>"me=s-1 contains=@htmlTop,htmlUnderlineItalicBold
176 syn region htmlUnderlineItalic contained start="<em\>" end="</em\_s*>"me=s-1 contains=@htmlTop,htmlUnderlineItalicBold
177 syn region htmlUnderlineItalicBold contained start="<b\>" end="</b\_s*>"me=s-1 contains=@htmlTop
178 syn region htmlUnderlineItalicBold contained start="<strong\>" end="</strong\_s*>"me=s-1 contains=@htmlTop
179 syn region htmlUnderlineBoldItalic contained start="<i\>" end="</i\_s*>"me=s-1 contains=@htmlTop
180 syn region htmlUnderlineBoldItalic contained start="<em\>" end="</em\_s*>"me=s-1 contains=@htmlTop
Bram Moolenaar071d4272004-06-13 20:20:40 +0000181
Bram Moolenaar62e1bb42019-04-08 16:25:07 +0200182 syn region htmlItalic start="<i\>" end="</i\_s*>"me=s-1 contains=@htmlTop,htmlItalicBold,htmlItalicUnderline
183 syn region htmlItalic start="<em\>" end="</em\_s*>"me=s-1 contains=@htmlTop
184 syn region htmlItalicBold contained start="<b\>" end="</b\_s*>"me=s-1 contains=@htmlTop,htmlItalicBoldUnderline
185 syn region htmlItalicBold contained start="<strong\>" end="</strong\_s*>"me=s-1 contains=@htmlTop,htmlItalicBoldUnderline
186 syn region htmlItalicBoldUnderline contained start="<u\>" end="</u\_s*>"me=s-1 contains=@htmlTop
187 syn region htmlItalicUnderline contained start="<u\>" end="</u\_s*>"me=s-1 contains=@htmlTop,htmlItalicUnderlineBold
188 syn region htmlItalicUnderlineBold contained start="<b\>" end="</b\_s*>"me=s-1 contains=@htmlTop
189 syn region htmlItalicUnderlineBold contained start="<strong\>" end="</strong\_s*>"me=s-1 contains=@htmlTop
Bram Moolenaar071d4272004-06-13 20:20:40 +0000190
Bram Moolenaar0c5fa7d2012-10-05 22:26:30 +0200191 syn match htmlLeadingSpace "^\s\+" contained
Bram Moolenaar62e1bb42019-04-08 16:25:07 +0200192 syn region htmlLink start="<a\>\_[^>]*\<href\>" end="</a\_s*>"me=s-1 contains=@Spell,htmlTag,htmlEndTag,htmlSpecialChar,htmlPreProc,htmlComment,htmlLeadingSpace,javaScript,@htmlPreproc
193 syn region htmlH1 start="<h1\>" end="</h1\_s*>"me=s-1 contains=@htmlTop
194 syn region htmlH2 start="<h2\>" end="</h2\_s*>"me=s-1 contains=@htmlTop
195 syn region htmlH3 start="<h3\>" end="</h3\_s*>"me=s-1 contains=@htmlTop
196 syn region htmlH4 start="<h4\>" end="</h4\_s*>"me=s-1 contains=@htmlTop
197 syn region htmlH5 start="<h5\>" end="</h5\_s*>"me=s-1 contains=@htmlTop
198 syn region htmlH6 start="<h6\>" end="</h6\_s*>"me=s-1 contains=@htmlTop
199 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
200 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 +0000201endif
202
Bram Moolenaar9e54a0e2006-04-14 20:42:25 +0000203syn keyword htmlTagName contained noscript
Bram Moolenaar071d4272004-06-13 20:20:40 +0000204syn keyword htmlSpecialTagName contained script style
205if main_syntax != 'java' || exists("java_javascript")
206 " JAVA SCRIPT
Bram Moolenaar9e54a0e2006-04-14 20:42:25 +0000207 syn include @htmlJavaScript syntax/javascript.vim
Bram Moolenaar071d4272004-06-13 20:20:40 +0000208 unlet b:current_syntax
Bram Moolenaar8feef4f2015-01-07 16:57:10 +0100209 syn region javaScript start=+<script\_[^>]*>+ keepend end=+</script\_[^>]*>+me=s-1 contains=@htmlJavaScript,htmlCssStyleComment,htmlScriptTag,@htmlPreproc
Bram Moolenaar0c5fa7d2012-10-05 22:26:30 +0200210 syn region htmlScriptTag contained start=+<script+ end=+>+ fold contains=htmlTagN,htmlString,htmlArg,htmlValue,htmlTagError,htmlEvent
Bram Moolenaarf37506f2016-08-31 22:22:10 +0200211 hi def link htmlScriptTag htmlTag
Bram Moolenaar071d4272004-06-13 20:20:40 +0000212
213 " html events (i.e. arguments that include javascript commands)
214 if exists("html_extended_events")
Bram Moolenaar9e54a0e2006-04-14 20:42:25 +0000215 syn region htmlEvent contained start=+\<on\a\+\s*=[\t ]*'+ end=+'+ contains=htmlEventSQ
216 syn region htmlEvent contained start=+\<on\a\+\s*=[\t ]*"+ end=+"+ contains=htmlEventDQ
Bram Moolenaar071d4272004-06-13 20:20:40 +0000217 else
Bram Moolenaar9e54a0e2006-04-14 20:42:25 +0000218 syn region htmlEvent contained start=+\<on\a\+\s*=[\t ]*'+ end=+'+ keepend contains=htmlEventSQ
219 syn region htmlEvent contained start=+\<on\a\+\s*=[\t ]*"+ end=+"+ keepend contains=htmlEventDQ
Bram Moolenaar071d4272004-06-13 20:20:40 +0000220 endif
Bram Moolenaar9e54a0e2006-04-14 20:42:25 +0000221 syn region htmlEventSQ contained start=+'+ms=s+1 end=+'+me=s-1 contains=@htmlJavaScript
222 syn region htmlEventDQ contained start=+"+ms=s+1 end=+"+me=s-1 contains=@htmlJavaScript
Bram Moolenaarf37506f2016-08-31 22:22:10 +0200223 hi def link htmlEventSQ htmlEvent
224 hi def link htmlEventDQ htmlEvent
Bram Moolenaar071d4272004-06-13 20:20:40 +0000225
226 " a javascript expression is used as an arg value
227 syn region javaScriptExpression contained start=+&{+ keepend end=+};+ contains=@htmlJavaScript,@htmlPreproc
228endif
229
230if main_syntax != 'java' || exists("java_vb")
231 " VB SCRIPT
Bram Moolenaar9e54a0e2006-04-14 20:42:25 +0000232 syn include @htmlVbScript syntax/vb.vim
Bram Moolenaar071d4272004-06-13 20:20:40 +0000233 unlet b:current_syntax
Bram Moolenaar8feef4f2015-01-07 16:57:10 +0100234 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 +0000235endif
236
237syn cluster htmlJavaScript add=@htmlPreproc
238
239if main_syntax != 'java' || exists("java_css")
240 " embedded style sheets
Bram Moolenaar9e54a0e2006-04-14 20:42:25 +0000241 syn keyword htmlArg contained media
242 syn include @htmlCss syntax/css.vim
Bram Moolenaar071d4272004-06-13 20:20:40 +0000243 unlet b:current_syntax
244 syn region cssStyle start=+<style+ keepend end=+</style>+ contains=@htmlCss,htmlTag,htmlEndTag,htmlCssStyleComment,@htmlPreproc
245 syn match htmlCssStyleComment contained "\(<!--\|-->\)"
246 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 +0200247 hi def link htmlStyleArg htmlString
Bram Moolenaar071d4272004-06-13 20:20:40 +0000248endif
249
250if main_syntax == "html"
251 " synchronizing (does not always work if a comment includes legal
252 " html tags, but doing it right would mean to always start
253 " at the first line, which is too slow)
254 syn sync match htmlHighlight groupthere NONE "<[/a-zA-Z]"
255 syn sync match htmlHighlight groupthere javaScript "<script"
256 syn sync match htmlHighlightSkip "^.*['\"].*$"
257 syn sync minlines=10
258endif
259
260" The default highlighting.
Bram Moolenaarf37506f2016-08-31 22:22:10 +0200261hi def link htmlTag Function
262hi def link htmlEndTag Identifier
263hi def link htmlArg Type
264hi def link htmlTagName htmlStatement
265hi def link htmlSpecialTagName Exception
Bram Moolenaarc8cdf0f2021-03-13 13:28:13 +0100266hi def link htmlValue String
Bram Moolenaarf37506f2016-08-31 22:22:10 +0200267hi def link htmlSpecialChar Special
Bram Moolenaar89bcfda2016-08-30 23:26:57 +0200268
269if !exists("html_no_rendering")
Bram Moolenaarf37506f2016-08-31 22:22:10 +0200270 hi def link htmlH1 Title
271 hi def link htmlH2 htmlH1
272 hi def link htmlH3 htmlH2
273 hi def link htmlH4 htmlH3
274 hi def link htmlH5 htmlH4
275 hi def link htmlH6 htmlH5
276 hi def link htmlHead PreProc
277 hi def link htmlTitle Title
278 hi def link htmlBoldItalicUnderline htmlBoldUnderlineItalic
279 hi def link htmlUnderlineBold htmlBoldUnderline
280 hi def link htmlUnderlineItalicBold htmlBoldUnderlineItalic
281 hi def link htmlUnderlineBoldItalic htmlBoldUnderlineItalic
282 hi def link htmlItalicUnderline htmlUnderlineItalic
283 hi def link htmlItalicBold htmlBoldItalic
284 hi def link htmlItalicBoldUnderline htmlBoldUnderlineItalic
285 hi def link htmlItalicUnderlineBold htmlBoldUnderlineItalic
286 hi def link htmlLink Underlined
287 hi def link htmlLeadingSpace None
Bram Moolenaar89bcfda2016-08-30 23:26:57 +0200288 if !exists("html_my_rendering")
289 hi def htmlBold term=bold cterm=bold gui=bold
290 hi def htmlBoldUnderline term=bold,underline cterm=bold,underline gui=bold,underline
291 hi def htmlBoldItalic term=bold,italic cterm=bold,italic gui=bold,italic
292 hi def htmlBoldUnderlineItalic term=bold,italic,underline cterm=bold,italic,underline gui=bold,italic,underline
293 hi def htmlUnderline term=underline cterm=underline gui=underline
294 hi def htmlUnderlineItalic term=italic,underline cterm=italic,underline gui=italic,underline
295 hi def htmlItalic term=italic cterm=italic gui=italic
Bram Moolenaar01164a62017-11-02 22:58:42 +0100296 if v:version > 800 || v:version == 800 && has("patch1038")
297 hi def htmlStrike term=strikethrough cterm=strikethrough gui=strikethrough
298 else
299 hi def htmlStrike term=underline cterm=underline gui=underline
300 endif
Bram Moolenaar071d4272004-06-13 20:20:40 +0000301 endif
Bram Moolenaar071d4272004-06-13 20:20:40 +0000302endif
303
Bram Moolenaarf37506f2016-08-31 22:22:10 +0200304hi def link htmlPreStmt PreProc
305hi def link htmlPreError Error
306hi def link htmlPreProc PreProc
307hi def link htmlPreAttr String
308hi def link htmlPreProcAttrName PreProc
309hi def link htmlPreProcAttrError Error
Bram Moolenaarf37506f2016-08-31 22:22:10 +0200310hi def link htmlString String
311hi def link htmlStatement Statement
312hi def link htmlComment Comment
Bram Moolenaarc8cdf0f2021-03-13 13:28:13 +0100313hi def link htmlCommentNested htmlError
Bram Moolenaarf37506f2016-08-31 22:22:10 +0200314hi def link htmlCommentError htmlError
315hi def link htmlTagError htmlError
316hi def link htmlEvent javaScript
317hi def link htmlError Error
Bram Moolenaar89bcfda2016-08-30 23:26:57 +0200318
Bram Moolenaarf37506f2016-08-31 22:22:10 +0200319hi def link javaScript Special
320hi def link javaScriptExpression javaScript
321hi def link htmlCssStyleComment Comment
322hi def link htmlCssDefinition Special
Bram Moolenaar071d4272004-06-13 20:20:40 +0000323
324let b:current_syntax = "html"
325
326if main_syntax == 'html'
327 unlet main_syntax
328endif
329
Bram Moolenaar0c5fa7d2012-10-05 22:26:30 +0200330let &cpo = s:cpo_save
331unlet s:cpo_save
Bram Moolenaar071d4272004-06-13 20:20:40 +0000332" vim: ts=8