From 1a096f0901264629947afb89436019895e5e7ef5 Mon Sep 17 00:00:00 2001 From: Adam Stankiewicz Date: Wed, 9 Jun 2021 16:54:25 +0200 Subject: Fix script indentation inside html, closes #693 --- syntax/html.vim | 512 ++++++++++++++++---------------------------- syntax/html/aria.vim | 79 +++++++ syntax/html/electron.vim | 19 ++ syntax/html/rdfa.vim | 15 ++ syntax/javascript/html5.vim | 53 +++++ 5 files changed, 352 insertions(+), 326 deletions(-) create mode 100644 syntax/html/aria.vim create mode 100644 syntax/html/electron.vim create mode 100644 syntax/html/rdfa.vim create mode 100644 syntax/javascript/html5.vim (limited to 'syntax') diff --git a/syntax/html.vim b/syntax/html.vim index 2db2fe2d..46ed2b53 100644 --- a/syntax/html.vim +++ b/syntax/html.vim @@ -1,336 +1,196 @@ -if polyglot#init#is_disabled(expand(':p'), 'html', 'syntax/html.vim') +if polyglot#init#is_disabled(expand(':p'), 'html5', 'syntax/html.vim') finish endif " Vim syntax file -" Language: HTML -" Previous Maintainer: Jorge Maldonado Ventura -" Previous Maintainer: Claudio Fleiner -" Repository: https://notabug.org/jorgesumle/vim-html-syntax -" Last Change: 2021 Mar 02 -" Included patch #7900 to fix comments -" Included patch #7916 to fix a few more things +" Language: HTML (version 5.1) +" SVG (SVG 1.1 Second Edition) +" MathML (MathML 3.0 Second Edition) +" Last Change: 2017 Mar 07 +" License: Public domain +" (but let me know if you like :) ) " - -" Please check :help html.vim for some comments and a description of the options - -" quit when a syntax file was already loaded -if !exists("main_syntax") - if exists("b:current_syntax") - finish - endif - let main_syntax = 'html' -endif - -let s:cpo_save = &cpo -set cpo&vim - -syntax spell toplevel - -syn case ignore - -" mark illegal characters -syn match htmlError "[<>&]" - - -" tags -syn region htmlString contained start=+"+ end=+"+ contains=htmlSpecialChar,javaScriptExpression,@htmlPreproc -syn region htmlString contained start=+'+ end=+'+ contains=htmlSpecialChar,javaScriptExpression,@htmlPreproc -syn match htmlValue contained "=[\t ]*[^'" \t>][^ \t>]*"hs=s+1 contains=javaScriptExpression,@htmlPreproc -syn region htmlEndTag start=++ contains=htmlTagN,htmlTagError -syn region htmlTag start=+<[^/]+ end=+>+ fold contains=htmlTagN,htmlString,htmlArg,htmlValue,htmlTagError,htmlEvent,htmlCssDefinition,@htmlPreproc,@htmlArgCluster -syn match htmlTagN contained +<\s*[-a-zA-Z0-9]\++hs=s+1 contains=htmlTagName,htmlSpecialTagName,@htmlTagNameCluster -syn match htmlTagN contained +]<"ms=s+1 - - -" tag names -syn keyword htmlTagName contained address applet area a base basefont -syn keyword htmlTagName contained big blockquote br caption center -syn keyword htmlTagName contained cite code dd dfn dir div dl dt font -syn keyword htmlTagName contained form hr html img -syn keyword htmlTagName contained input isindex kbd li link map menu -syn keyword htmlTagName contained meta ol option param pre p samp span -syn keyword htmlTagName contained select small sub sup -syn keyword htmlTagName contained table td textarea th tr tt ul var xmp -syn match htmlTagName contained "\<\(b\|i\|u\|h[1-6]\|em\|strong\|head\|body\|title\)\>" - -" new html 4.0 tags -syn keyword htmlTagName contained abbr acronym bdo button col label -syn keyword htmlTagName contained colgroup fieldset iframe ins legend -syn keyword htmlTagName contained object optgroup q s tbody tfoot thead - -" new html 5 tags -syn keyword htmlTagName contained article aside audio bdi canvas data -syn keyword htmlTagName contained datalist details dialog embed figcaption -syn keyword htmlTagName contained figure footer header hgroup keygen main -syn keyword htmlTagName contained mark menuitem meter nav output picture -syn keyword htmlTagName contained progress rb rp rt rtc ruby section -syn keyword htmlTagName contained slot source summary template time track -syn keyword htmlTagName contained video wbr - -" legal arg names -syn keyword htmlArg contained action -syn keyword htmlArg contained align alink alt archive background bgcolor -syn keyword htmlArg contained border bordercolor cellpadding -syn keyword htmlArg contained cellspacing checked class clear code codebase color -syn keyword htmlArg contained cols colspan content coords enctype face -syn keyword htmlArg contained gutter height hspace id -syn keyword htmlArg contained link lowsrc marginheight -syn keyword htmlArg contained marginwidth maxlength method name prompt -syn keyword htmlArg contained rel rev rows rowspan scrolling selected shape -syn keyword htmlArg contained size src start target text type url -syn keyword htmlArg contained usemap ismap valign value vlink vspace width wrap -syn match htmlArg contained "\<\(http-equiv\|href\|title\)="me=e-1 - -" aria attributes -exe 'syn match htmlArg contained "\"' -syn keyword htmlArg contained role - -" Netscape extensions -syn keyword htmlTagName contained frame noframes frameset nobr blink -syn keyword htmlTagName contained layer ilayer nolayer spacer -syn keyword htmlArg contained frameborder noresize pagex pagey above below -syn keyword htmlArg contained left top visibility clip id noshade -syn match htmlArg contained "\" - -" Microsoft extensions -syn keyword htmlTagName contained marquee - -" html 4.0 arg names -syn match htmlArg contained "\<\(accept-charset\|label\)\>" -syn keyword htmlArg contained abbr accept accesskey axis char charoff charset -syn keyword htmlArg contained cite classid codetype compact data datetime -syn keyword htmlArg contained declare defer dir disabled for frame -syn keyword htmlArg contained headers hreflang lang language longdesc -syn keyword htmlArg contained multiple nohref nowrap object profile readonly -syn keyword htmlArg contained rules scheme scope span standby style -syn keyword htmlArg contained summary tabindex valuetype version - -" html 5 arg names -syn keyword htmlArg contained allowfullscreen async autocomplete autofocus -syn keyword htmlArg contained autoplay challenge contenteditable contextmenu -syn keyword htmlArg contained controls crossorigin default dirname download -syn keyword htmlArg contained draggable dropzone form formaction formenctype -syn keyword htmlArg contained formmethod formnovalidate formtarget hidden -syn keyword htmlArg contained high icon inputmode keytype kind list loop low -syn keyword htmlArg contained max min minlength muted nonce novalidate open -syn keyword htmlArg contained optimum pattern placeholder poster preload -syn keyword htmlArg contained radiogroup required reversed sandbox spellcheck -syn keyword htmlArg contained sizes srcset srcdoc srclang step title translate -syn keyword htmlArg contained typemustmatch - -" special characters -syn match htmlSpecialChar "&#\=[0-9A-Za-z]\{1,8};" - -" Comments (the real ones or the old netscape ones) -if exists("html_wrong_comments") - syn region htmlComment start=+ - " Idem 8.2.4.43,44: Except and are parser errors - " Idem 8.2.4.52: dash-dash-bang (--!>) is error ignored by parser, also closes comment - syn region htmlComment matchgroup=htmlComment start=+ is all right - syn match htmlCommentNested contained "\@!" - syn match htmlCommentError contained "[^>+ keepend - -" server-parsed commands -syn region htmlPreProc start=++ contains=htmlPreStmt,htmlPreError,htmlPreAttr -syn match htmlPreStmt contained "\)" - syn region htmlCssDefinition matchgroup=htmlArg start='style="' keepend matchgroup=htmlString end='"' contains=css.*Attr,css.*Prop,cssComment,cssLength,cssColor,cssURL,cssImportant,cssError,cssString,@htmlPreproc - hi def link htmlStyleArg htmlString -endif - -if main_syntax == "html" - " synchronizing (does not always work if a comment includes legal - " html tags, but doing it right would mean to always start - " at the first line, which is too slow) - syn sync match htmlHighlight groupthere NONE "<[/a-zA-Z]" - syn sync match htmlHighlight groupthere javaScript " 800 || v:version == 800 && has("patch1038") - hi def htmlStrike term=strikethrough cterm=strikethrough gui=strikethrough - else - hi def htmlStrike term=underline cterm=underline gui=underline - endif - endif -endif - -hi def link htmlPreStmt PreProc -hi def link htmlPreError Error -hi def link htmlPreProc PreProc -hi def link htmlPreAttr String -hi def link htmlPreProcAttrName PreProc -hi def link htmlPreProcAttrError Error -hi def link htmlString String -hi def link htmlStatement Statement -hi def link htmlComment Comment -hi def link htmlCommentNested htmlError -hi def link htmlCommentError htmlError -hi def link htmlTagError htmlError -hi def link htmlEvent javaScript -hi def link htmlError Error - -hi def link javaScript Special -hi def link javaScriptExpression javaScript -hi def link htmlCssStyleComment Comment -hi def link htmlCssDefinition Special - -let b:current_syntax = "html" - -if main_syntax == 'html' - unlet main_syntax -endif +" HTML 5 tags +syn keyword htmlTagName contained article aside audio canvas command +syn keyword htmlTagName contained datalist details dialog embed figcaption figure footer +syn keyword htmlTagName contained header hgroup keygen main mark meter menu menuitem nav output +syn keyword htmlTagName contained progress ruby rt rp rb rtc section source summary time track video data +syn keyword htmlTagName contained template content shadow slot +syn keyword htmlTagName contained wbr bdi +syn keyword htmlTagName contained picture + +" SVG tags +" http://www.w3.org/TR/SVG/ +" as found in http://www.w3.org/TR/SVG/eltindex.html +syn keyword htmlTagName contained svg +syn keyword htmlTagName contained altGlyph altGlyphDef altGlyphItem +syn keyword htmlTagName contained animate animateColor animateMotion animateTransform +syn keyword htmlTagName contained circle ellipse rect line polyline polygon image path +syn keyword htmlTagName contained clipPath color-profile cursor +syn keyword htmlTagName contained defs desc g symbol view use switch foreignObject +syn keyword htmlTagName contained filter feBlend feColorMatrix feComponentTransfer feComposite feConvolveMatrix feDiffuseLighting feDisplacementMap feDistantLight feFlood feFuncA feFuncB feFuncG feFuncR feGaussianBlur feImage feMerge feMergeNode feMorphology feOffset fePointLight feSpecularLighting feSpotLight feTile feTurbulence +syn keyword htmlTagName contained font font-face font-face-format font-face-name font-face-src font-face-uri +syn keyword htmlTagName contained glyph glyphRef hkern +syn keyword htmlTagName contained linearGradient marker mask pattern radialGradient set stop +syn keyword htmlTagName contained missing-glyph mpath +syn keyword htmlTagName contained text textPath tref tspan vkern +syn keyword htmlTagName contained metadata title + +" MathML tags +" https://www.w3.org/TR/MathML3/appendixi.html#index.elem +syn keyword htmlTagName contained abs and annotation annotation-xml apply approx arccos arccosh arccot arccoth +syn keyword htmlTagName contained arccsc arccsch arcsec arcsech arcsin arcsinh arctan arctanh arg bind +syn keyword htmlTagName contained bvar card cartesianproduct cbytes ceiling cerror ci cn codomain complexes +syn keyword htmlTagName contained compose condition conjugate cos cosh cot coth cs csc csch +syn keyword htmlTagName contained csymbol curl declare degree determinant diff divergence divide domain domainofapplication +syn keyword htmlTagName contained emptyset eq equivalent eulergamma exists exp exponentiale factorial factorof false +syn keyword htmlTagName contained floor fn forall gcd geq grad gt ident image imaginary +syn keyword htmlTagName contained imaginaryi implies in infinity int integers intersect interval inverse lambda +syn keyword htmlTagName contained laplacian lcm leq limit list ln log logbase lowlimit lt +syn keyword htmlTagName contained maction maligngroup malignmark math matrix matrixrow max mean median menclose +syn keyword htmlTagName contained merror mfenced mfrac mglyph mi mi" min minus mlabeledtr mlongdiv +syn keyword htmlTagName contained mmultiscripts mn mo mode moment momentabout mover mpadded mphantom mprescripts +syn keyword htmlTagName contained mroot mrow ms mscarries mscarry msgroup msline mspace msqrt msrow +syn keyword htmlTagName contained mstack mstyle msub msubsup msup mtable mtd mtext mtr munder +syn keyword htmlTagName contained munderover naturalnumbers neq none not notanumber notin notprsubset notsubset or +syn keyword htmlTagName contained otherwise outerproduct partialdiff pi piece piecewise plus power primes product +syn keyword htmlTagName contained prsubset quotient rationals real reals reln rem root scalarproduct sdev +syn keyword htmlTagName contained sec sech selector semantics sep set setdiff share sin sinh +syn keyword htmlTagName contained span subset sum tan tanh tendsto times transpose true union +syn keyword htmlTagName contained uplimit variance vector vectorproduct xor + +" Custom Element +syn match htmlTagName contained "\<[a-z][-.0-9_a-z]*-[-.0-9_a-z]*\>" +syn match htmlTagName contained "[.0-9_a-z]\@<=-[-.0-9_a-z]*\>" + +" HTML 5 arguments +" Core Attributes +syn keyword htmlArg contained accesskey class contenteditable contextmenu dir +syn keyword htmlArg contained draggable hidden id is lang spellcheck style tabindex title translate +" Event-handler Attributes +syn keyword htmlArg contained onabort onblur oncanplay oncanplaythrough onchange +syn keyword htmlArg contained onclick oncontextmenu ondblclick ondrag ondragend ondragenter ondragleave ondragover +syn keyword htmlArg contained ondragstart ondrop ondurationchange onemptied onended onerror onfocus onformchange +syn keyword htmlArg contained onforminput oninput oninvalid onkeydown onkeypress onkeyup onload onloadeddata +syn keyword htmlArg contained onloadedmetadata onloadstart onmousedown onmousemove onmouseout onmouseover onmouseup +syn keyword htmlArg contained onmousewheel onpause onplay onplaying onprogress onratechange onreadystatechange +syn keyword htmlArg contained onscroll onseeked onseeking onselect onshow onstalled onsubmit onsuspend ontimeupdate +syn keyword htmlArg contained onvolumechange onwaiting +" XML Attributes +syn keyword htmlArg contained xml:lang xml:space xml:base xmlns +" new features +" +syn keyword htmlArg contained onafterprint onbeforeprint onbeforeunload onblur onerror onfocus onhashchange onload +syn keyword htmlArg contained onmessage onoffline ononline onpopstate onredo onresize onstorage onundo onunload +"