diff --git a/Syntaxes/HTML.plist b/Syntaxes/HTML.plist index 228353f..74bf234 100644 --- a/Syntaxes/HTML.plist +++ b/Syntaxes/HTML.plist @@ -1678,19 +1678,39 @@ - svg + script + begin + (^[ \t]+)?(?=<(?i:script)\b(?!-)) + beginCaptures + + 1 + + name + punctuation.whitespace.embedded.leading.html + + + end + (?!\G)([ \t]*$\n?)? + endCaptures + + 1 + + name + punctuation.whitespace.embedded.trailing.html + + patterns begin - (?i)(<)(svg)(?=\s|/?>)(?:(([^"'>]|"[^"]*"|'[^']*')*)(>))? + (<)((?i:script))\b beginCaptures 0 name - meta.tag.structure.$2.start.html + meta.tag.metadata.script.start.html 1 @@ -1702,30 +1722,15 @@ name entity.name.tag.html - 3 - - patterns - - - include - #attribute - - - - 5 - - name - punctuation.definition.tag.end.html - end - (?i)(</)(\2)\s*(>) + (/)((?i:script))(>) endCaptures 0 name - meta.tag.structure.$2.end.html + meta.tag.metadata.script.end.html 1 @@ -1744,312 +1749,157 @@ name - meta.element.structure.$2.html - patterns - - - begin - (?<!>)\G - end - > - endCaptures - - 0 - - name - punctuation.definition.tag.end.html - - - name - meta.tag.structure.start.html - patterns - - - include - #attribute - - - - - include - #tags - - - - - repository - - attribute - + meta.embedded.block.html patterns begin - (s(hape-rendering|ystemLanguage|cale|t(yle|itchTiles|op-(color|opacity)|dDeviation|em(h|v)|artOffset|r(i(ng|kethrough-(thickness|position))|oke(-(opacity|dash(offset|array)|width|line(cap|join)|miterlimit))?))|urfaceScale|p(e(cular(Constant|Exponent)|ed)|acing|readMethod)|eed|lope)|h(oriz-(origin-x|adv-x)|eight|anging|ref(lang)?)|y(1|2|ChannelSelector)?|n(umOctaves|ame)|c(y|o(ntentS(criptType|tyleType)|lor(-(interpolation(-filters)?|profile|rendering))?)|ursor|l(ip(-(path|rule)|PathUnits)?|ass)|a(p-height|lcMode)|x)|t(ype|o|ext(-(decoration|anchor|rendering)|Length)|a(rget(X|Y)?|b(index|leValues))|ransform)|i(n(tercept|2)?|d(eographic)?|mage-rendering)|z(oomAndPan)?|o(p(erator|acity)|ver(flow|line-(thickness|position))|ffset|r(i(ent(ation)?|gin)|der))|d(y|i(splay|visor|ffuseConstant|rection)|ominant-baseline|ur|e(scent|celerate)|x)?|u(1|n(i(code(-(range|bidi))?|ts-per-em)|derline-(thickness|position))|2)|p(ing|oint(s(At(X|Y|Z))?|er-events)|a(nose-1|t(h(Length)?|tern(ContentUnits|Transform|Units))|int-order)|r(imitiveUnits|eserveA(spectRatio|lpha)))|e(n(d|able-background)|dgeMode|levation|x(ternalResourcesRequired|ponent))|v(i(sibility|ew(Box|Target))|-(hanging|ideographic|alphabetic|mathematical)|e(ctor-effect|r(sion|t-(origin-(y|x)|adv-y)))|alues)|k(1|2|3|e(y(Splines|Times|Points)|rn(ing|el(Matrix|UnitLength)))|4)?|f(y|il(ter(Res|Units)?|l(-(opacity|rule))?)|o(nt-(s(t(yle|retch)|ize(-adjust)?)|variant|family|weight)|rmat)|lood-(color|opacity)|r(om)?|x)|w(idth(s)?|ord-spacing|riting-mode)|l(i(ghting-color|mitingConeAngle)|ocal|e(ngthAdjust|tter-spacing)|ang)|a(scent|cc(umulate|ent-height)|ttribute(Name|Type)|zimuth|dditive|utoReverse|l(ignment-baseline|phabetic|lowReorder)|rabic-form|mplitude)|r(y|otate|e(s(tart|ult)|ndering-intent|peat(Count|Dur)|quired(Extensions|Features)|f(X|Y|errerPolicy)|l)|adius|x)?|g(1|2|lyph(Ref|-(name|orientation-(horizontal|vertical)))|radient(Transform|Units))|x(1|2|ChannelSelector|-height|link:(show|href|t(ype|itle)|a(ctuate|rcrole)|role)|ml:(space|lang|base))?|m(in|ode|e(thod|dia)|a(sk(ContentUnits|Units)?|thematical|rker(Height|-(start|end|mid)|Units|Width)|x))|b(y|ias|egin|ase(Profile|line-shift|Frequency)|box))(?![\w:-]) - beginCaptures - - 0 - - name - entity.other.attribute-name.html - - - end - (?=\s*+[^=\s]) - name - meta.attribute.$1.html - patterns - - - include - #attribute-interior - - - - - begin - ([^\x{0020}"'<>/=\x{0000}-\x{001F}\x{007F}-\x{009F}\x{FDD0}-\x{FDEF}\x{FFFE}\x{FFFF}\x{1FFFE}\x{1FFFF}\x{2FFFE}\x{2FFFF}\x{3FFFE}\x{3FFFF}\x{4FFFE}\x{4FFFF}\x{5FFFE}\x{5FFFF}\x{6FFFE}\x{6FFFF}\x{7FFFE}\x{7FFFF}\x{8FFFE}\x{8FFFF}\x{9FFFE}\x{9FFFF}\x{AFFFE}\x{AFFFF}\x{BFFFE}\x{BFFFF}\x{CFFFE}\x{CFFFF}\x{DFFFE}\x{DFFFF}\x{EFFFE}\x{EFFFF}\x{FFFFE}\x{FFFFF}\x{10FFFE}\x{10FFFF}]+) - beginCaptures - - 0 - - name - entity.other.attribute-name.html - - - comment - Anything else that is valid + \G end - (?=\s*+[^=\s]) - name - meta.attribute.unrecognized.$1.html + (?=/) patterns - include - #attribute-interior - - - - - match - [^\s>]+ - name - invalid.illegal.character-not-allowed-here.html - - - - tags - - patterns - - - include - #comment - - - include - #cdata - - - captures - - 0 - - name - meta.tag.metadata.svg.$2.void.html - - 1 - - name - punctuation.definition.tag.begin.html - - 2 - - name - entity.name.tag.html - - 3 - - patterns - + begin + (>) + beginCaptures + + 0 - include - #attribute + name + meta.tag.metadata.script.start.html - - - 5 - - name - punctuation.definition.tag.end.html - - - match - (?i)(<)(color-profile|desc|metadata|script|style|title)(?=\s|/?>)(?:(([^"'>]|"[^"]*"|'[^']*')*)(/>)) - name - meta.element.metadata.svg.$2.html - - - begin - (?i)(<)(color-profile|desc|metadata|script|style|title)(?=\s|/?>)(?:(([^"'>]|"[^"]*"|'[^']*')*)(>))? - beginCaptures - - 0 - - name - meta.tag.metadata.svg.$2.start.html - - 1 - - name - punctuation.definition.tag.begin.html - - 2 - - name - entity.name.tag.html - - 3 - - patterns - + 1 - include - #attribute + name + punctuation.definition.tag.end.html - - - 5 - - name - punctuation.definition.tag.end.html - - - end - (?i)(</)(\2)\s*(>)|(/>)|(?=</\w+) - endCaptures - - 0 - - name - meta.tag.metadata.svg.$2.end.html - - 1 - - name - punctuation.definition.tag.begin.html - - 2 - - name - entity.name.tag.html - - 3 - - name - punctuation.definition.tag.end.html - - 4 - - name - punctuation.definition.tag.end.html - - - name - meta.element.metadata.svg.$2.html - patterns - - - begin - (?<!>)\G + end - (?=/>)|> + ((<))(?=/(?i:script)) endCaptures 0 name - punctuation.definition.tag.end.html + meta.tag.metadata.script.end.html - - name - meta.tag.metadata.start.html - patterns - + 1 - include - #attribute + name + punctuation.definition.tag.begin.html - - - - include - #tags - - - - - captures - - 0 - - name - meta.tag.structure.svg.$2.void.html - - 1 - - name - punctuation.definition.tag.begin.html - - 2 - - name - entity.name.tag.html - - 3 - + 2 + + name + source.js + + patterns - include - #attribute + begin + \G + end + (?=</(?i:script)) + name + source.js + patterns + + + begin + (^[ \t]+)?(?=//) + beginCaptures + + 1 + + name + punctuation.whitespace.comment.leading.js + + + end + (?!\G) + patterns + + + begin + // + beginCaptures + + 0 + + name + punctuation.definition.comment.js + + + end + (?=</script)|\n + name + comment.line.double-slash.js + + + + + begin + /\* + captures + + 0 + + name + punctuation.definition.comment.js + + + end + \*/|(?=</script) + name + comment.block.js + + + include + source.js + + - 5 - - name - punctuation.definition.tag.end.html - - - match - (?i)(<)(animateMotion|clipPath|defs|feComponentTransfer|feDiffuseLighting|feMerge|feSpecularLighting|filter|g|hatch|linearGradient|marker|mask|mesh|meshgradient|meshpatch|meshrow|pattern|radialGradient|switch|text|textPath)(?=\s|/?>)(?:(([^"'>]|"[^"]*"|'[^']*')*)(/>)) - name - meta.element.structure.svg.$2.html - - - begin - (?i)(<)(animateMotion|clipPath|defs|feComponentTransfer|feDiffuseLighting|feMerge|feSpecularLighting|filter|g|hatch|linearGradient|marker|mask|mesh|meshgradient|meshpatch|meshrow|pattern|radialGradient|switch|text|textPath)(?=\s|/?>)(?:(([^"'>]|"[^"]*"|'[^']*')*)(>))? - beginCaptures - - 0 - - name - meta.tag.structure.svg.$2.start.html - - 1 - - name - punctuation.definition.tag.begin.html - - 2 + begin + \G + end + (?ix: + (?=> # Tag without type attribute + | type(?=[\s=]) + (?!\s*=\s* + ( + '' # Empty + | "" # Values + | ('|"|) + ( + text/ # Text mime-types + ( + javascript(1\.[0-5])? + | x-javascript + | jscript + | livescript + | (x-)?ecmascript + | babel # Javascript variant currently + # recognized as such + ) + | application/ # Application mime-types + ( + (x-)?javascript + | (x-)?ecmascript + ) + | module + ) + [\s"'>] + ) + ) + ) + ) name - entity.name.tag.html - - 3 - + meta.tag.metadata.script.start.html patterns @@ -2058,261 +1908,492 @@ - 5 - - name - punctuation.definition.tag.end.html - - - end - (?i)(</)(\2)\s*(>)|(/>)|(?=</\w+) - endCaptures - - 0 - - name - meta.tag.structure.svg.$2.end.html - - 1 - - name - punctuation.definition.tag.begin.html - - 2 - - name - entity.name.tag.html - - 3 - - name - punctuation.definition.tag.end.html - - 4 - - name - punctuation.definition.tag.end.html - - - name - meta.element.structure.svg.$2.html - patterns - begin - (?<!>)\G + (?ix: + (?= + type\s*=\s* + ('|"|) + text/ + ( + x-handlebars + | (x-(handlebars-)?|ng-)?template + | html + ) + [\s"'>] + ) + ) end - (?=/>)|> + ((<))(?=/(?i:script)) endCaptures 0 name - punctuation.definition.tag.end.html + meta.tag.metadata.script.end.html + + 1 + + name + punctuation.definition.tag.begin.html + + 2 + + name + text.html.basic - name - meta.tag.structure.start.html patterns - include - #attribute + begin + \G + end + (>) + endCaptures + + 1 + + name + punctuation.definition.tag.end.html + + + name + meta.tag.metadata.script.start.html + patterns + + + include + #attribute + + - - - - include - #tags - - - - - captures - - 0 - - name - meta.tag.inline.svg.$2.void.html - - 1 - - name - punctuation.definition.tag.begin.html - - 2 - - name - entity.name.tag.html - - 3 - - patterns - - - include - #attribute - - - - 5 - - name - punctuation.definition.tag.end.html - - - match - (?i)(<)(a|animate|discard|feBlend|feColorMatrix|feComposite|feConvolveMatrix|feDisplacementMap|feDistantLight|feDropShadow|feFlood|feFuncA|feFuncB|feFuncG|feFuncR|feGaussianBlur|feMergeNode|feMorphology|feOffset|fePointLight|feSpotLight|feTile|feTurbulence|hatchPath|mpath|set|solidcolor|stop|tspan)(?=\s|/?>)(?:(([^"'>]|"[^"]*"|'[^']*')*)(/>)) - name - meta.element.inline.svg.$2.html - - - begin - (?i)(<)(a|animate|discard|feBlend|feColorMatrix|feComposite|feConvolveMatrix|feDisplacementMap|feDistantLight|feDropShadow|feFlood|feFuncA|feFuncB|feFuncG|feFuncR|feGaussianBlur|feMergeNode|feMorphology|feOffset|fePointLight|feSpotLight|feTile|feTurbulence|hatchPath|mpath|set|solidcolor|stop|tspan)(?=\s|/?>)(?:(([^"'>]|"[^"]*"|'[^']*')*)(>))? - beginCaptures - - 0 - - name - meta.tag.inline.svg.$2.start.html - - 1 - - name - punctuation.definition.tag.begin.html - - 2 - - name - entity.name.tag.html - - 3 - - patterns - - include - #attribute + begin + (?!\G) + end + (?=</(?i:script)) + name + text.html.basic + patterns + + + include + text.html.basic + + - 5 - - name - punctuation.definition.tag.end.html - - - end - (?i)(</)(\2)\s*(>)|(/>)|(?=</\w+) - endCaptures - - 0 - - name - meta.tag.inline.svg.$2.end.html - - 1 - - name - punctuation.definition.tag.begin.html - - 2 - - name - entity.name.tag.html - - 3 - - name - punctuation.definition.tag.end.html - - 4 - - name - punctuation.definition.tag.end.html - - - name - meta.element.inline.svg.$2.html - patterns - begin - (?<!>)\G + (?=(?i:type)) end - (?=/>)|> + (<)(?=/(?i:script)) endCaptures 0 name - punctuation.definition.tag.end.html + meta.tag.metadata.script.end.html + + 1 + + name + punctuation.definition.tag.begin.html - name - meta.tag.inline.start.html patterns - include - #attribute + begin + \G + end + (>) + endCaptures + + 1 + + name + punctuation.definition.tag.end.html + + + name + meta.tag.metadata.script.start.html + patterns + + + include + #attribute + + + + + begin + (?!\G) + end + (?=</(?i:script)) + name + source.unknown - - include - #tags - + + + + + style + + begin + (^[ \t]+)?(?=<(?i:style)\b(?!-)) + beginCaptures + + 1 + + name + punctuation.whitespace.embedded.leading.html + + + end + (?!\G)([ \t]*$\n?)? + endCaptures + + 1 + + name + punctuation.whitespace.embedded.trailing.html + + + patterns + + + begin + (?i)(<)(style)(?=\s|/?>) + beginCaptures + + 0 + + name + meta.tag.metadata.style.start.html + + 1 + + name + punctuation.definition.tag.begin.html + + 2 + + name + entity.name.tag.html + + + end + (?i)((<)/)(style)\s*(>) + endCaptures + + 0 + + name + meta.tag.metadata.style.end.html + + 1 + + name + punctuation.definition.tag.begin.html + + 2 + + name + source.css + + 3 + + name + entity.name.tag.html + + 4 + + name + punctuation.definition.tag.end.html + + + name + meta.embedded.block.html + patterns + + begin + \G captures - 0 - - name - meta.tag.object.svg.$2.void.html - 1 - - name - punctuation.definition.tag.begin.html - - 2 - - name - entity.name.tag.html - - 3 - - patterns - - - include - #attribute - - - - 5 name punctuation.definition.tag.end.html - match - (?i)(<)(circle|ellipse|feImage|foreignObject|image|line|path|polygon|polyline|rect|symbol|use|view)(?=\s|/?>)(?:(([^"'>]|"[^"]*"|'[^']*')*)(/>)) + end + (>) name - meta.element.object.svg.$2.html + meta.tag.metadata.style.start.html + patterns + + + include + #attribute + + begin - (?i)(<)(a|circle|ellipse|feImage|foreignObject|image|line|path|polygon|polyline|rect|symbol|use|view)(?=\s|/?>)(?:(([^"'>]|"[^"]*"|'[^']*')*)(>))? + (?!\G) + end + (?=</(?i:style)) + name + source.css + patterns + + + include + source.css + + + + + + + + svg + + patterns + + + begin + (?i)(<)(svg)(?=\s|/?>)(?:(([^"'>]|"[^"]*"|'[^']*')*)(>))? + beginCaptures + + 0 + + name + meta.tag.structure.$2.start.html + + 1 + + name + punctuation.definition.tag.begin.html + + 2 + + name + entity.name.tag.html + + 3 + + patterns + + + include + #attribute + + + + 5 + + name + punctuation.definition.tag.end.html + + + end + (?i)(</)(\2)\s*(>) + endCaptures + + 0 + + name + meta.tag.structure.$2.end.html + + 1 + + name + punctuation.definition.tag.begin.html + + 2 + + name + entity.name.tag.html + + 3 + + name + punctuation.definition.tag.end.html + + + name + meta.element.structure.$2.html + patterns + + + begin + (?<!>)\G + end + > + endCaptures + + 0 + + name + punctuation.definition.tag.end.html + + + name + meta.tag.structure.start.html + patterns + + + include + #attribute + + + + + include + #tags + + + + + repository + + attribute + + patterns + + + begin + (s(hape-rendering|ystemLanguage|cale|t(yle|itchTiles|op-(color|opacity)|dDeviation|em(h|v)|artOffset|r(i(ng|kethrough-(thickness|position))|oke(-(opacity|dash(offset|array)|width|line(cap|join)|miterlimit))?))|urfaceScale|p(e(cular(Constant|Exponent)|ed)|acing|readMethod)|eed|lope)|h(oriz-(origin-x|adv-x)|eight|anging|ref(lang)?)|y(1|2|ChannelSelector)?|n(umOctaves|ame)|c(y|o(ntentS(criptType|tyleType)|lor(-(interpolation(-filters)?|profile|rendering))?)|ursor|l(ip(-(path|rule)|PathUnits)?|ass)|a(p-height|lcMode)|x)|t(ype|o|ext(-(decoration|anchor|rendering)|Length)|a(rget(X|Y)?|b(index|leValues))|ransform)|i(n(tercept|2)?|d(eographic)?|mage-rendering)|z(oomAndPan)?|o(p(erator|acity)|ver(flow|line-(thickness|position))|ffset|r(i(ent(ation)?|gin)|der))|d(y|i(splay|visor|ffuseConstant|rection)|ominant-baseline|ur|e(scent|celerate)|x)?|u(1|n(i(code(-(range|bidi))?|ts-per-em)|derline-(thickness|position))|2)|p(ing|oint(s(At(X|Y|Z))?|er-events)|a(nose-1|t(h(Length)?|tern(ContentUnits|Transform|Units))|int-order)|r(imitiveUnits|eserveA(spectRatio|lpha)))|e(n(d|able-background)|dgeMode|levation|x(ternalResourcesRequired|ponent))|v(i(sibility|ew(Box|Target))|-(hanging|ideographic|alphabetic|mathematical)|e(ctor-effect|r(sion|t-(origin-(y|x)|adv-y)))|alues)|k(1|2|3|e(y(Splines|Times|Points)|rn(ing|el(Matrix|UnitLength)))|4)?|f(y|il(ter(Res|Units)?|l(-(opacity|rule))?)|o(nt-(s(t(yle|retch)|ize(-adjust)?)|variant|family|weight)|rmat)|lood-(color|opacity)|r(om)?|x)|w(idth(s)?|ord-spacing|riting-mode)|l(i(ghting-color|mitingConeAngle)|ocal|e(ngthAdjust|tter-spacing)|ang)|a(scent|cc(umulate|ent-height)|ttribute(Name|Type)|zimuth|dditive|utoReverse|l(ignment-baseline|phabetic|lowReorder)|rabic-form|mplitude)|r(y|otate|e(s(tart|ult)|ndering-intent|peat(Count|Dur)|quired(Extensions|Features)|f(X|Y|errerPolicy)|l)|adius|x)?|g(1|2|lyph(Ref|-(name|orientation-(horizontal|vertical)))|radient(Transform|Units))|x(1|2|ChannelSelector|-height|link:(show|href|t(ype|itle)|a(ctuate|rcrole)|role)|ml:(space|lang|base))?|m(in|ode|e(thod|dia)|a(sk(ContentUnits|Units)?|thematical|rker(Height|-(start|end|mid)|Units|Width)|x))|b(y|ias|egin|ase(Profile|line-shift|Frequency)|box))(?![\w:-]) beginCaptures 0 name - meta.tag.object.svg.$2.start.html + entity.other.attribute-name.html + + + end + (?=\s*+[^=\s]) + name + meta.attribute.$1.html + patterns + + + include + #attribute-interior + + + + + begin + ([^\x{0020}"'<>/=\x{0000}-\x{001F}\x{007F}-\x{009F}\x{FDD0}-\x{FDEF}\x{FFFE}\x{FFFF}\x{1FFFE}\x{1FFFF}\x{2FFFE}\x{2FFFF}\x{3FFFE}\x{3FFFF}\x{4FFFE}\x{4FFFF}\x{5FFFE}\x{5FFFF}\x{6FFFE}\x{6FFFF}\x{7FFFE}\x{7FFFF}\x{8FFFE}\x{8FFFF}\x{9FFFE}\x{9FFFF}\x{AFFFE}\x{AFFFF}\x{BFFFE}\x{BFFFF}\x{CFFFE}\x{CFFFF}\x{DFFFE}\x{DFFFF}\x{EFFFE}\x{EFFFF}\x{FFFFE}\x{FFFFF}\x{10FFFE}\x{10FFFF}]+) + beginCaptures + + 0 + + name + entity.other.attribute-name.html + + + comment + Anything else that is valid + end + (?=\s*+[^=\s]) + name + meta.attribute.unrecognized.$1.html + patterns + + + include + #attribute-interior + + + + + match + [^\s>]+ + name + invalid.illegal.character-not-allowed-here.html + + + + tags + + patterns + + + include + #comment + + + include + #cdata + + + include + #style + + + include + #script + + + captures + + 0 + + name + meta.tag.metadata.svg.$2.void.html + + 1 + + name + punctuation.definition.tag.begin.html + + 2 + + name + entity.name.tag.html + + 3 + + patterns + + + include + #attribute + + + + 5 + + name + punctuation.definition.tag.end.html + + + match + (?i)(<)(color-profile|desc|metadata|title)(?=\s|/?>)(?:(([^"'>]|"[^"]*"|'[^']*')*)(/>)) + name + meta.element.metadata.svg.$2.html + + + begin + (?i)(<)(color-profile|desc|metadata|title)(?=\s|/?>)(?:(([^"'>]|"[^"]*"|'[^']*')*)(>))? + beginCaptures + + 0 + + name + meta.tag.metadata.svg.$2.start.html 1 @@ -2347,7 +2428,7 @@ 0 name - meta.tag.object.svg.$2.end.html + meta.tag.metadata.svg.$2.end.html 1 @@ -2371,7 +2452,7 @@ name - meta.element.object.svg.$2.html + meta.element.metadata.svg.$2.html patterns @@ -2388,7 +2469,7 @@ name - meta.tag.object.start.html + meta.tag.metadata.start.html patterns @@ -2409,7 +2490,7 @@ 0 name - meta.tag.other.svg.$2.void.html + meta.tag.structure.svg.$2.void.html 1 @@ -2422,11 +2503,6 @@ entity.name.tag.html 3 - - name - invalid.deprecated.html - - 4 patterns @@ -2436,26 +2512,26 @@ - 6 + 5 name punctuation.definition.tag.end.html match - (?i)(<)((altGlyph|altGlyphDef|altGlyphItem|animateColor|animateTransform|cursor|font|font-face|font-face-format|font-face-name|font-face-src|font-face-uri|glyph|glyphRef|hkern|missing-glyph|tref|vkern))(?=\s|/?>)(?:(([^"'>]|"[^"]*"|'[^']*')*)(/>)) + (?i)(<)(animateMotion|clipPath|defs|feComponentTransfer|feDiffuseLighting|feMerge|feSpecularLighting|filter|g|hatch|linearGradient|marker|mask|mesh|meshgradient|meshpatch|meshrow|pattern|radialGradient|switch|text|textPath)(?=\s|/?>)(?:(([^"'>]|"[^"]*"|'[^']*')*)(/>)) name - meta.element.other.svg.$2.html + meta.element.structure.svg.$2.html begin - (?i)(<)((altGlyph|altGlyphDef|altGlyphItem|animateColor|animateTransform|cursor|font|font-face|font-face-format|font-face-name|font-face-src|font-face-uri|glyph|glyphRef|hkern|missing-glyph|tref|vkern))(?=\s|/?>)(?:(([^"'>]|"[^"]*"|'[^']*')*)(>))? + (?i)(<)(animateMotion|clipPath|defs|feComponentTransfer|feDiffuseLighting|feMerge|feSpecularLighting|filter|g|hatch|linearGradient|marker|mask|mesh|meshgradient|meshpatch|meshrow|pattern|radialGradient|switch|text|textPath)(?=\s|/?>)(?:(([^"'>]|"[^"]*"|'[^']*')*)(>))? beginCaptures 0 name - meta.tag.other.svg.$2.start.html + meta.tag.structure.svg.$2.start.html 1 @@ -2468,11 +2544,6 @@ entity.name.tag.html 3 - - name - invalid.deprecated.html - - 4 patterns @@ -2482,20 +2553,20 @@ - 6 + 5 name punctuation.definition.tag.end.html end - (?i)(</)((\2))\s*(>)|(/>)|(?=</\w+) + (?i)(</)(\2)\s*(>)|(/>)|(?=</\w+) endCaptures 0 name - meta.tag.other.svg.$2.end.html + meta.tag.structure.svg.$2.end.html 1 @@ -2508,23 +2579,18 @@ entity.name.tag.html 3 - - name - invalid.deprecated.html - - 4 name punctuation.definition.tag.end.html - 5 + 4 name punctuation.definition.tag.end.html name - meta.element.other.svg.$2.html + meta.element.structure.svg.$2.html patterns @@ -2541,7 +2607,7 @@ name - meta.tag.other.start.html + meta.tag.structure.start.html patterns @@ -2562,7 +2628,7 @@ 0 name - meta.tag.other.invalid.void.html + meta.tag.inline.svg.$2.void.html 1 @@ -2575,11 +2641,6 @@ entity.name.tag.html 3 - - name - invalid.illegal.unrecognized-tag.html - - 4 patterns @@ -2589,26 +2650,26 @@ - 6 + 5 name punctuation.definition.tag.end.html match - (?i)(<)(([\w:]+))(?=\s|/?>)(?:(([^"'>]|"[^"]*"|'[^']*')*)(/>)) + (?i)(<)(a|animate|discard|feBlend|feColorMatrix|feComposite|feConvolveMatrix|feDisplacementMap|feDistantLight|feDropShadow|feFlood|feFuncA|feFuncB|feFuncG|feFuncR|feGaussianBlur|feMergeNode|feMorphology|feOffset|fePointLight|feSpotLight|feTile|feTurbulence|hatchPath|mpath|set|solidcolor|stop|tspan)(?=\s|/?>)(?:(([^"'>]|"[^"]*"|'[^']*')*)(/>)) name - meta.element.other.invalid.html + meta.element.inline.svg.$2.html begin - (?i)(<)((\w[^\s>]*))(?=\s|/?>)(?:(([^"'>]|"[^"]*"|'[^']*')*)(>))? + (?i)(<)(a|animate|discard|feBlend|feColorMatrix|feComposite|feConvolveMatrix|feDisplacementMap|feDistantLight|feDropShadow|feFlood|feFuncA|feFuncB|feFuncG|feFuncR|feGaussianBlur|feMergeNode|feMorphology|feOffset|fePointLight|feSpotLight|feTile|feTurbulence|hatchPath|mpath|set|solidcolor|stop|tspan)(?=\s|/?>)(?:(([^"'>]|"[^"]*"|'[^']*')*)(>))? beginCaptures 0 name - meta.tag.other.invalid.start.html + meta.tag.inline.svg.$2.start.html 1 @@ -2621,11 +2682,6 @@ entity.name.tag.html 3 - - name - invalid.illegal.unrecognized-tag.html - - 4 patterns @@ -2635,20 +2691,20 @@ - 6 + 5 name punctuation.definition.tag.end.html end - (?i)(</)((\2))\s*(>)|(/>)|(?=</\w+) + (?i)(</)(\2)\s*(>)|(/>)|(?=</\w+) endCaptures 0 name - meta.tag.other.invalid.end.html + meta.tag.inline.svg.$2.end.html 1 @@ -2661,23 +2717,18 @@ entity.name.tag.html 3 - - name - invalid.illegal.unrecognized-tag.html - - 4 name punctuation.definition.tag.end.html - 5 + 4 name punctuation.definition.tag.end.html name - meta.element.other.invalid.html + meta.element.inline.svg.$2.html patterns @@ -2694,7 +2745,7 @@ name - meta.tag.other.invalid.start.html + meta.tag.inline.start.html patterns @@ -2710,96 +2761,53 @@ - include - #tags-invalid - - - - - - tags-invalid - - patterns - - - begin - (</?)((\w[^\s>]*))(?<!/) - beginCaptures - - 1 - - name - punctuation.definition.tag.begin.html - - 2 - - name - entity.name.tag.html - - 3 - - name - invalid.illegal.unrecognized-tag.html - - - end - ((?: ?/)?>) - endCaptures - - 1 - - name - punctuation.definition.tag.end.html - - - name - meta.tag.other.$2.html - patterns - - - include - #attribute - - - - - - tags-valid - - patterns - - - begin - (^[ \t]+)?(?=<(?i:style)\b(?!-)) - beginCaptures - - 1 - - name - punctuation.whitespace.embedded.leading.html - - - end - (?!\G)([ \t]*$\n?)? - endCaptures - - 1 - + captures + + 0 + + name + meta.tag.object.svg.$2.void.html + + 1 + + name + punctuation.definition.tag.begin.html + + 2 + + name + entity.name.tag.html + + 3 + + patterns + + + include + #attribute + + + + 5 + + name + punctuation.definition.tag.end.html + + + match + (?i)(<)(circle|ellipse|feImage|foreignObject|image|line|path|polygon|polyline|rect|symbol|use|view)(?=\s|/?>)(?:(([^"'>]|"[^"]*"|'[^']*')*)(/>)) name - punctuation.whitespace.embedded.trailing.html + meta.element.object.svg.$2.html - - patterns - begin - (?i)(<)(style)(?=\s|/?>) + (?i)(<)(a|circle|ellipse|feImage|foreignObject|image|line|path|polygon|polyline|rect|symbol|use|view)(?=\s|/?>)(?:(([^"'>]|"[^"]*"|'[^']*')*)(>))? beginCaptures 0 name - meta.tag.metadata.style.start.html + meta.tag.object.svg.$2.start.html 1 @@ -2811,15 +2819,30 @@ name entity.name.tag.html + 3 + + patterns + + + include + #attribute + + + + 5 + + name + punctuation.definition.tag.end.html + end - (?i)((<)/)(style)\s*(>) + (?i)(</)(\2)\s*(>)|(/>)|(?=</\w+) endCaptures 0 name - meta.tag.metadata.style.end.html + meta.tag.object.svg.$2.end.html 1 @@ -2829,12 +2852,12 @@ 2 name - source.css + entity.name.tag.html 3 name - entity.name.tag.html + punctuation.definition.tag.end.html 4 @@ -2843,24 +2866,24 @@ name - meta.embedded.block.html + meta.element.object.svg.$2.html patterns begin - \G - captures + (?<!>)\G + end + (?=/>)|> + endCaptures - 1 + 0 name punctuation.definition.tag.end.html - end - (>) name - meta.tag.metadata.style.start.html + meta.tag.object.start.html patterns @@ -2870,56 +2893,64 @@ - begin - (?!\G) - end - (?=</(?i:style)) - name - source.css - patterns - - - include - source.css - - + include + #tags - - - - begin - (^[ \t]+)?(?=<(?i:script)\b(?!-)) - beginCaptures - - 1 - - name - punctuation.whitespace.embedded.leading.html - - - end - (?!\G)([ \t]*$\n?)? - endCaptures - - 1 - - name - punctuation.whitespace.embedded.trailing.html - - - patterns - - begin - (<)((?i:script))\b - beginCaptures + captures 0 name - meta.tag.metadata.script.start.html + meta.tag.other.svg.$2.void.html + + 1 + + name + punctuation.definition.tag.begin.html + + 2 + + name + entity.name.tag.html + + 3 + + name + invalid.deprecated.html + + 4 + + patterns + + + include + #attribute + + + + 6 + + name + punctuation.definition.tag.end.html + + + match + (?i)(<)((altGlyph|altGlyphDef|altGlyphItem|animateColor|animateTransform|cursor|font|font-face|font-face-format|font-face-name|font-face-src|font-face-uri|glyph|glyphRef|hkern|missing-glyph|tref|vkern))(?=\s|/?>)(?:(([^"'>]|"[^"]*"|'[^']*')*)(/>)) + name + meta.element.other.svg.$2.html + + + begin + (?i)(<)((altGlyph|altGlyphDef|altGlyphItem|animateColor|animateTransform|cursor|font|font-face|font-face-format|font-face-name|font-face-src|font-face-uri|glyph|glyphRef|hkern|missing-glyph|tref|vkern))(?=\s|/?>)(?:(([^"'>]|"[^"]*"|'[^']*')*)(>))? + beginCaptures + + 0 + + name + meta.tag.other.svg.$2.start.html 1 @@ -2931,15 +2962,35 @@ name entity.name.tag.html + 3 + + name + invalid.deprecated.html + + 4 + + patterns + + + include + #attribute + + + + 6 + + name + punctuation.definition.tag.end.html + end - (/)((?i:script))(>) + (?i)(</)((\2))\s*(>)|(/>)|(?=</\w+) endCaptures 0 name - meta.tag.metadata.script.end.html + meta.tag.other.svg.$2.end.html 1 @@ -2952,307 +3003,274 @@ entity.name.tag.html 3 + + name + invalid.deprecated.html + + 4 + + name + punctuation.definition.tag.end.html + + 5 name punctuation.definition.tag.end.html name - meta.embedded.block.html + meta.element.other.svg.$2.html patterns begin - \G + (?<!>)\G end - (?=/) + (?=/>)|> + endCaptures + + 0 + + name + punctuation.definition.tag.end.html + + + name + meta.tag.other.start.html patterns - begin - (>) - beginCaptures - - 0 - - name - meta.tag.metadata.script.start.html - - 1 - - name - punctuation.definition.tag.end.html - - - end - ((<))(?=/(?i:script)) - endCaptures - - 0 - - name - meta.tag.metadata.script.end.html - - 1 - - name - punctuation.definition.tag.begin.html - - 2 - - name - source.js - - - patterns - - - begin - \G - end - (?=</(?i:script)) - name - source.js - patterns - - - begin - (^[ \t]+)?(?=//) - beginCaptures - - 1 - - name - punctuation.whitespace.comment.leading.js - - - end - (?!\G) - patterns - - - begin - // - beginCaptures - - 0 - - name - punctuation.definition.comment.js - - - end - (?=</script)|\n - name - comment.line.double-slash.js - - - - - begin - /\* - captures - - 0 - - name - punctuation.definition.comment.js - - - end - \*/|(?=</script) - name - comment.block.js - - - include - source.js - - - - + include + #attribute + + + + include + #tags + + + + + captures + + 0 + + name + meta.tag.other.invalid.void.html + + 1 + + name + punctuation.definition.tag.begin.html + + 2 + + name + entity.name.tag.html + + 3 + + name + invalid.illegal.unrecognized-tag.html + + 4 + + patterns + - begin - \G - end - (?ix: - (?=> # Tag without type attribute - | type(?=[\s=]) - (?!\s*=\s* - ( - '' # Empty - | "" # Values - | ('|"|) - ( - text/ # Text mime-types - ( - javascript(1\.[0-5])? - | x-javascript - | jscript - | livescript - | (x-)?ecmascript - | babel # Javascript variant currently - # recognized as such - ) - | application/ # Application mime-types - ( - (x-)?javascript - | (x-)?ecmascript - ) - | module - ) - [\s"'>] - ) - ) - ) - ) - name - meta.tag.metadata.script.start.html - patterns - - - include - #attribute - - + include + #attribute - - begin - (?ix: - (?= - type\s*=\s* - ('|"|) - text/ - ( - x-handlebars - | (x-(handlebars-)?|ng-)?template - | html - ) - [\s"'>] - ) - ) - end - ((<))(?=/(?i:script)) - endCaptures - - 0 - - name - meta.tag.metadata.script.end.html - - 1 - - name - punctuation.definition.tag.begin.html - - 2 - - name - text.html.basic - - - patterns - - - begin - \G - end - (>) - endCaptures - - 1 - - name - punctuation.definition.tag.end.html - - - name - meta.tag.metadata.script.start.html - patterns - - - include - #attribute - - - - - begin - (?!\G) - end - (?=</(?i:script)) - name - text.html.basic - patterns - - - include - text.html.basic - - - - + + + 6 + + name + punctuation.definition.tag.end.html + + + match + (?i)(<)(([\w:]+))(?=\s|/?>)(?:(([^"'>]|"[^"]*"|'[^']*')*)(/>)) + name + meta.element.other.invalid.html + + + begin + (?i)(<)((\w[^\s>]*))(?=\s|/?>)(?:(([^"'>]|"[^"]*"|'[^']*')*)(>))? + beginCaptures + + 0 + + name + meta.tag.other.invalid.start.html + + 1 + + name + punctuation.definition.tag.begin.html + + 2 + + name + entity.name.tag.html + + 3 + + name + invalid.illegal.unrecognized-tag.html + + 4 + + patterns + + + include + #attribute + + + + 6 + + name + punctuation.definition.tag.end.html + + + end + (?i)(</)((\2))\s*(>)|(/>)|(?=</\w+) + endCaptures + + 0 + + name + meta.tag.other.invalid.end.html + + 1 + + name + punctuation.definition.tag.begin.html + + 2 + + name + entity.name.tag.html + + 3 + + name + invalid.illegal.unrecognized-tag.html + + 4 + + name + punctuation.definition.tag.end.html + + 5 + + name + punctuation.definition.tag.end.html + + + name + meta.element.other.invalid.html + patterns + + + begin + (?<!>)\G + end + (?=/>)|> + endCaptures + + 0 + + name + punctuation.definition.tag.end.html + + name + meta.tag.other.invalid.start.html + patterns + - begin - (?=(?i:type)) - end - (<)(?=/(?i:script)) - endCaptures - - 0 - - name - meta.tag.metadata.script.end.html - - 1 - - name - punctuation.definition.tag.begin.html - - - patterns - - - begin - \G - end - (>) - endCaptures - - 1 - - name - punctuation.definition.tag.end.html - - - name - meta.tag.metadata.script.start.html - patterns - - - include - #attribute - - - - - begin - (?!\G) - end - (?=</(?i:script)) - name - source.unknown - - + include + #attribute + + include + #tags + + + include + #tags-invalid + + + + + + tags-invalid + + patterns + + + begin + (</?)((\w[^\s>]*))(?<!/) + beginCaptures + + 1 + + name + punctuation.definition.tag.begin.html + + 2 + + name + entity.name.tag.html + + 3 + + name + invalid.illegal.unrecognized-tag.html + + + end + ((?: ?/)?>) + endCaptures + + 1 + + name + punctuation.definition.tag.end.html + + + name + meta.tag.other.$2.html + patterns + + + include + #attribute + + + + tags-valid + + patterns + + + include + #style + + + include + #script + begin (?i)(<)(base|link|meta)(?=\s|/?>)