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 > 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