xref: /vim-8.2.3635/runtime/syntax/html.vim (revision c8cdf0f8)
1071d4279SBram Moolenaar" Vim syntax file
2071d4279SBram Moolenaar" Language:             HTML
39faec4e3SBram Moolenaar" Previous Maintainer:  Jorge Maldonado Ventura <[email protected]>
4bc2eada5SBram Moolenaar" Previous Maintainer:  Claudio Fleiner <[email protected]>
568563937SBram Moolenaar" Repository:           https://notabug.org/jorgesumle/vim-html-syntax
6*c8cdf0f8SBram Moolenaar" Last Change:          2021 Mar 02
79faec4e3SBram Moolenaar"			Included patch #7900 to fix comments
8*c8cdf0f8SBram Moolenaar"			Included patch #7916 to fix a few more things
901164a65SBram Moolenaar"
10071d4279SBram Moolenaar
11071d4279SBram Moolenaar" Please check :help html.vim for some comments and a description of the options
12071d4279SBram Moolenaar
1389bcfda6SBram Moolenaar" quit when a syntax file was already loaded
14071d4279SBram Moolenaarif !exists("main_syntax")
1589bcfda6SBram Moolenaar  if exists("b:current_syntax")
16071d4279SBram Moolenaar    finish
17071d4279SBram Moolenaar  endif
18071d4279SBram Moolenaar  let main_syntax = 'html'
19071d4279SBram Moolenaarendif
20071d4279SBram Moolenaar
210c5fa7d7SBram Moolenaarlet s:cpo_save = &cpo
220c5fa7d7SBram Moolenaarset cpo&vim
230c5fa7d7SBram Moolenaar
24c81e5e79SBram Moolenaarsyntax spell toplevel
25071d4279SBram Moolenaar
26071d4279SBram Moolenaarsyn case ignore
27071d4279SBram Moolenaar
28071d4279SBram Moolenaar" mark illegal characters
29071d4279SBram Moolenaarsyn match htmlError "[<>&]"
30071d4279SBram Moolenaar
31071d4279SBram Moolenaar
32071d4279SBram Moolenaar" tags
33071d4279SBram Moolenaarsyn region  htmlString   contained start=+"+ end=+"+ contains=htmlSpecialChar,javaScriptExpression,@htmlPreproc
34071d4279SBram Moolenaarsyn region  htmlString   contained start=+'+ end=+'+ contains=htmlSpecialChar,javaScriptExpression,@htmlPreproc
35071d4279SBram Moolenaarsyn match   htmlValue    contained "=[\t ]*[^'" \t>][^ \t>]*"hs=s+1   contains=javaScriptExpression,@htmlPreproc
36ce0842a6SBram Moolenaarsyn region  htmlEndTag             start=+</+      end=+>+ contains=htmlTagN,htmlTagError
370c5fa7d7SBram Moolenaarsyn region  htmlTag                start=+<[^/]+   end=+>+ fold contains=htmlTagN,htmlString,htmlArg,htmlValue,htmlTagError,htmlEvent,htmlCssDefinition,@htmlPreproc,@htmlArgCluster
38071d4279SBram Moolenaarsyn match   htmlTagN     contained +<\s*[-a-zA-Z0-9]\++hs=s+1 contains=htmlTagName,htmlSpecialTagName,@htmlTagNameCluster
39071d4279SBram Moolenaarsyn match   htmlTagN     contained +</\s*[-a-zA-Z0-9]\++hs=s+2 contains=htmlTagName,htmlSpecialTagName,@htmlTagNameCluster
40071d4279SBram Moolenaarsyn match   htmlTagError contained "[^>]<"ms=s+1
41071d4279SBram Moolenaar
42071d4279SBram Moolenaar
43071d4279SBram Moolenaar" tag names
44071d4279SBram Moolenaarsyn keyword htmlTagName contained address applet area a base basefont
45071d4279SBram Moolenaarsyn keyword htmlTagName contained big blockquote br caption center
46071d4279SBram Moolenaarsyn keyword htmlTagName contained cite code dd dfn dir div dl dt font
47071d4279SBram Moolenaarsyn keyword htmlTagName contained form hr html img
48071d4279SBram Moolenaarsyn keyword htmlTagName contained input isindex kbd li link map menu
49071d4279SBram Moolenaarsyn keyword htmlTagName contained meta ol option param pre p samp span
5001164a65SBram Moolenaarsyn keyword htmlTagName contained select small sub sup
51071d4279SBram Moolenaarsyn keyword htmlTagName contained table td textarea th tr tt ul var xmp
52071d4279SBram Moolenaarsyn match htmlTagName contained "\<\(b\|i\|u\|h[1-6]\|em\|strong\|head\|body\|title\)\>"
53071d4279SBram Moolenaar
54071d4279SBram Moolenaar" new html 4.0 tags
55071d4279SBram Moolenaarsyn keyword htmlTagName contained abbr acronym bdo button col label
5601164a65SBram Moolenaarsyn keyword htmlTagName contained colgroup fieldset iframe ins legend
57071d4279SBram Moolenaarsyn keyword htmlTagName contained object optgroup q s tbody tfoot thead
58071d4279SBram Moolenaar
59bc2eada5SBram Moolenaar" new html 5 tags
60690afe1fSBram Moolenaarsyn keyword htmlTagName contained article aside audio bdi canvas data
615666fcd0SBram Moolenaarsyn keyword htmlTagName contained datalist details dialog embed figcaption
625666fcd0SBram Moolenaarsyn keyword htmlTagName contained figure footer header hgroup keygen main
635666fcd0SBram Moolenaarsyn keyword htmlTagName contained mark menuitem meter nav output picture
64bc2eada5SBram Moolenaarsyn keyword htmlTagName contained progress rb rp rt rtc ruby section
65ff78155aSBram Moolenaarsyn keyword htmlTagName contained slot source summary template time track
66ff78155aSBram Moolenaarsyn keyword htmlTagName contained video wbr
67bc2eada5SBram Moolenaar
68071d4279SBram Moolenaar" legal arg names
69071d4279SBram Moolenaarsyn keyword htmlArg contained action
70071d4279SBram Moolenaarsyn keyword htmlArg contained align alink alt archive background bgcolor
71071d4279SBram Moolenaarsyn keyword htmlArg contained border bordercolor cellpadding
72071d4279SBram Moolenaarsyn keyword htmlArg contained cellspacing checked class clear code codebase color
73071d4279SBram Moolenaarsyn keyword htmlArg contained cols colspan content coords enctype face
74071d4279SBram Moolenaarsyn keyword htmlArg contained gutter height hspace id
75071d4279SBram Moolenaarsyn keyword htmlArg contained link lowsrc marginheight
76071d4279SBram Moolenaarsyn keyword htmlArg contained marginwidth maxlength method name prompt
77071d4279SBram Moolenaarsyn keyword htmlArg contained rel rev rows rowspan scrolling selected shape
78071d4279SBram Moolenaarsyn keyword htmlArg contained size src start target text type url
79071d4279SBram Moolenaarsyn keyword htmlArg contained usemap ismap valign value vlink vspace width wrap
80071d4279SBram Moolenaarsyn match   htmlArg contained "\<\(http-equiv\|href\|title\)="me=e-1
81071d4279SBram Moolenaar
82d2f3a8b8SBram Moolenaar" aria attributes
83*c8cdf0f8SBram Moolenaarexe 'syn match htmlArg contained "\<aria-\%(' . join([
84*c8cdf0f8SBram Moolenaar    \ 'activedescendant', 'atomic', 'autocomplete', 'busy', 'checked', 'colcount',
85*c8cdf0f8SBram Moolenaar    \ 'colindex', 'colspan', 'controls', 'current', 'describedby', 'details',
86*c8cdf0f8SBram Moolenaar    \ 'disabled', 'dropeffect', 'errormessage', 'expanded', 'flowto', 'grabbed',
87*c8cdf0f8SBram Moolenaar    \ 'haspopup', 'hidden', 'invalid', 'keyshortcuts', 'label', 'labelledby', 'level',
88*c8cdf0f8SBram Moolenaar    \ 'live', 'modal', 'multiline', 'multiselectable', 'orientation', 'owns',
89*c8cdf0f8SBram Moolenaar    \ 'placeholder', 'posinset', 'pressed', 'readonly', 'relevant', 'required',
90*c8cdf0f8SBram Moolenaar    \ 'roledescription', 'rowcount', 'rowindex', 'rowspan', 'selected', 'setsize',
91*c8cdf0f8SBram Moolenaar    \ 'sort', 'valuemax', 'valuemin', 'valuenow', 'valuetext'
92*c8cdf0f8SBram Moolenaar    \ ], '\|') . '\)\>"'
93d2f3a8b8SBram Moolenaarsyn keyword htmlArg contained role
94d2f3a8b8SBram Moolenaar
95071d4279SBram Moolenaar" Netscape extensions
96071d4279SBram Moolenaarsyn keyword htmlTagName contained frame noframes frameset nobr blink
97071d4279SBram Moolenaarsyn keyword htmlTagName contained layer ilayer nolayer spacer
98071d4279SBram Moolenaarsyn keyword htmlArg     contained frameborder noresize pagex pagey above below
99071d4279SBram Moolenaarsyn keyword htmlArg     contained left top visibility clip id noshade
100071d4279SBram Moolenaarsyn match   htmlArg     contained "\<z-index\>"
101071d4279SBram Moolenaar
102071d4279SBram Moolenaar" Microsoft extensions
103071d4279SBram Moolenaarsyn keyword htmlTagName contained marquee
104071d4279SBram Moolenaar
105071d4279SBram Moolenaar" html 4.0 arg names
106071d4279SBram Moolenaarsyn match   htmlArg contained "\<\(accept-charset\|label\)\>"
107071d4279SBram Moolenaarsyn keyword htmlArg contained abbr accept accesskey axis char charoff charset
108071d4279SBram Moolenaarsyn keyword htmlArg contained cite classid codetype compact data datetime
109071d4279SBram Moolenaarsyn keyword htmlArg contained declare defer dir disabled for frame
110071d4279SBram Moolenaarsyn keyword htmlArg contained headers hreflang lang language longdesc
111071d4279SBram Moolenaarsyn keyword htmlArg contained multiple nohref nowrap object profile readonly
112071d4279SBram Moolenaarsyn keyword htmlArg contained rules scheme scope span standby style
113071d4279SBram Moolenaarsyn keyword htmlArg contained summary tabindex valuetype version
114071d4279SBram Moolenaar
11568563937SBram Moolenaar" html 5 arg names
116690afe1fSBram Moolenaarsyn keyword htmlArg contained allowfullscreen async autocomplete autofocus
117690afe1fSBram Moolenaarsyn keyword htmlArg contained autoplay challenge contenteditable contextmenu
1185666fcd0SBram Moolenaarsyn keyword htmlArg contained controls crossorigin default dirname download
1195666fcd0SBram Moolenaarsyn keyword htmlArg contained draggable dropzone form formaction formenctype
1205666fcd0SBram Moolenaarsyn keyword htmlArg contained formmethod formnovalidate formtarget hidden
1215666fcd0SBram Moolenaarsyn keyword htmlArg contained high icon inputmode keytype kind list loop low
1225666fcd0SBram Moolenaarsyn keyword htmlArg contained max min minlength muted nonce novalidate open
123690afe1fSBram Moolenaarsyn keyword htmlArg contained optimum pattern placeholder poster preload
124690afe1fSBram Moolenaarsyn keyword htmlArg contained radiogroup required reversed sandbox spellcheck
125690afe1fSBram Moolenaarsyn keyword htmlArg contained sizes srcset srcdoc srclang step title translate
126690afe1fSBram Moolenaarsyn keyword htmlArg contained typemustmatch
12768563937SBram Moolenaar
128071d4279SBram Moolenaar" special characters
129071d4279SBram Moolenaarsyn match htmlSpecialChar "&#\=[0-9A-Za-z]\{1,8};"
130071d4279SBram Moolenaar
131071d4279SBram Moolenaar" Comments (the real ones or the old netscape ones)
132071d4279SBram Moolenaarif exists("html_wrong_comments")
1330c5fa7d7SBram Moolenaar  syn region htmlComment        start=+<!--+    end=+--\s*>+    contains=@Spell
134071d4279SBram Moolenaarelse
135*c8cdf0f8SBram Moolenaar  " The HTML 5.2 syntax 8.2.4.41: bogus comment is parser error; browser skips until next &gt
136*c8cdf0f8SBram Moolenaar  syn region htmlComment        start=+<!+      end=+>+         contains=htmlCommentError keepend
137*c8cdf0f8SBram Moolenaar  " Idem 8.2.4.42,51: Comment starts with <!-- and ends with -->
138*c8cdf0f8SBram Moolenaar  " Idem 8.2.4.43,44: Except <!--> and <!---> are parser errors
139*c8cdf0f8SBram Moolenaar  " Idem 8.2.4.52: dash-dash-bang (--!>) is error ignored by parser, also closes comment
140*c8cdf0f8SBram Moolenaar  syn region htmlComment matchgroup=htmlComment start=+<!--\%(-\?>\)\@!+        end=+--!\?>+    contains=htmlCommentNested,@htmlPreProc,@Spell keepend
141*c8cdf0f8SBram Moolenaar  " Idem 8.2.4.49: nested comment is parser error, except <!--> is all right
142*c8cdf0f8SBram Moolenaar  syn match htmlCommentNested contained "<!-->\@!"
143071d4279SBram Moolenaar  syn match htmlCommentError  contained "[^><!]"
144071d4279SBram Moolenaarendif
145*c8cdf0f8SBram Moolenaarsyn region htmlComment  start=+<!DOCTYPE+       end=+>+ keepend
146071d4279SBram Moolenaar
147071d4279SBram Moolenaar" server-parsed commands
148071d4279SBram Moolenaarsyn region htmlPreProc start=+<!--#+ end=+-->+ contains=htmlPreStmt,htmlPreError,htmlPreAttr
149071d4279SBram Moolenaarsyn match htmlPreStmt contained "<!--#\(config\|echo\|exec\|fsize\|flastmod\|include\|printenv\|set\|if\|elif\|else\|endif\|geoguide\)\>"
150071d4279SBram Moolenaarsyn match htmlPreError contained "<!--#\S*"ms=s+4
151071d4279SBram Moolenaarsyn match htmlPreAttr contained "\w\+=[^"]\S\+" contains=htmlPreProcAttrError,htmlPreProcAttrName
152071d4279SBram Moolenaarsyn region htmlPreAttr contained start=+\w\+="+ skip=+\\\\\|\\"+ end=+"+ contains=htmlPreProcAttrName keepend
153071d4279SBram Moolenaarsyn match htmlPreProcAttrError contained "\w\+="he=e-1
154071d4279SBram Moolenaarsyn match htmlPreProcAttrName contained "\(expr\|errmsg\|sizefmt\|timefmt\|var\|cgi\|cmd\|file\|virtual\|value\)="he=e-1
155071d4279SBram Moolenaar
156071d4279SBram Moolenaarif !exists("html_no_rendering")
157071d4279SBram Moolenaar  " rendering
158ce0842a6SBram Moolenaar  syn cluster htmlTop contains=@Spell,htmlTag,htmlEndTag,htmlSpecialChar,htmlPreProc,htmlComment,htmlLink,javaScript,@htmlPreproc
159071d4279SBram Moolenaar
16062e1bb4aSBram Moolenaar  syn region htmlStrike start="<del\>" end="</del\_s*>"me=s-1 contains=@htmlTop
16162e1bb4aSBram Moolenaar  syn region htmlStrike start="<strike\>" end="</strike\_s*>"me=s-1 contains=@htmlTop
16201164a65SBram Moolenaar
16362e1bb4aSBram Moolenaar  syn region htmlBold start="<b\>" end="</b\_s*>"me=s-1 contains=@htmlTop,htmlBoldUnderline,htmlBoldItalic
16462e1bb4aSBram Moolenaar  syn region htmlBold start="<strong\>" end="</strong\_s*>"me=s-1 contains=@htmlTop,htmlBoldUnderline,htmlBoldItalic
16562e1bb4aSBram Moolenaar  syn region htmlBoldUnderline contained start="<u\>" end="</u\_s*>"me=s-1 contains=@htmlTop,htmlBoldUnderlineItalic
16662e1bb4aSBram Moolenaar  syn region htmlBoldItalic contained start="<i\>" end="</i\_s*>"me=s-1 contains=@htmlTop,htmlBoldItalicUnderline
16762e1bb4aSBram Moolenaar  syn region htmlBoldItalic contained start="<em\>" end="</em\_s*>"me=s-1 contains=@htmlTop,htmlBoldItalicUnderline
16862e1bb4aSBram Moolenaar  syn region htmlBoldUnderlineItalic contained start="<i\>" end="</i\_s*>"me=s-1 contains=@htmlTop
16962e1bb4aSBram Moolenaar  syn region htmlBoldUnderlineItalic contained start="<em\>" end="</em\_s*>"me=s-1 contains=@htmlTop
17062e1bb4aSBram Moolenaar  syn region htmlBoldItalicUnderline contained start="<u\>" end="</u\_s*>"me=s-1 contains=@htmlTop,htmlBoldUnderlineItalic
171071d4279SBram Moolenaar
17262e1bb4aSBram Moolenaar  syn region htmlUnderline start="<u\>" end="</u\_s*>"me=s-1 contains=@htmlTop,htmlUnderlineBold,htmlUnderlineItalic
17362e1bb4aSBram Moolenaar  syn region htmlUnderlineBold contained start="<b\>" end="</b\_s*>"me=s-1 contains=@htmlTop,htmlUnderlineBoldItalic
17462e1bb4aSBram Moolenaar  syn region htmlUnderlineBold contained start="<strong\>" end="</strong\_s*>"me=s-1 contains=@htmlTop,htmlUnderlineBoldItalic
17562e1bb4aSBram Moolenaar  syn region htmlUnderlineItalic contained start="<i\>" end="</i\_s*>"me=s-1 contains=@htmlTop,htmlUnderlineItalicBold
17662e1bb4aSBram Moolenaar  syn region htmlUnderlineItalic contained start="<em\>" end="</em\_s*>"me=s-1 contains=@htmlTop,htmlUnderlineItalicBold
17762e1bb4aSBram Moolenaar  syn region htmlUnderlineItalicBold contained start="<b\>" end="</b\_s*>"me=s-1 contains=@htmlTop
17862e1bb4aSBram Moolenaar  syn region htmlUnderlineItalicBold contained start="<strong\>" end="</strong\_s*>"me=s-1 contains=@htmlTop
17962e1bb4aSBram Moolenaar  syn region htmlUnderlineBoldItalic contained start="<i\>" end="</i\_s*>"me=s-1 contains=@htmlTop
18062e1bb4aSBram Moolenaar  syn region htmlUnderlineBoldItalic contained start="<em\>" end="</em\_s*>"me=s-1 contains=@htmlTop
181071d4279SBram Moolenaar
18262e1bb4aSBram Moolenaar  syn region htmlItalic start="<i\>" end="</i\_s*>"me=s-1 contains=@htmlTop,htmlItalicBold,htmlItalicUnderline
18362e1bb4aSBram Moolenaar  syn region htmlItalic start="<em\>" end="</em\_s*>"me=s-1 contains=@htmlTop
18462e1bb4aSBram Moolenaar  syn region htmlItalicBold contained start="<b\>" end="</b\_s*>"me=s-1 contains=@htmlTop,htmlItalicBoldUnderline
18562e1bb4aSBram Moolenaar  syn region htmlItalicBold contained start="<strong\>" end="</strong\_s*>"me=s-1 contains=@htmlTop,htmlItalicBoldUnderline
18662e1bb4aSBram Moolenaar  syn region htmlItalicBoldUnderline contained start="<u\>" end="</u\_s*>"me=s-1 contains=@htmlTop
18762e1bb4aSBram Moolenaar  syn region htmlItalicUnderline contained start="<u\>" end="</u\_s*>"me=s-1 contains=@htmlTop,htmlItalicUnderlineBold
18862e1bb4aSBram Moolenaar  syn region htmlItalicUnderlineBold contained start="<b\>" end="</b\_s*>"me=s-1 contains=@htmlTop
18962e1bb4aSBram Moolenaar  syn region htmlItalicUnderlineBold contained start="<strong\>" end="</strong\_s*>"me=s-1 contains=@htmlTop
190071d4279SBram Moolenaar
1910c5fa7d7SBram Moolenaar  syn match htmlLeadingSpace "^\s\+" contained
19262e1bb4aSBram Moolenaar  syn region htmlLink start="<a\>\_[^>]*\<href\>" end="</a\_s*>"me=s-1 contains=@Spell,htmlTag,htmlEndTag,htmlSpecialChar,htmlPreProc,htmlComment,htmlLeadingSpace,javaScript,@htmlPreproc
19362e1bb4aSBram Moolenaar  syn region htmlH1 start="<h1\>" end="</h1\_s*>"me=s-1 contains=@htmlTop
19462e1bb4aSBram Moolenaar  syn region htmlH2 start="<h2\>" end="</h2\_s*>"me=s-1 contains=@htmlTop
19562e1bb4aSBram Moolenaar  syn region htmlH3 start="<h3\>" end="</h3\_s*>"me=s-1 contains=@htmlTop
19662e1bb4aSBram Moolenaar  syn region htmlH4 start="<h4\>" end="</h4\_s*>"me=s-1 contains=@htmlTop
19762e1bb4aSBram Moolenaar  syn region htmlH5 start="<h5\>" end="</h5\_s*>"me=s-1 contains=@htmlTop
19862e1bb4aSBram Moolenaar  syn region htmlH6 start="<h6\>" end="</h6\_s*>"me=s-1 contains=@htmlTop
19962e1bb4aSBram Moolenaar  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
20062e1bb4aSBram Moolenaar  syn region htmlTitle start="<title\>" end="</title\_s*>"me=s-1 contains=htmlTag,htmlEndTag,htmlSpecialChar,htmlPreProc,htmlComment,javaScript,@htmlPreproc
201071d4279SBram Moolenaarendif
202071d4279SBram Moolenaar
203071d4279SBram Moolenaarsyn keyword htmlTagName         contained noscript
204071d4279SBram Moolenaarsyn keyword htmlSpecialTagName  contained script style
205071d4279SBram Moolenaarif main_syntax != 'java' || exists("java_javascript")
206071d4279SBram Moolenaar  " JAVA SCRIPT
2079e54a0e7SBram Moolenaar  syn include @htmlJavaScript syntax/javascript.vim
208071d4279SBram Moolenaar  unlet b:current_syntax
2098feef4ffSBram Moolenaar  syn region  javaScript start=+<script\_[^>]*>+ keepend end=+</script\_[^>]*>+me=s-1 contains=@htmlJavaScript,htmlCssStyleComment,htmlScriptTag,@htmlPreproc
2100c5fa7d7SBram Moolenaar  syn region  htmlScriptTag     contained start=+<script+ end=+>+ fold contains=htmlTagN,htmlString,htmlArg,htmlValue,htmlTagError,htmlEvent
211f37506f6SBram Moolenaar  hi def link htmlScriptTag htmlTag
212071d4279SBram Moolenaar
213071d4279SBram Moolenaar  " html events (i.e. arguments that include javascript commands)
214071d4279SBram Moolenaar  if exists("html_extended_events")
215071d4279SBram Moolenaar    syn region htmlEvent        contained start=+\<on\a\+\s*=[\t ]*'+ end=+'+ contains=htmlEventSQ
216071d4279SBram Moolenaar    syn region htmlEvent        contained start=+\<on\a\+\s*=[\t ]*"+ end=+"+ contains=htmlEventDQ
217071d4279SBram Moolenaar  else
218071d4279SBram Moolenaar    syn region htmlEvent        contained start=+\<on\a\+\s*=[\t ]*'+ end=+'+ keepend contains=htmlEventSQ
219071d4279SBram Moolenaar    syn region htmlEvent        contained start=+\<on\a\+\s*=[\t ]*"+ end=+"+ keepend contains=htmlEventDQ
220071d4279SBram Moolenaar  endif
221071d4279SBram Moolenaar  syn region htmlEventSQ        contained start=+'+ms=s+1 end=+'+me=s-1 contains=@htmlJavaScript
222071d4279SBram Moolenaar  syn region htmlEventDQ        contained start=+"+ms=s+1 end=+"+me=s-1 contains=@htmlJavaScript
223f37506f6SBram Moolenaar  hi def link htmlEventSQ htmlEvent
224f37506f6SBram Moolenaar  hi def link htmlEventDQ htmlEvent
225071d4279SBram Moolenaar
226071d4279SBram Moolenaar  " a javascript expression is used as an arg value
227071d4279SBram Moolenaar  syn region  javaScriptExpression contained start=+&{+ keepend end=+};+ contains=@htmlJavaScript,@htmlPreproc
228071d4279SBram Moolenaarendif
229071d4279SBram Moolenaar
230071d4279SBram Moolenaarif main_syntax != 'java' || exists("java_vb")
231071d4279SBram Moolenaar  " VB SCRIPT
2329e54a0e7SBram Moolenaar  syn include @htmlVbScript syntax/vb.vim
233071d4279SBram Moolenaar  unlet b:current_syntax
2348feef4ffSBram Moolenaar  syn region  javaScript start=+<script \_[^>]*language *=\_[^>]*vbscript\_[^>]*>+ keepend end=+</script\_[^>]*>+me=s-1 contains=@htmlVbScript,htmlCssStyleComment,htmlScriptTag,@htmlPreproc
235071d4279SBram Moolenaarendif
236071d4279SBram Moolenaar
237071d4279SBram Moolenaarsyn cluster htmlJavaScript      add=@htmlPreproc
238071d4279SBram Moolenaar
239071d4279SBram Moolenaarif main_syntax != 'java' || exists("java_css")
240071d4279SBram Moolenaar  " embedded style sheets
241071d4279SBram Moolenaar  syn keyword htmlArg           contained media
2429e54a0e7SBram Moolenaar  syn include @htmlCss syntax/css.vim
243071d4279SBram Moolenaar  unlet b:current_syntax
244071d4279SBram Moolenaar  syn region cssStyle start=+<style+ keepend end=+</style>+ contains=@htmlCss,htmlTag,htmlEndTag,htmlCssStyleComment,@htmlPreproc
245071d4279SBram Moolenaar  syn match htmlCssStyleComment contained "\(<!--\|-->\)"
246071d4279SBram Moolenaar  syn region htmlCssDefinition matchgroup=htmlArg start='style="' keepend matchgroup=htmlString end='"' contains=css.*Attr,css.*Prop,cssComment,cssLength,cssColor,cssURL,cssImportant,cssError,cssString,@htmlPreproc
247f37506f6SBram Moolenaar  hi def link htmlStyleArg htmlString
248071d4279SBram Moolenaarendif
249071d4279SBram Moolenaar
250071d4279SBram Moolenaarif main_syntax == "html"
251071d4279SBram Moolenaar  " synchronizing (does not always work if a comment includes legal
252071d4279SBram Moolenaar  " html tags, but doing it right would mean to always start
253071d4279SBram Moolenaar  " at the first line, which is too slow)
254071d4279SBram Moolenaar  syn sync match htmlHighlight groupthere NONE "<[/a-zA-Z]"
255071d4279SBram Moolenaar  syn sync match htmlHighlight groupthere javaScript "<script"
256071d4279SBram Moolenaar  syn sync match htmlHighlightSkip "^.*['\"].*$"
257071d4279SBram Moolenaar  syn sync minlines=10
258071d4279SBram Moolenaarendif
259071d4279SBram Moolenaar
260071d4279SBram Moolenaar" The default highlighting.
261f37506f6SBram Moolenaarhi def link htmlTag                     Function
262f37506f6SBram Moolenaarhi def link htmlEndTag                  Identifier
263f37506f6SBram Moolenaarhi def link htmlArg                     Type
264f37506f6SBram Moolenaarhi def link htmlTagName                 htmlStatement
265f37506f6SBram Moolenaarhi def link htmlSpecialTagName          Exception
266f37506f6SBram Moolenaarhi def link htmlValue                   String
267f37506f6SBram Moolenaarhi def link htmlSpecialChar             Special
268071d4279SBram Moolenaar
269071d4279SBram Moolenaarif !exists("html_no_rendering")
270f37506f6SBram Moolenaar  hi def link htmlH1                      Title
271f37506f6SBram Moolenaar  hi def link htmlH2                      htmlH1
272f37506f6SBram Moolenaar  hi def link htmlH3                      htmlH2
273f37506f6SBram Moolenaar  hi def link htmlH4                      htmlH3
274f37506f6SBram Moolenaar  hi def link htmlH5                      htmlH4
275f37506f6SBram Moolenaar  hi def link htmlH6                      htmlH5
276f37506f6SBram Moolenaar  hi def link htmlHead                    PreProc
277f37506f6SBram Moolenaar  hi def link htmlTitle                   Title
278f37506f6SBram Moolenaar  hi def link htmlBoldItalicUnderline     htmlBoldUnderlineItalic
279f37506f6SBram Moolenaar  hi def link htmlUnderlineBold           htmlBoldUnderline
280f37506f6SBram Moolenaar  hi def link htmlUnderlineItalicBold     htmlBoldUnderlineItalic
281f37506f6SBram Moolenaar  hi def link htmlUnderlineBoldItalic     htmlBoldUnderlineItalic
282f37506f6SBram Moolenaar  hi def link htmlItalicUnderline         htmlUnderlineItalic
283f37506f6SBram Moolenaar  hi def link htmlItalicBold              htmlBoldItalic
284f37506f6SBram Moolenaar  hi def link htmlItalicBoldUnderline     htmlBoldUnderlineItalic
285f37506f6SBram Moolenaar  hi def link htmlItalicUnderlineBold     htmlBoldUnderlineItalic
286f37506f6SBram Moolenaar  hi def link htmlLink                    Underlined
287f37506f6SBram Moolenaar  hi def link htmlLeadingSpace            None
288071d4279SBram Moolenaar  if !exists("html_my_rendering")
289071d4279SBram Moolenaar    hi def htmlBold                term=bold cterm=bold gui=bold
290071d4279SBram Moolenaar    hi def htmlBoldUnderline       term=bold,underline cterm=bold,underline gui=bold,underline
291071d4279SBram Moolenaar    hi def htmlBoldItalic          term=bold,italic cterm=bold,italic gui=bold,italic
292071d4279SBram Moolenaar    hi def htmlBoldUnderlineItalic term=bold,italic,underline cterm=bold,italic,underline gui=bold,italic,underline
293071d4279SBram Moolenaar    hi def htmlUnderline           term=underline cterm=underline gui=underline
294071d4279SBram Moolenaar    hi def htmlUnderlineItalic     term=italic,underline cterm=italic,underline gui=italic,underline
295071d4279SBram Moolenaar    hi def htmlItalic              term=italic cterm=italic gui=italic
29601164a65SBram Moolenaar    if v:version > 800 || v:version == 800 && has("patch1038")
29701164a65SBram Moolenaar        hi def htmlStrike              term=strikethrough cterm=strikethrough gui=strikethrough
29801164a65SBram Moolenaar    else
29901164a65SBram Moolenaar        hi def htmlStrike              term=underline cterm=underline gui=underline
30001164a65SBram Moolenaar    endif
301071d4279SBram Moolenaar  endif
302071d4279SBram Moolenaarendif
303071d4279SBram Moolenaar
304f37506f6SBram Moolenaarhi def link htmlPreStmt            PreProc
305f37506f6SBram Moolenaarhi def link htmlPreError           Error
306f37506f6SBram Moolenaarhi def link htmlPreProc            PreProc
307f37506f6SBram Moolenaarhi def link htmlPreAttr            String
308f37506f6SBram Moolenaarhi def link htmlPreProcAttrName    PreProc
309f37506f6SBram Moolenaarhi def link htmlPreProcAttrError   Error
310f37506f6SBram Moolenaarhi def link htmlString             String
311f37506f6SBram Moolenaarhi def link htmlStatement          Statement
312f37506f6SBram Moolenaarhi def link htmlComment            Comment
313*c8cdf0f8SBram Moolenaarhi def link htmlCommentNested      htmlError
314f37506f6SBram Moolenaarhi def link htmlCommentError       htmlError
315f37506f6SBram Moolenaarhi def link htmlTagError           htmlError
316f37506f6SBram Moolenaarhi def link htmlEvent              javaScript
317f37506f6SBram Moolenaarhi def link htmlError              Error
318071d4279SBram Moolenaar
319f37506f6SBram Moolenaarhi def link javaScript             Special
320f37506f6SBram Moolenaarhi def link javaScriptExpression   javaScript
321f37506f6SBram Moolenaarhi def link htmlCssStyleComment    Comment
322f37506f6SBram Moolenaarhi def link htmlCssDefinition      Special
323071d4279SBram Moolenaar
324071d4279SBram Moolenaarlet b:current_syntax = "html"
325071d4279SBram Moolenaar
326071d4279SBram Moolenaarif main_syntax == 'html'
327071d4279SBram Moolenaar  unlet main_syntax
328071d4279SBram Moolenaarendif
329071d4279SBram Moolenaar
3300c5fa7d7SBram Moolenaarlet &cpo = s:cpo_save
3310c5fa7d7SBram Moolenaarunlet s:cpo_save
332071d4279SBram Moolenaar" vim: ts=8
333