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|/?>)