diff --git a/.vscode/launch.json b/.vscode/launch.json index f23e12b..f5ce843 100644 --- a/.vscode/launch.json +++ b/.vscode/launch.json @@ -10,8 +10,8 @@ "type": "extensionHost", "request": "launch", "args": ["${workspaceFolder}/out", "--extensionDevelopmentPath=${workspaceFolder}"], - "outFiles": ["${workspaceFolder}/out/**/*.js"] - // "preLaunchTask": "${defaultBuildTask}" + "outFiles": ["${workspaceFolder}/out/**/*.js"], + "preLaunchTask": "${defaultBuildTask}" }, { "name": "Run Extension Tests", diff --git a/docs/SUPPORTED-THEMES.md b/docs/SUPPORTED-THEMES.md index 29f4649..8f39e79 100644 --- a/docs/SUPPORTED-THEMES.md +++ b/docs/SUPPORTED-THEMES.md @@ -27,5 +27,9 @@ - [One Dark Pro Monokai Darker Theme](https://marketplace.visualstudio.com/items?itemName=eserozvataf.one-dark-pro-monokai-darker) - [Visual Studio 2019 Dark plus syntax](https://marketplace.visualstudio.com/items?itemName=skyletoft.theme-custom-colour) - [Nord](https://marketplace.visualstudio.com/items?itemName=arcticicestudio.nord-visual-studio-code) +- [Catppuccin Mocha](https://marketplace.visualstudio.com/items?itemName=Catppuccin.catppuccin-vsc) +- [Catppuccin Macchiato](https://marketplace.visualstudio.com/items?itemName=Catppuccin.catppuccin-vsc) +- [Catppuccin Frappé](https://marketplace.visualstudio.com/items?itemName=Catppuccin.catppuccin-vsc) +- [Catppuccin Latte](https://marketplace.visualstudio.com/items?itemName=Catppuccin.catppuccin-vsc) - All the default ones - Generic Fallback diff --git a/src/ts/interfaces/themes.ts b/src/ts/interfaces/themes.ts index 9963a88..fc84a46 100644 --- a/src/ts/interfaces/themes.ts +++ b/src/ts/interfaces/themes.ts @@ -1,101 +1,3 @@ -export type SupportedThemes = [ - | 'Abyss' - | 'Angular Theme' - | 'Atom One Dark' - | 'Ayu Dark' - | 'Ayu Dark Bordered' - | 'Ayu Light' - | 'Ayu Light Bordered' - | 'Ayu Mirage' - | 'Ayu Mirage Bordered' - | 'Community Material Theme' - | 'Community Material Theme Darker' - | 'Community Material Theme Darker High Contrast' - | 'Community Material Theme High Contrast' - | 'Community Material Theme Lighter' - | 'Community Material Theme Lighter High Contrast' - | 'Community Material Theme Ocean' - | 'Community Material Theme Ocean High Contrast' - | 'Community Material Theme Palenight' - | 'Community Material Theme Palenight High Contrast' - | 'Darcula' - | 'Darcula - Black Edition' - | 'Darcula - WebStorm Edition' - | 'Dark (Visual Studio - CC++)' - | 'Dark (Visual Studio)' - | 'Dark High Contrast' - | 'Dark Modern' - | 'Dark Purple - Black Edition' - | 'Dark Purple - Webstorm' - | 'dark-plus-syntax' - | 'dark-plus-syntax (high contrast)' - | 'Default Dark+' - | 'Default Dark Modern' - | 'Default Light+' - | 'Dracula' - | 'Dracula Soft' - | 'GitHub Dark' - | 'GitHub Dark Colorblind (Beta)' - | 'GitHub Dark Default' - | 'GitHub Dark Dimmed' - | 'GitHub Dark High Contrast' - | 'GitHub Light' - | 'GitHub Light Colorblind (Beta)' - | 'GitHub Light Default' - | 'Github Light High Contrast' - | 'index.ts' - | 'Kimbie Dark' - | 'Light (Visual Studio - CC++)' - | 'Light (Visual Studio)' - | 'Light High Contrast' - | 'light-plus-syntax' - | 'light-plus-syntax (high contrast)' - | 'Material Theme' - | 'Material Theme Darker' - | 'Material Theme Darker High Contrast' - | 'Material Theme Lighter' - | 'Material Theme Lighter High Contrast' - | 'Material Theme Ocean' - | 'Material Theme Ocean High Contrast' - | 'Material Theme Palenight' - | 'Material Theme Palenight High Contrast' - | 'Monokai' - | 'Monokai Classic' - | 'Monokai Dimmed' - | 'Monokai Pro' - | 'Monokai Pro (Filter Machine)' - | 'Monokai Pro (Filter Octagon)' - | 'Monokai Pro (Filter Ristretto)' - | 'Monokai Pro (Filter Spectrum)' - | 'Monokai++' - | 'Monokai++Dark' - | 'Monokai++Unified' - | 'Night Owl' - | 'Night Owl (No Italics)' - | 'Night Owl Light' - | 'Night Owl Light (No Italics)' - | 'Nord' - | 'One Dark Pro' - | 'One Dark Pro Darker' - | 'One Dark Pro Flat' - | 'One Dark Pro Mix' - | 'One Monokai' - | 'Quiet Light' - | 'Red' - | 'Solarized Dark' - | 'Solarized Light' - // eslint-disable-next-line @typescript-eslint/quotes - | "SynthWave '84" - | 'Tomorrow Night Blue' - | 'Visual Studio 2019 Dark plus syntax' - | 'Winter is Coming (Dark Black - No Italics)' - | 'Winter is Coming (Dark Black)' - | 'Winter is Coming (Dark Blue - No Italics)' - | 'Winter is Coming (Dark Blue)' - | 'Winter is Coming (Light)' - | 'Winter is Coming (Lights - No Italics)', -]; - export const supportedThemes = [ 'Abyss', 'Atom One Dark', @@ -105,6 +7,10 @@ export const supportedThemes = [ 'Ayu Light Bordered', 'Ayu Mirage', 'Ayu Mirage Bordered', + 'Catppuccin Frappé', + 'Catppuccin Latte', + 'Catppuccin Macchiato', + 'Catppuccin Mocha', 'Community Material Theme', 'Community Material Theme Darker', 'Community Material Theme Darker High Contrast', @@ -191,4 +97,6 @@ export const supportedThemes = [ 'Winter is Coming (Dark Blue)', 'Winter is Coming (Light)', 'Winter is Coming (Lights - No Italics)', -] as unknown as SupportedThemes[]; +] as const; + +export type SupportedThemes = (typeof supportedThemes)[number]; diff --git "a/src/ts/themes/Catppuccin Frapp\303\251/index.ts" "b/src/ts/themes/Catppuccin Frapp\303\251/index.ts" new file mode 100644 index 0000000..0becdf1 --- /dev/null +++ "b/src/ts/themes/Catppuccin Frapp\303\251/index.ts" @@ -0,0 +1,12 @@ +import type { Scopes } from '../../interfaces/custom-scopes-per-rule'; + +export = { + 'constant.character.entity.html': '#CA9EE6', + 'constant.numeric.angular-directive': '#E5C890', + 'entity.name.tag.other.html': '#8CAAEE', + 'keyword.operator.entity.html': '#81C8BE', + 'keyword.operator.expression.let.js': '#CA9EE6', + 'keyword.operator.punctuation': '#CA9EE6', + 'string.regexp': '#F4B8E4', + 'support.type.object.html-attribute': '#E5C890', +} as Scopes; diff --git a/src/ts/themes/Catppuccin Latte/index.ts b/src/ts/themes/Catppuccin Latte/index.ts new file mode 100644 index 0000000..845dfe9 --- /dev/null +++ b/src/ts/themes/Catppuccin Latte/index.ts @@ -0,0 +1,12 @@ +import type { Scopes } from '../../interfaces/custom-scopes-per-rule'; + +export = { + 'constant.character.entity.html': '#8839EF', + 'constant.numeric.angular-directive': '#EA76CB', + 'entity.name.tag.other.html': '#1E66F5', + 'keyword.operator.entity.html': '#8839EF', + 'keyword.operator.expression.let.js': '#8839EF', + 'keyword.operator.punctuation': '#8839EF', + 'string.regexp': '#EA76CB', + 'support.type.object.html-attribute': '#DF8E1D', +} as Scopes; diff --git a/src/ts/themes/Catppuccin Macchiato/index.ts b/src/ts/themes/Catppuccin Macchiato/index.ts new file mode 100644 index 0000000..38027e1 --- /dev/null +++ b/src/ts/themes/Catppuccin Macchiato/index.ts @@ -0,0 +1,12 @@ +import type { Scopes } from '../../interfaces/custom-scopes-per-rule'; + +export = { + 'constant.character.entity.html': '#C6A0F6', + 'constant.numeric.angular-directive': '#EED49F', + 'entity.name.tag.other.html': '#8AADF4', + 'keyword.operator.entity.html': '#8BD5CA', + 'keyword.operator.expression.let.js': '#C6A0F6', + 'keyword.operator.punctuation': '#8BD5CA', + 'string.regexp': '#C6A0F6', + 'support.type.object.html-attribute': '#EED49F', +} as Scopes; diff --git a/src/ts/themes/Catppuccin Mocha/index.ts b/src/ts/themes/Catppuccin Mocha/index.ts new file mode 100644 index 0000000..e429c87 --- /dev/null +++ b/src/ts/themes/Catppuccin Mocha/index.ts @@ -0,0 +1,12 @@ +import type { Scopes } from '../../interfaces/custom-scopes-per-rule'; + +export = { + 'constant.character.entity.html': '#F38BA8', + 'constant.numeric.angular-directive': '#94E2D5', + 'entity.name.tag.other.html': '#89B4FA', + 'keyword.operator.entity.html': '#FAB387', + 'keyword.operator.expression.let.js': '#CBA6F7', + 'keyword.operator.punctuation': '#94E2D5', + 'string.regexp': '#CBA6F7', + 'support.type.object.html-attribute': '#F9E2AF', +} as Scopes; diff --git a/src/ts/themes/index.ts b/src/ts/themes/index.ts index 57e8c54..b868381 100644 --- a/src/ts/themes/index.ts +++ b/src/ts/themes/index.ts @@ -2,7 +2,7 @@ import { LegacyScopes } from '../interfaces/custom-scopes-per-rule'; import { supportedThemes } from '../interfaces/themes'; import { getSettingsJSON, setSettingsJSON } from '../settings'; -import * as JSONC from 'jsonc-parser'; +import * as jsonC from 'jsonc-parser'; import * as vscode from 'vscode'; import type { GeneratedTheme, Scopes } from '../interfaces/custom-scopes-per-rule'; @@ -11,7 +11,7 @@ import type { Debug } from '../tools'; const fetchThemeColors = async (): Promise => { await vscode.commands.executeCommand('workbench.action.generateColorTheme'); - const content = JSONC.parse(vscode.window.activeTextEditor?.document.getText() as string); + const content = jsonC.parse(vscode.window.activeTextEditor?.document.getText() as string); await vscode.commands.executeCommand('editor.action.selectAll'); await vscode.commands.executeCommand('editor.action.clipboardCutAction'); await vscode.commands.executeCommand('workbench.action.closeActiveEditor'); diff --git a/syntaxes/html-template.ng.json b/syntaxes/html-template.ng.json index acbf6d0..2403e59 100644 --- a/syntaxes/html-template.ng.json +++ b/syntaxes/html-template.ng.json @@ -209,79 +209,6 @@ } ], "repository": { - "tag-stuff": { - "patterns": [ - { - "include": "#aria-attributes" - }, - { - "include": "#aria-boolean-attributes" - }, - { - "include": "#data-attributes" - }, - { - "include": "#data-boolean-attributes" - }, - { - "include": "#generic-style-attribute" - }, - { - "include": "#tag-double-way-annimation-trigger" - }, - { - "include": "#tag-double-way-non-standard" - }, - { - "include": "#tag-double-way-standard" - }, - { - "include": "#tag-input-binding" - }, - { - "include": "#tag-event-handler" - }, - { - "include": "#tag-sugar-attributes" - }, - { - "include": "#tag-boolean-sugar-attributes" - }, - { - "include": "#tag-annimation-trigger" - }, - { - "include": "#tag-template-variable" - }, - { - "include": "#tag-boolean-template-variable" - }, - { - "include": "#tag-alt-template-variable" - }, - { - "include": "#tag-template-input-variable" - }, - { - "include": "#tag-boolean-alt-template-variable" - }, - { - "include": "#tag-boolean-template-input-variable" - }, - { - "include": "#tag-generic-attribute" - }, - { - "include": "#tag-events-attribute" - }, - { - "include": "#string-double-quoted-capture" - }, - { - "include": "#tag-minified-boolean-attributes" - } - ] - }, "cdata": { "begin": ")", + "name": "meta.element.custom.html" }, - "tag-boolean-sugar-attributes": { - "captures": { + "tag-definition-primeng": { + "beginCaptures": { "0": { - "name": "meta.ng-binding.template.sugar.boolean.html" + "name": "meta.tag.primeng.$2.start.html" }, "1": { - "name": "entity.other.attribute-name.html html-template.ng.attributes.prefix.sugar" + "name": "punctuation.definition.tag.begin.html" }, "2": { - "name": "entity.other.attribute-name.html html-template.ng.attributes.suffix.sugar" + "name": "meta.tag.structure.html entity.name.tag.html.primeng entity.name.tag.html.primeng.$2" }, "3": { - "name": "entity.other.attribute-name.html html-template.ng.attributes.suffix.rxjs" + "name": "entity.name.tag.html html-template.ng.tag.colon" + }, + "4": { + "name": "entity.name.tag.html html-template.ng.tag.suffix" } }, - "match": "(\\*)([\\w\\-\\_]+)?([$]*)?(?!=)[\\s]?" - }, - "tag-boolean-template-input-variable": { - "captures": { + "patterns": [ + { + "include": "#tag-stuff" + } + ], + "begin": "()", + "name": "meta.element.primeng.html" }, - "tag-boolean-template-variable": { - "captures": { + "tag-definition-kendo": { + "beginCaptures": { "0": { - "name": "meta.ng-binding.template.variable.boolean.html" + "name": "meta.tag.kendo.$2.start.html" }, "1": { - "name": "entity.other.attribute-name.html html-template.ng.attributes.template.prefix" + "name": "punctuation.definition.tag.begin.html" }, "2": { - "name": "entity.other.attribute-name.html html-template.ng.attributes.template.variable" + "name": "meta.tag.structure.html entity.name.tag.html.kendo entity.name.tag.html.kendo.$2" }, "3": { - "name": "entity.other.attribute-name.html html-template.ng.attributes.suffix.rxjs" + "name": "entity.name.tag.html html-template.ng.tag.colon" + }, + "4": { + "name": "entity.name.tag.html html-template.ng.tag.suffix" } }, - "match": "(#)\\b([\\w\\-\\_]+)([$]*)(?!=)[\\s]?" - }, - "tag-double-way-annimation-trigger": { - "captures": { + "patterns": [ + { + "include": "#tag-stuff" + } + ], + "begin": "()", + "name": "meta.element.kendo.html" + }, + "comment": { + "patterns": [ + { + "name": "comment.block.html", + "begin": "", + "endCaptures": { + "0": { + "name": "punctuation.definition.comment.end.html" + } + }, + "patterns": [ + { + "include": "#comment" + } + ] + } + ] + }, + "doctype": { + "patterns": [ + { + "endCaptures": { + "1": { + "name": "punctuation.definition.tag.end.html" + } + }, + "beginCaptures": { + "1": { + "name": "punctuation.definition.tag.begin.html" + }, + "2": { + "name": "punctuation.definition.tag.begin.html html-template.ng.exclamation.doctype" + }, + "3": { + "name": "entity.name.tag.html.doctype html-template.ng.doctype" + } + }, + "begin": "(<)(!)((?i:doctype))", + "end": "(>)", + "name": "meta.tag.metadata.doctype.html", + "patterns": [ + { + "begin": "(\\[)", + "beginCaptures": { + "0": { + "name": "punctuation.definition.dtd.begin.html" + } + }, + "end": "(\\])", + "endCaptures": { + "0": { + "name": "punctuation.definition.dtd.end.html" + } + }, + "patterns": [ + { + "include": "#xml-dtd" + } + ] + }, + { + "include": "#string-double-quoted-capture" + }, + { + "match": "[^\\s>]+", + "name": "entity.other.attribute-name.html html-template.ng.attribute.doctype" + } + ] + } + ] + }, + "entities": { + "patterns": [ + { + "captures": { + "1": { + "name": "punctuation.definition.entity.html html-template.ng.entities.ampersand" + }, + "912": { + "name": "punctuation.definition.entity.html html-template.ng.entities.semicolon" + } + }, + "match": "(?x)(&)(?=[a-zA-Z])((a(s(ymp(eq)?|cr|t)|n(d(slope|d|v|and)?|g(s(t|ph)|zarr|e|le|rt(vb(d)?)?|msd(a(h|c|d|e|f|a|g|b))?)?)|c(y|irc|d|ute|E)?|tilde|o(pf|gon)|uml|p(id|os|prox(eq)?|e|E|acir)?|elig|f(r)?|w(conint|int)|l(pha|e(ph|fsym))|acute|ring|grave|m(p|a(cr|lg))|breve)|A(s(sign|cr)|nd|MP|c(y|irc)|tilde|o(pf|gon)|uml|pplyFunction|fr|Elig|lpha|acute|ring|grave|macr|breve))|(B(scr|cy|opf|umpeq|e(cause|ta|rnoullis)|fr|a(ckslash|r(v|wed))|reve)|b(s(cr|im(e)?|ol(hsub|b)?|emi)|n(ot|e(quiv)?)|c(y|ong)|ig(s(tar|qcup)|c(irc|up|ap)|triangle(down|up)|o(times|dot|plus)|uplus|vee|wedge)|o(t(tom)?|pf|wtie|x(h(d|u|D|U)?|times|H(d|u|D|U)?|d(R|l|r|L)|u(R|l|r|L)|plus|D(R|l|r|L)|v(R|h|H|l|r|L)?|U(R|l|r|L)|V(R|h|H|l|r|L)?|minus|box))|Not|dquo|u(ll(et)?|mp(e(q)?|E)?)|prime|e(caus(e)?|t(h|ween|a)|psi|rnou|mptyv)|karow|fr|l(ock|k(1(2|4)|34)|a(nk|ck(square|triangle(down|left|right)?|lozenge)))|a(ck(sim(eq)?|cong|prime|epsilon)|r(vee|wed(ge)?))|r(eve|vbar)|brk(tbrk)?))|(c(s(cr|u(p(e)?|b(e)?))|h(cy|i|eck(mark)?)|ylcty|c(irc|ups(sm)?|edil|a(ps|ron))|tdot|ir(scir|c(eq|le(d(R|circ|S|dash|ast)|arrow(left|right)))?|e|fnint|E|mid)?|o(n(int|g(dot)?)|p(y(sr)?|f|rod)|lon(e(q)?)?|m(p(fn|le(xes|ment))?|ma(t)?))|dot|u(darr(l|r)|p(s|c(up|ap)|or|dot|brcap)?|e(sc|pr)|vee|wed|larr(p)?|r(vearrow(left|right)|ly(eq(succ|prec)|vee|wedge)|arr(m)?|ren))|e(nt(erdot)?|dil|mptyv)|fr|w(conint|int)|lubs(uit)?|a(cute|p(s|c(up|ap)|dot|and|brcup)?|r(on|et))|r(oss|arr))|C(scr|hi|c(irc|onint|edil|aron)|ircle(Minus|Times|Dot|Plus)|Hcy|o(n(tourIntegral|int|gruent)|unterClockwiseContourIntegral|p(f|roduct)|lon(e)?)|dot|up(Cap)?|OPY|e(nterDot|dilla)|fr|lo(seCurly(DoubleQuote|Quote)|ckwiseContourIntegral)|a(yleys|cute|p(italDifferentialD)?)|ross))|(d(s(c(y|r)|trok|ol)|har(l|r)|c(y|aron)|t(dot|ri(f)?)|i(sin|e|v(ide(ontimes)?|onx)?|am(s|ond(suit)?)?|gamma)|Har|z(cy|igrarr)|o(t(square|plus|eq(dot)?|minus)?|ublebarwedge|pf|wn(harpoon(left|right)|downarrows|arrow)|llar)|d(otseq|a(rr|gger))?|u(har|arr)|jcy|e(lta|g|mptyv)|f(isht|r)|wangle|lc(orn|rop)|a(sh(v)?|leth|rr|gger)|r(c(orn|rop)|bkarow)|b(karow|lac)|Arr)|D(s(cr|trok)|c(y|aron)|Scy|i(fferentialD|a(critical(Grave|Tilde|Do(t|ubleAcute)|Acute)|mond))|o(t(Dot|Equal)?|uble(Right(Tee|Arrow)|ContourIntegral|Do(t|wnArrow)|Up(DownArrow|Arrow)|VerticalBar|L(ong(RightArrow|Left(RightArrow|Arrow))|eft(RightArrow|Tee|Arrow)))|pf|wn(Right(TeeVector|Vector(Bar)?)|Breve|Tee(Arrow)?|arrow|Left(RightVector|TeeVector|Vector(Bar)?)|Arrow(Bar|UpArrow)?))|Zcy|el(ta)?|D(otrahd)?|Jcy|fr|a(shv|rr|gger)))|(e(s(cr|im|dot)|n(sp|g)|c(y|ir(c)?|olon|aron)|t(h|a)|o(pf|gon)|dot|u(ro|ml)|p(si(v|lon)?|lus|ar(sl)?)|e|D(ot|Dot)|q(s(im|lant(less|gtr))|c(irc|olon)|u(iv(DD)?|est|als)|vparsl)|f(Dot|r)|l(s(dot)?|inters|l)?|a(ster|cute)|r(Dot|arr)|g(s(dot)?|rave)?|x(cl|ist|p(onentiale|ectation))|m(sp(1(3|4))?|pty(set|v)?|acr))|E(s(cr|im)|c(y|irc|aron)|ta|o(pf|gon)|NG|dot|uml|TH|psilon|qu(ilibrium|al(Tilde)?)|fr|lement|acute|grave|x(ists|ponentialE)|m(pty(SmallSquare|VerySmallSquare)|acr)))|(f(scr|nof|cy|ilig|o(pf|r(k(v)?|all))|jlig|partint|emale|f(ilig|l(ig|lig)|r)|l(tns|lig|at)|allingdotseq|r(own|a(sl|c(1(2|8|3|4|5|6)|78|2(3|5)|3(8|4|5)|45|5(8|6)))))|F(scr|cy|illed(SmallSquare|VerySmallSquare)|o(uriertrf|pf|rAll)|fr))|(G(scr|c(y|irc|edil)|t|opf|dot|T|Jcy|fr|amma(d)?|reater(Greater|SlantEqual|Tilde|Equal(Less)?|FullEqual|Less)|g|breve)|g(s(cr|im(e|l)?)|n(sim|e(q(q)?)?|E|ap(prox)?)|c(y|irc)|t(c(c|ir)|dot|quest|lPar|r(sim|dot|eq(qless|less)|less|a(pprox|rr)))?|imel|opf|dot|jcy|e(s(cc|dot(o(l)?)?|l(es)?)?|q(slant|q)?|l)?|v(nE|ertneqq)|fr|E(l)?|l(j|E|a)?|a(cute|p|mma(d)?)|rave|g(g)?|breve))|(h(s(cr|trok|lash)|y(phen|bull)|circ|o(ok(leftarrow|rightarrow)|pf|arr|rbar|mtht)|e(llip|arts(uit)?|rcon)|ks(earow|warow)|fr|a(irsp|lf|r(dcy|r(cir|w)?)|milt)|bar|Arr)|H(s(cr|trok)|circ|ilbertSpace|o(pf|rizontalLine)|ump(DownHump|Equal)|fr|a(cek|t)|ARDcy))|(i(s(cr|in(s(v)?|dot|v|E)?)|n(care|t(cal|prod|e(rcal|gers)|larhk)?|odot|fin(tie)?)?|c(y|irc)?|t(ilde)?|i(nfin|i(nt|int)|ota)?|o(cy|ta|pf|gon)|u(kcy|ml)|jlig|prod|e(cy|xcl)|quest|f(f|r)|acute|grave|m(of|ped|a(cr|th|g(part|e|line))))|I(scr|n(t(e(rsection|gral))?|visible(Comma|Times))|c(y|irc)|tilde|o(ta|pf|gon)|dot|u(kcy|ml)|Ocy|Jlig|fr|Ecy|acute|grave|m(plies|a(cr|ginaryI))?))|(j(s(cr|ercy)|c(y|irc)|opf|ukcy|fr|math)|J(s(cr|ercy)|c(y|irc)|opf|ukcy|fr))|(k(scr|hcy|c(y|edil)|opf|jcy|fr|appa(v)?|green)|K(scr|c(y|edil)|Hcy|opf|Jcy|fr|appa))|(l(s(h|cr|trok|im(e|g)?|q(uo(r)?|b)|aquo)|h(ar(d|u(l)?)|blk)|n(sim|e(q(q)?)?|E|ap(prox)?)|c(y|ub|e(il|dil)|aron)|Barr|t(hree|c(c|ir)|imes|dot|quest|larr|r(i(e|f)?|Par))?|Har|o(ng(left(arrow|rightarrow)|rightarrow|mapsto)|times|z(enge|f)?|oparrow(left|right)|p(f|lus|ar)|w(ast|bar)|a(ng|rr)|brk)|d(sh|ca|quo(r)?|r(dhar|ushar))|ur(dshar|uhar)|jcy|par(lt)?|e(s(s(sim|dot|eq(qgtr|gtr)|approx|gtr)|cc|dot(o(r)?)?|g(es)?)?|q(slant|q)?|ft(harpoon(down|up)|threetimes|leftarrows|arrow(tail)?|right(squigarrow|harpoons|arrow(s)?))|g)?|v(nE|ertneqq)|f(isht|loor|r)|E(g)?|l(hard|corner|tri|arr)?|a(ng(d|le)?|cute|t(e(s)?|ail)?|p|emptyv|quo|rr(sim|hk|tl|pl|fs|lp|b(fs)?)?|gran|mbda)|r(har(d)?|corner|tri|arr|m)|g(E)?|m(idot|oust(ache)?)|b(arr|r(k(sl(d|u)|e)|ac(e|k))|brk)|A(tail|arr|rr))|L(s(h|cr|trok)|c(y|edil|aron)|t|o(ng(RightArrow|left(arrow|rightarrow)|rightarrow|Left(RightArrow|Arrow))|pf|wer(RightArrow|LeftArrow))|T|e(ss(Greater|SlantEqual|Tilde|EqualGreater|FullEqual|Less)|ft(Right(Vector|Arrow)|Ceiling|T(ee(Vector|Arrow)?|riangle(Bar|Equal)?)|Do(ubleBracket|wn(TeeVector|Vector(Bar)?))|Up(TeeVector|DownVector|Vector(Bar)?)|Vector(Bar)?|arrow|rightarrow|Floor|A(ngleBracket|rrow(RightArrow|Bar)?)))|Jcy|fr|l(eftarrow)?|a(ng|cute|placetrf|rr|mbda)|midot))|(M(scr|cy|inusPlus|opf|u|e(diumSpace|llintrf)|fr|ap)|m(s(cr|tpos)|ho|nplus|c(y|omma)|i(nus(d(u)?|b)?|cro|d(cir|dot|ast)?)|o(dels|pf)|dash|u(ltimap|map)?|p|easuredangle|DDot|fr|l(cp|dr)|a(cr|p(sto(down|up|left)?)?|l(t(ese)?|e)|rker)))|(n(s(hort(parallel|mid)|c(cue|e|r)?|im(e(q)?)?|u(cc(eq)?|p(set(eq(q)?)?|e|E)?|b(set(eq(q)?)?|e|E)?)|par|qsu(pe|be)|mid)|Rightarrow|h(par|arr|Arr)|G(t(v)?|g)|c(y|ong(dot)?|up|edil|a(p|ron))|t(ilde|lg|riangle(left(eq)?|right(eq)?)|gl)|i(s(d)?|v)?|o(t(ni(v(c|a|b))?|in(dot|v(c|a|b)|E)?)?|pf)|dash|u(m(sp|ero)?)?|jcy|p(olint|ar(sl|t|allel)?|r(cue|e(c(eq)?)?)?)|e(s(im|ear)|dot|quiv|ar(hk|r(ow)?)|xist(s)?|Arr)?|v(sim|infin|Harr|dash|Dash|l(t(rie)?|e|Arr)|ap|r(trie|Arr)|g(t|e))|fr|w(near|ar(hk|r(ow)?)|Arr)|V(dash|Dash)|l(sim|t(ri(e)?)?|dr|e(s(s)?|q(slant|q)?|ft(arrow|rightarrow))?|E|arr|Arr)|a(ng|cute|tur(al(s)?)?|p(id|os|prox|E)?|bla)|r(tri(e)?|ightarrow|arr(c|w)?|Arr)|g(sim|t(r)?|e(s|q(slant|q)?)?|E)|mid|L(t(v)?|eft(arrow|rightarrow)|l)|b(sp|ump(e)?))|N(scr|c(y|edil|aron)|tilde|o(nBreakingSpace|Break|t(R(ightTriangle(Bar|Equal)?|everseElement)|Greater(Greater|SlantEqual|Tilde|Equal|FullEqual|Less)?|S(u(cceeds(SlantEqual|Tilde|Equal)?|perset(Equal)?|bset(Equal)?)|quareSu(perset(Equal)?|bset(Equal)?))|Hump(DownHump|Equal)|Nested(GreaterGreater|LessLess)|C(ongruent|upCap)|Tilde(Tilde|Equal|FullEqual)?|DoubleVerticalBar|Precedes(SlantEqual|Equal)?|E(qual(Tilde)?|lement|xists)|VerticalBar|Le(ss(Greater|SlantEqual|Tilde|Equal|Less)?|ftTriangle(Bar|Equal)?))?|pf)|u|e(sted(GreaterGreater|LessLess)|wLine|gative(MediumSpace|Thi(nSpace|ckSpace)|VeryThinSpace))|Jcy|fr|acute))|(o(s(cr|ol|lash)|h(m|bar)|c(y|ir(c)?)|ti(lde|mes(as)?)|S|int|opf|d(sold|iv|ot|ash|blac)|uml|p(erp|lus|ar)|elig|vbar|f(cir|r)|l(c(ir|ross)|t|ine|arr)|a(st|cute)|r(slope|igof|or|d(er(of)?|f|m)?|v|arr)?|g(t|on|rave)|m(i(nus|cron|d)|ega|acr))|O(s(cr|lash)|c(y|irc)|ti(lde|mes)|opf|dblac|uml|penCurly(DoubleQuote|Quote)|ver(B(ar|rac(e|ket))|Parenthesis)|fr|Elig|acute|r|grave|m(icron|ega|acr)))|(p(s(cr|i)|h(i(v)?|one|mmat)|cy|i(tchfork|v)?|o(intint|und|pf)|uncsp|er(cnt|tenk|iod|p|mil)|fr|l(us(sim|cir|two|d(o|u)|e|acir|mn|b)?|an(ck(h)?|kv))|ar(s(im|l)|t|a(llel)?)?|r(sim|n(sim|E|ap)|cue|ime(s)?|o(d|p(to)?|f(surf|line|alar))|urel|e(c(sim|n(sim|eqq|approx)|curlyeq|eq|approx)?)?|E|ap)?|m)|P(s(cr|i)|hi|cy|i|o(incareplane|pf)|fr|lusMinus|artialD|r(ime|o(duct|portion(al)?)|ecedes(SlantEqual|Tilde|Equal)?)?))|(q(scr|int|opf|u(ot|est(eq)?|at(int|ernions))|prime|fr)|Q(scr|opf|UOT|fr))|(R(s(h|cr)|ho|c(y|edil|aron)|Barr|ight(Ceiling|T(ee(Vector|Arrow)?|riangle(Bar|Equal)?)|Do(ubleBracket|wn(TeeVector|Vector(Bar)?))|Up(TeeVector|DownVector|Vector(Bar)?)|Vector(Bar)?|arrow|Floor|A(ngleBracket|rrow(Bar|LeftArrow)?))|o(undImplies|pf)|uleDelayed|e(verse(UpEquilibrium|E(quilibrium|lement)))?|fr|EG|a(ng|cute|rr(tl)?)|rightarrow)|r(s(h|cr|q(uo(r)?|b)|aquo)|h(o(v)?|ar(d|u(l)?))|nmid|c(y|ub|e(il|dil)|aron)|Barr|t(hree|imes|ri(e|f|ltri)?)|i(singdotseq|ng|ght(squigarrow|harpoon(down|up)|threetimes|left(harpoons|arrows)|arrow(tail)?|rightarrows))|Har|o(times|p(f|lus|ar)|a(ng|rr)|brk)|d(sh|ca|quo(r)?|ldhar)|uluhar|p(polint|ar(gt)?)|e(ct|al(s|ine|part)?|g)|f(isht|loor|r)|l(har|arr|m)|a(ng(d|e|le)?|c(ute|e)|t(io(nals)?|ail)|dic|emptyv|quo|rr(sim|hk|c|tl|pl|fs|w|lp|ap|b(fs)?)?)|rarr|x|moust(ache)?|b(arr|r(k(sl(d|u)|e)|ac(e|k))|brk)|A(tail|arr|rr)))|(s(s(cr|tarf|etmn|mile)|h(y|c(hcy|y)|ort(parallel|mid)|arp)|c(sim|y|n(sim|E|ap)|cue|irc|polint|e(dil)?|E|a(p|ron))?|t(ar(f)?|r(ns|aight(phi|epsilon)))|i(gma(v|f)?|m(ne|dot|plus|e(q)?|l(E)?|rarr|g(E)?)?)|zlig|o(pf|ftcy|l(b(ar)?)?)|dot(e|b)?|u(ng|cc(sim|n(sim|eqq|approx)|curlyeq|eq|approx)?|p(s(im|u(p|b)|et(neq(q)?|eq(q)?)?)|hs(ol|ub)|1|n(e|E)|2|d(sub|ot)|3|plus|e(dot)?|E|larr|mult)?|m|b(s(im|u(p|b)|et(neq(q)?|eq(q)?)?)|n(e|E)|dot|plus|e(dot)?|E|rarr|mult)?)|pa(des(uit)?|r)|e(swar|ct|tm(n|inus)|ar(hk|r(ow)?)|xt|mi|Arr)|q(su(p(set(eq)?|e)?|b(set(eq)?|e)?)|c(up(s)?|ap(s)?)|u(f|ar(e|f))?)|fr(own)?|w(nwar|ar(hk|r(ow)?)|Arr)|larr|acute|rarr|m(t(e(s)?)?|i(d|le)|eparsl|a(shp|llsetminus))|bquo)|S(scr|hort(RightArrow|DownArrow|UpArrow|LeftArrow)|c(y|irc|edil|aron)?|tar|igma|H(cy|CHcy)|opf|u(c(hThat|ceeds(SlantEqual|Tilde|Equal)?)|p(set|erset(Equal)?)?|m|b(set(Equal)?)?)|OFTcy|q(uare(Su(perset(Equal)?|bset(Equal)?)|Intersection|Union)?|rt)|fr|acute|mallCircle))|(t(s(hcy|c(y|r)|trok)|h(i(nsp|ck(sim|approx))|orn|e(ta(sym|v)?|re(4|fore))|k(sim|ap))|c(y|edil|aron)|i(nt|lde|mes(d|b(ar)?)?)|o(sa|p(cir|f(ork)?|bot)?|ea)|dot|prime|elrec|fr|w(ixt|ohead(leftarrow|rightarrow))|a(u|rget)|r(i(sb|time|dot|plus|e|angle(down|q|left(eq)?|right(eq)?)?|minus)|pezium|ade)|brk)|T(s(cr|trok)|RADE|h(i(nSpace|ckSpace)|e(ta|refore))|c(y|edil|aron)|S(cy|Hcy)|ilde(Tilde|Equal|FullEqual)?|HORN|opf|fr|a(u|b)|ripleDot))|(u(scr|h(ar(l|r)|blk)|c(y|irc)|t(ilde|dot|ri(f)?)|Har|o(pf|gon)|d(har|arr|blac)|u(arr|ml)|p(si(h|lon)?|harpoon(left|right)|downarrow|uparrows|lus|arrow)|f(isht|r)|wangle|l(c(orn(er)?|rop)|tri)|a(cute|rr)|r(c(orn(er)?|rop)|tri|ing)|grave|m(l|acr)|br(cy|eve)|Arr)|U(scr|n(ion(Plus)?|der(B(ar|rac(e|ket))|Parenthesis))|c(y|irc)|tilde|o(pf|gon)|dblac|uml|p(si(lon)?|downarrow|Tee(Arrow)?|per(RightArrow|LeftArrow)|DownArrow|Equilibrium|arrow|Arrow(Bar|DownArrow)?)|fr|a(cute|rr(ocir)?)|ring|grave|macr|br(cy|eve)))|(v(s(cr|u(pn(e|E)|bn(e|E)))|nsu(p|b)|cy|Bar(v)?|zigzag|opf|dash|prop|e(e(eq|bar)?|llip|r(t|bar))|Dash|fr|ltri|a(ngrt|r(s(igma|u(psetneq(q)?|bsetneq(q)?))|nothing|t(heta|riangle(left|right))|p(hi|i|ropto)|epsilon|kappa|r(ho)?))|rtri|Arr)|V(scr|cy|opf|dash(l)?|e(e|r(yThinSpace|t(ical(Bar|Separator|Tilde|Line))?|bar))|Dash|vdash|fr|bar))|(w(scr|circ|opf|p|e(ierp|d(ge(q)?|bar))|fr|r(eath)?)|W(scr|circ|opf|edge|fr))|(X(scr|i|opf|fr)|x(s(cr|qcup)|h(arr|Arr)|nis|c(irc|up|ap)|i|o(time|dot|p(f|lus))|dtri|u(tri|plus)|vee|fr|wedge|l(arr|Arr)|r(arr|Arr)|map))|(y(scr|c(y|irc)|icy|opf|u(cy|ml)|en|fr|ac(y|ute))|Y(scr|c(y|irc)|opf|uml|Icy|Ucy|fr|acute|Acy))|(z(scr|hcy|c(y|aron)|igrarr|opf|dot|e(ta|etrf)|fr|w(nj|j)|acute)|Z(scr|c(y|aron)|Hcy|opf|dot|e(ta|roWidthSpace)|fr|acute)))(;)", + "name": "constant.character.entity.named.$2.html" }, - "3": { - "name": "entity.other.attribute-name.html html-template.ng.attributes.animationtrigger.variable" + { + "captures": { + "1": { + "name": "punctuation.definition.entity.html html-template.ng.entities.ampersand" + }, + "2": { + "name": "punctuation.definition.entity.html html-template.ng.entities.semicolon" + } + }, + "match": "(&)#[0-9]+(;)", + "name": "constant.character.entity.numeric.decimal.html" }, - "4": { - "name": "entity.other.attribute-name.html html-template.ng.attributes.suffix.rxjs" + { + "captures": { + "1": { + "name": "punctuation.definition.entity.html html-template.ng.entities.ampersand" + }, + "3": { + "name": "punctuation.definition.entity.html html-template.ng.entities.semicolon" + } + }, + "match": "(&)#[xX][0-9a-fA-F]+(;)", + "name": "constant.character.entity.numeric.hexadecimal.html" }, - "5": { - "name": "entity.other.ng-binding-name.property.html entity.other.ng-binding-name.two-way.html punctuation.definition.ng-binding-name.end.html" + { + "match": "(&[a-zA-Z0-9]+;)", + "captures": { + "1": { + "name": "invalid.illegal.ambiguous-ampersand.html" + } + } } - }, - "match": "(?)", + "name": "meta.element.inline.html" }, - "tag-double-way-standard": { - "captures": { + "tag-definition-inline": { + "beginCaptures": { "0": { - "name": "meta.ng-binding.two-way.html entity.other.attribute-name.html" + "name": "meta.tag.inline.$2.start.html" }, "1": { - "name": "entity.other.ng-binding-name.property.html entity.other.ng-binding-name.two-way.html punctuation.definition.ng-binding-name.begin.html" + "name": "punctuation.definition.tag.begin.html" }, "2": { - "name": "entity.other.ng-binding-name.property.html entity.other.ng-binding-name.two-way.html html-template.ng.attributes.input-binding.animationTrigger.prefix" + "name": "meta.tag.inline.html entity.name.tag.html html-template.tag.html" }, "3": { - "name": "entity.other.ng-binding-name.property.html entity.other.ng-binding-name.two-way.html\tentity.other.ng-binding-name.$3.html html-template.ng.attributes.input-binding.first-level" + "name": "entity.name.tag.html html-template.ng.tag.colon" }, "4": { - "name": "entity.other.ng-binding-name.property.html entity.other.ng-binding-name.two-way.html\tentity.other.ng-binding-name.$4.html html-template.ng.attributes.input-binding.second-level" - }, - "5": { - "name": "entity.other.ng-binding-name.property.html entity.other.ng-binding-name.two-way.html\tentity.other.ng-binding-name.$5.html html-template.ng.attributes.input-binding.third-level" - }, - "6": { - "name": "entity.other.ng-binding-name.property.html entity.other.ng-binding-name.two-way.html punctuation.definition.ng-binding-name.end.html" - }, - "7": { - "name": "punctuation.separator.key-value.html punctuation.separator.key-value.html-template.ng" - }, - "8": { - "name": "string.quoted.double.html" + "name": "entity.name.tag.html html-template.ng.tag.suffix" } }, + "patterns": [ + { + "include": "#tag-stuff" + } + ], + "begin": "()", + "name": "meta.element.inline.html" }, - "tag-event-handler": { - "name": "meta.ng-binding.event.html", - "captures": { + "tag-definition-metadata-void": { + "beginCaptures": { "0": { - "name": "meta.ng-binding.event.html" + "name": "meta.tag.metadata.$2.void.html" }, "1": { - "name": "entity.other.attribute-name.html entity.other.ng-binding-name.event.html punctuation.definition.ng-binding-name.begin.html" + "name": "punctuation.definition.tag.begin.html" }, "2": { - "name": "entity.other.ng-binding-name.property.html entity.other.ng-binding-name.binding.html html-template.ng.attributes.input-binding.animationTrigger.prefix" + "name": "meta.tag.metadata.html entity.name.tag.html html-template.tag.html" }, "3": { - "name": "entity.other.attribute-name.html entity.other.ng-binding-name.event.html\tentity.other.ng-binding-name.$3.html html-template.ng.attributes.event-handler" + "name": "entity.name.tag.html html-template.ng.tag.colon" }, "4": { - "name": "entity.other.attribute-name.property.html entity.other.ng-binding-name.binding.html entity.other.ng-binding-name.$4.html html-template.ng.attributes.input-binding.second-level" - }, - "5": { - "name": "entity.other.attribute-name.property.html entity.other.ng-binding-name.binding.html entity.other.ng-binding-name.$5.html html-template.ng.attributes.input-binding.third-level" - }, - "6": { - "name": "entity.other.attribute-name.html entity.other.ng-binding-name.event.html punctuation.definition.ng-binding-name.end.html" - }, - "7": { - "name": "punctuation.separator.key-value.html punctuation.separator.key-value.html-template.ng" - }, - "8": { - "name": "string.quoted.double.html" + "name": "entity.name.tag.html html-template.ng.tag.suffix" } }, + "patterns": [ + { + "include": "#tag-stuff" + } + ], + "begin": "()", + "name": "meta.element.metadata.html" }, - "tag-input-binding": { - "captures": { + "tag-definition-metadata": { + "beginCaptures": { "0": { - "name": "meta.ng-binding.property.html entity.other.attribute-name.html" + "name": "meta.tag.metadata.$2.start.html" }, "1": { - "name": "entity.other.ng-binding-name.property.html entity.other.ng-binding-name.binding.html punctuation.definition.ng-binding-name.begin.html" + "name": "punctuation.definition.tag.begin.html" }, "2": { - "name": "entity.other.ng-binding-name.property.html entity.other.ng-binding-name.binding.html html-template.ng.attributes.input-binding.animationTrigger.prefix" + "name": "meta.tag.metadata.html entity.name.tag.html html-template.tag.html" }, "3": { - "name": "entity.other.ng-binding-name.property.html entity.other.ng-binding-name.binding.html entity.other.ng-binding-name.$3.html html-template.ng.attributes.input-binding.first-level" + "name": "entity.name.tag.html html-template.ng.tag.colon" }, "4": { - "name": "entity.other.ng-binding-name.property.html entity.other.ng-binding-name.binding.html\tentity.other.ng-binding-name.$4.html html-template.ng.attributes.input-binding.second-level" + "name": "entity.name.tag.html html-template.ng.tag.suffix" + } + }, + "patterns": [ + { + "include": "#tag-stuff" + } + ], + "begin": "()", + "name": "meta.element.metadata.html" + }, + "tag-definition-object-void": { + "beginCaptures": { + "0": { + "name": "meta.tag.object.$2.void.html" }, - "6": { - "name": "entity.other.ng-binding-name.property.html entity.other.ng-binding-name.binding.html punctuation.definition.ng-binding-name.end.html" + "1": { + "name": "punctuation.definition.tag.begin.html" }, - "7": { - "name": "punctuation.separator.key-value.html punctuation.separator.key-value.html-template.ng" + "2": { + "name": "meta.tag.object.html entity.name.tag.html html-template.tag.html" }, - "8": { - "name": "string.quoted.double.html" + "3": { + "name": "entity.name.tag.html html-template.ng.tag.colon" + }, + "4": { + "name": "entity.name.tag.html html-template.ng.tag.suffix" } }, + "patterns": [ + { + "include": "#tag-stuff" + } + ], + "begin": "()", + "name": "meta.element.object.html" }, - "tag-sugar-attributes": { + "tag-definition-object": { "beginCaptures": { "0": { - "name": "meta.ng-binding.template.sugar.html" + "name": "meta.tag.object.$2.start.html" }, "1": { - "name": "entity.other.attribute-name.html html-template.ng.attributes.prefix.sugar" + "name": "punctuation.definition.tag.begin.html" }, "2": { - "name": "entity.other.attribute-name.html html-template.ng.attributes.suffix.sugar" + "name": "meta.tag.object.html entity.name.tag.html html-template.tag.html" }, "3": { - "name": "entity.other.attribute-name.html html-template.ng.attributes.suffix.rxjs" + "name": "entity.name.tag.html html-template.ng.tag.colon" }, "4": { - "name": "punctuation.separator.key-value.html punctuation.separator.key-value.html-template.ng" - }, - "5": { - "name": "string.quoted.double.html" + "name": "entity.name.tag.html html-template.ng.tag.suffix" } }, + "patterns": [ + { + "include": "#tag-stuff" + } + ], + "begin": "()", + "name": "meta.element.object.html" }, - "tag-template-input-variable": { + "tag-definition-structure": { "beginCaptures": { "0": { - "name": "meta.ng-binding.template.input.variable.html" + "name": "meta.tag.structure.$2.start.html" }, "1": { - "name": "entity.other.attribute-name.html html-template.ng.attributes.prefix.let" + "name": "punctuation.definition.tag.begin.html" }, "2": { - "name": "entity.other.attribute-name.html html-template.ng.attributes.suffix.name" + "name": "meta.tag.structure.html entity.name.tag.html html-template.tag.html" }, "3": { - "name": "entity.other.attribute-name.html html-template.ng.attributes.suffix.rxjs" + "name": "entity.name.tag.html html-template.ng.tag.colon" }, "4": { - "name": "punctuation.separator.key-value.html punctuation.separator.key-value.html-template.ng" - }, - "5": { - "name": "string.quoted.double.html" + "name": "entity.name.tag.html html-template.ng.tag.suffix" } }, + "patterns": [ + { + "include": "#tag-stuff" + } + ], + "begin": "()", + "name": "meta.element.structure.html" }, - "tag-template-variable": { - "captures": { + "tag-definition-ng-bootstrap": { + "beginCaptures": { "0": { - "name": "meta.ng-binding.template.variable.html" + "name": "meta.tag.ng-bootstrap.$2.start.html" }, "1": { - "name": "entity.other.attribute-name.html html-template.ng.attributes.template.prefix" + "name": "punctuation.definition.tag.begin.html" }, "2": { - "name": "entity.other.attribute-name.html html-template.ng.attributes.template.variable" + "name": "meta.tag.structure.html entity.name.tag.html.ng-bootstrap entity.name.tag.html.ng-bootstrap.$2" }, "3": { - "name": "entity.other.attribute-name.html html-template.ng.attributes.suffix.rxjs" + "name": "entity.name.tag.html html-template.ng.tag.colon" }, "4": { - "name": "punctuation.separator.key-value.html punctuation.separator.key-value.html-template.ng" - }, - "5": { - "name": "string.quoted.double.html" + "name": "entity.name.tag.html html-template.ng.tag.suffix" } }, + "patterns": [ + { + "include": "#tag-stuff" + } + ], + "begin": "()", + "name": "meta.element.ng-bootstrap.html" }, - "svg-non-string-attributes": { + "tag-svg": { + "begin": "(^[\\t]+)?(?=<(?i:svg)\\b(?!(?:[\\w-])))", + "beginCaptures": { + "1": { + "name": "punctuation.whitespace.embedded.leading.html" + } + }, + "end": "(?!\\G)([\\t]*$\\n?)?", + "endCaptures": { + "1": { + "name": "punctuation.whitespace.embedded.trailing.html" + } + }, "patterns": [ { - "name": "meta.element.attribute.$2.svg", - "begin": "[\\s\\n\\r\\t]*(\\b(?i:(d))\\b(?![\\w-]))(=)(\")", + "begin": "(?i)(<)(svg)(?=\\s|/?>)", "beginCaptures": { "0": { - "name": "meta.attribute.svg.$2.html" + "name": "meta.tag.metadata.svg.start.html" + }, + "1": { + "name": "punctuation.definition.tag.begin.html" }, "2": { - "name": "entity.other.attribute-name.html html-template.ng.attributes.generic" + "name": "entity.name.tag.html html-template.tag.svg" + } + }, + "end": "(?i)((<)/)(svg)\\s*(>)", + "endCaptures": { + "0": { + "name": "meta.tag.metadata.svg.end.html" + }, + "1": { + "name": "punctuation.definition.tag.begin.html" + }, + "2": { + "name": "source.css-ignored-vscode" }, "3": { - "name": "punctuation.separator.key-value.html punctuation.separator.key-value.html-template.ng" + "name": "entity.name.tag.html html-template.tag.svg" }, "4": { - "name": "string.quoted.double.html" - } - }, - "end": "(\")", - "endCaptures": { - "1": { - "name": "string.quoted.double.html" - } - }, - "patterns": [ - { - "match": "([0-9]+)|([MmLlHhVvCcSsQqTtAaZz]+)|([\\.\\,\\-]+)", - "captures": { - "1": { - "name": "constant.numeric.css" - }, - "2": { - "name": "keyword.other.commands.path.svg html-template.ng.svg.path.commands" - }, - "3": { - "name": "punctuation.separator.delimiter.scss" - } - } - } - ] - }, - { - "name": "meta.element.attribute.$2.svg", - "begin": "[\\s\\n\\r\\t]*(\\b(?i:(amplitude|azimuth|baseFrequency|begin|bias|by|clip-path|color|cursor|cx|cy|diffuseConstant|divisor|dur|dx|dy|elevation|end|exponent|fill-opacity|fill|filter|flood-color|flood-opacity|font-size-adjust|font-size|font-weight|from|fr|fx|fy|gradientTransform|hatchpath|height|intercept|k1|k2|k3|k4|kernelMatrix|keyPoints|keySplines|keyTimes|letter-spacing|lighting-color|limitingConeAngle|marker-end|marker-mid|marker-start|markerHeight|markerWidth|mask|max|media|min|numOctaves|offset|opacity|order|overline-position|overline-thickness|pathLength|patternTransform|pointsAtX|pointsAtY|pointsAtZ|points|radius|refX|refY|repeatCount|repeatDur|rotate|rx|ry|r|scale|seed|solid-color|solid-opacity|specularConstant|specularExponent|startOffset|stdDeviation|stop-color|stop-opacity|strikethrough-position|strikethrough-thickness|stroke-dashoffset|stroke-dassharray|stroke-miterlimit|stroke-width|stroke|surfaceScale|tabindex|tableValues|targetX|targetY|textLength|to|transform-origin|transform2|transform|underline-position|underline-thickness|values|viewbox|width|word-spacing|x1|x2|x|y1|y2|y|z))\\b(?![\\w-]))(=)(\")", - "beginCaptures": { - "2": { - "name": "entity.other.attribute-name.html html-template.ng.attributes.generic" - }, - "3": { - "name": "punctuation.separator.key-value.html punctuation.separator.key-value.html-template.ng" - }, - "4": { - "name": "string.quoted.double.html" - } - }, - "end": "(\")", - "endCaptures": { - "1": { - "name": "string.quoted.double.html" - } - }, - "patterns": [ - { - "begin": "(?<=\")", - "end": "(?=\")", - "name": "string.quoted.double.html", - "patterns": [ - { - "include": "source.css.scss#property_values" - }, - { - "include": "#angular-interpolations" - }, - { - "include": "#entities" - } - ] - } - ] - } - ] - }, - "tag-svg": { - "begin": "(^[\\t]+)?(?=<(?i:svg)\\b(?!(?:[\\w-])))", - "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|/?>)", - "beginCaptures": { - "0": { - "name": "meta.tag.metadata.svg.start.html" - }, - "1": { - "name": "punctuation.definition.tag.begin.html" - }, - "2": { - "name": "entity.name.tag.html html-template.tag.svg" - } - }, - "end": "(?i)((<)/)(svg)\\s*(>)", - "endCaptures": { - "0": { - "name": "meta.tag.metadata.svg.end.html" - }, - "1": { - "name": "punctuation.definition.tag.begin.html" - }, - "2": { - "name": "source.css-ignored-vscode" - }, - "3": { - "name": "entity.name.tag.html html-template.tag.svg" - }, - "4": { - "name": "punctuation.definition.tag.end.html" + "name": "punctuation.definition.tag.end.html" } }, "name": "meta.embedded.block.html", @@ -1366,16 +1352,16 @@ }, "end": "(/?>)" }, - "tag-definition-kendo": { + "tag-definition-angular": { "beginCaptures": { "0": { - "name": "meta.tag.kendo.$2.start.html" + "name": "meta.tag.ng.$2.start.html" }, "1": { "name": "punctuation.definition.tag.begin.html" }, "2": { - "name": "meta.tag.structure.html entity.name.tag.html.kendo entity.name.tag.html.kendo.$2" + "name": "meta.tag.structure.html entity.name.tag.html.ng entity.name.tag.html.ng.$2" }, "3": { "name": "entity.name.tag.html html-template.ng.tag.colon" @@ -1389,616 +1375,634 @@ "include": "#tag-stuff" } ], - "begin": "()", - "name": "meta.element.kendo.html" + "name": "meta.element.ng.html" }, - "tag-definition-ng-bootstrap": { - "beginCaptures": { - "0": { - "name": "meta.tag.ng-bootstrap.$2.start.html" - }, + "xml-dtd": { + "begin": "(<)(!)(ELEMENT|ATTLIST|ENTITY|NOTATION)", + "captures": { "1": { - "name": "punctuation.definition.tag.begin.html" + "name": "punctuation.definition.tag.begin.dtd" }, "2": { - "name": "meta.tag.structure.html entity.name.tag.html.ng-bootstrap entity.name.tag.html.ng-bootstrap.$2" + "name": "punctuation.definition.tag.begin.html html-template.ng.exclamation.dtd" }, "3": { - "name": "entity.name.tag.html html-template.ng.tag.colon" - }, - "4": { - "name": "entity.name.tag.html html-template.ng.tag.suffix" + "name": "entity.name.tag.dtd html-template.ng.dtd" } }, + "end": "\\s*(>)", + "name": "meta.tag.type.dtd", "patterns": [ { - "include": "#tag-stuff" - } - ], - "begin": "()", - "name": "meta.element.ng-bootstrap.html" + ] }, - "tag-definition-primeng": { - "beginCaptures": { - "0": { - "name": "meta.tag.primeng.$2.start.html" - }, + "xml-processing": { + "begin": "(<\\?)(xml)(?!-)", + "captures": { "1": { - "name": "punctuation.definition.tag.begin.html" + "name": "punctuation.definition.tag.html" }, "2": { - "name": "meta.tag.structure.html entity.name.tag.html.primeng entity.name.tag.html.primeng.$2" - }, - "3": { - "name": "entity.name.tag.html html-template.ng.tag.colon" - }, - "4": { - "name": "entity.name.tag.html html-template.ng.tag.suffix" + "name": "entity.name.tag.html" } }, + "end": "(\\?>)", + "name": "meta.tag.metadata.processing.xml.html", "patterns": [ { "include": "#tag-stuff" } - ], - "begin": "()", - "name": "meta.element.primeng.html" + "end": "(\\?>)", + "name": "meta.tag.metadata.processing.xml-stylesheet.html", + "patterns": [ + { + "include": "#xml-stylesheet-type-attribute" + }, + { + "include": "#tag-stuff" + } + ] }, - "comment": { + "xml-stylesheet-type-attribute": { "patterns": [ { - "name": "comment.block.html", - "begin": "", - "endCaptures": { + } + }, + { + "match": "[\\s]*(type)(=)('(text)/(css|xml|xsl)')", + "captures": { "0": { - "name": "punctuation.definition.comment.end.html" - } - }, - "patterns": [ - { - "include": "#comment" + "name": "meta.attribute.type.xml" + }, + "1": { + "name": "entity.other.attribute-name.html html-template.ng.attributes.generic" + }, + "2": { + "name": "punctuation.separator.key-value.html punctuation.separator.key-value.html-template.ng" + }, + "3": { + "name": "string.quoted.single.html" + }, + "5": { + "name": "html-template.ng.xmlStylesheet.language.identifier" } - ] + } } ] }, - "doctype": { + "svg-non-string-attributes": { "patterns": [ { - "endCaptures": { - "1": { - "name": "punctuation.definition.tag.end.html" - } - }, + "name": "meta.element.attribute.$2.svg", + "begin": "[\\s\\n\\r\\t]*(\\b(?i:(d))\\b(?![\\w-]))(=)(\")", "beginCaptures": { - "1": { - "name": "punctuation.definition.tag.begin.html" + "0": { + "name": "meta.attribute.svg.$2.html" }, "2": { - "name": "punctuation.definition.tag.begin.html html-template.ng.exclamation.doctype" + "name": "entity.other.attribute-name.html html-template.ng.attributes.generic" }, "3": { - "name": "entity.name.tag.html.doctype html-template.ng.doctype" + "name": "punctuation.separator.key-value.html punctuation.separator.key-value.html-template.ng" + }, + "4": { + "name": "string.quoted.double.html" + } + }, + "end": "(\")", + "endCaptures": { + "1": { + "name": "string.quoted.double.html" } }, - "begin": "(<)(!)((?i:doctype))", - "end": "(>)", - "name": "meta.tag.metadata.doctype.html", "patterns": [ { - "begin": "(\\[)", - "beginCaptures": { - "0": { - "name": "punctuation.definition.dtd.begin.html" - } - }, - "end": "(\\])", - "endCaptures": { - "0": { - "name": "punctuation.definition.dtd.end.html" - } - }, - "patterns": [ - { - "include": "#xml-dtd" + "match": "([0-9]+)|([MmLlHhVvCcSsQqTtAaZz]+)|([\\.\\,\\-]+)", + "captures": { + "1": { + "name": "constant.numeric.css" + }, + "2": { + "name": "keyword.other.commands.path.svg html-template.ng.svg.path.commands" + }, + "3": { + "name": "punctuation.separator.delimiter.scss" } - ] - }, - { - "include": "#string-double-quoted-capture" - }, - { - "match": "[^\\s>]+", - "name": "entity.other.attribute-name.html html-template.ng.attribute.doctype" + } } ] - } - ] - }, - "entities": { - "patterns": [ - { - "captures": { - "1": { - "name": "punctuation.definition.entity.html html-template.ng.entities.ampersand" - }, - "912": { - "name": "punctuation.definition.entity.html html-template.ng.entities.semicolon" - } - }, - "match": "(?x)(&)(?=[a-zA-Z])((a(s(ymp(eq)?|cr|t)|n(d(slope|d|v|and)?|g(s(t|ph)|zarr|e|le|rt(vb(d)?)?|msd(a(h|c|d|e|f|a|g|b))?)?)|c(y|irc|d|ute|E)?|tilde|o(pf|gon)|uml|p(id|os|prox(eq)?|e|E|acir)?|elig|f(r)?|w(conint|int)|l(pha|e(ph|fsym))|acute|ring|grave|m(p|a(cr|lg))|breve)|A(s(sign|cr)|nd|MP|c(y|irc)|tilde|o(pf|gon)|uml|pplyFunction|fr|Elig|lpha|acute|ring|grave|macr|breve))|(B(scr|cy|opf|umpeq|e(cause|ta|rnoullis)|fr|a(ckslash|r(v|wed))|reve)|b(s(cr|im(e)?|ol(hsub|b)?|emi)|n(ot|e(quiv)?)|c(y|ong)|ig(s(tar|qcup)|c(irc|up|ap)|triangle(down|up)|o(times|dot|plus)|uplus|vee|wedge)|o(t(tom)?|pf|wtie|x(h(d|u|D|U)?|times|H(d|u|D|U)?|d(R|l|r|L)|u(R|l|r|L)|plus|D(R|l|r|L)|v(R|h|H|l|r|L)?|U(R|l|r|L)|V(R|h|H|l|r|L)?|minus|box))|Not|dquo|u(ll(et)?|mp(e(q)?|E)?)|prime|e(caus(e)?|t(h|ween|a)|psi|rnou|mptyv)|karow|fr|l(ock|k(1(2|4)|34)|a(nk|ck(square|triangle(down|left|right)?|lozenge)))|a(ck(sim(eq)?|cong|prime|epsilon)|r(vee|wed(ge)?))|r(eve|vbar)|brk(tbrk)?))|(c(s(cr|u(p(e)?|b(e)?))|h(cy|i|eck(mark)?)|ylcty|c(irc|ups(sm)?|edil|a(ps|ron))|tdot|ir(scir|c(eq|le(d(R|circ|S|dash|ast)|arrow(left|right)))?|e|fnint|E|mid)?|o(n(int|g(dot)?)|p(y(sr)?|f|rod)|lon(e(q)?)?|m(p(fn|le(xes|ment))?|ma(t)?))|dot|u(darr(l|r)|p(s|c(up|ap)|or|dot|brcap)?|e(sc|pr)|vee|wed|larr(p)?|r(vearrow(left|right)|ly(eq(succ|prec)|vee|wedge)|arr(m)?|ren))|e(nt(erdot)?|dil|mptyv)|fr|w(conint|int)|lubs(uit)?|a(cute|p(s|c(up|ap)|dot|and|brcup)?|r(on|et))|r(oss|arr))|C(scr|hi|c(irc|onint|edil|aron)|ircle(Minus|Times|Dot|Plus)|Hcy|o(n(tourIntegral|int|gruent)|unterClockwiseContourIntegral|p(f|roduct)|lon(e)?)|dot|up(Cap)?|OPY|e(nterDot|dilla)|fr|lo(seCurly(DoubleQuote|Quote)|ckwiseContourIntegral)|a(yleys|cute|p(italDifferentialD)?)|ross))|(d(s(c(y|r)|trok|ol)|har(l|r)|c(y|aron)|t(dot|ri(f)?)|i(sin|e|v(ide(ontimes)?|onx)?|am(s|ond(suit)?)?|gamma)|Har|z(cy|igrarr)|o(t(square|plus|eq(dot)?|minus)?|ublebarwedge|pf|wn(harpoon(left|right)|downarrows|arrow)|llar)|d(otseq|a(rr|gger))?|u(har|arr)|jcy|e(lta|g|mptyv)|f(isht|r)|wangle|lc(orn|rop)|a(sh(v)?|leth|rr|gger)|r(c(orn|rop)|bkarow)|b(karow|lac)|Arr)|D(s(cr|trok)|c(y|aron)|Scy|i(fferentialD|a(critical(Grave|Tilde|Do(t|ubleAcute)|Acute)|mond))|o(t(Dot|Equal)?|uble(Right(Tee|Arrow)|ContourIntegral|Do(t|wnArrow)|Up(DownArrow|Arrow)|VerticalBar|L(ong(RightArrow|Left(RightArrow|Arrow))|eft(RightArrow|Tee|Arrow)))|pf|wn(Right(TeeVector|Vector(Bar)?)|Breve|Tee(Arrow)?|arrow|Left(RightVector|TeeVector|Vector(Bar)?)|Arrow(Bar|UpArrow)?))|Zcy|el(ta)?|D(otrahd)?|Jcy|fr|a(shv|rr|gger)))|(e(s(cr|im|dot)|n(sp|g)|c(y|ir(c)?|olon|aron)|t(h|a)|o(pf|gon)|dot|u(ro|ml)|p(si(v|lon)?|lus|ar(sl)?)|e|D(ot|Dot)|q(s(im|lant(less|gtr))|c(irc|olon)|u(iv(DD)?|est|als)|vparsl)|f(Dot|r)|l(s(dot)?|inters|l)?|a(ster|cute)|r(Dot|arr)|g(s(dot)?|rave)?|x(cl|ist|p(onentiale|ectation))|m(sp(1(3|4))?|pty(set|v)?|acr))|E(s(cr|im)|c(y|irc|aron)|ta|o(pf|gon)|NG|dot|uml|TH|psilon|qu(ilibrium|al(Tilde)?)|fr|lement|acute|grave|x(ists|ponentialE)|m(pty(SmallSquare|VerySmallSquare)|acr)))|(f(scr|nof|cy|ilig|o(pf|r(k(v)?|all))|jlig|partint|emale|f(ilig|l(ig|lig)|r)|l(tns|lig|at)|allingdotseq|r(own|a(sl|c(1(2|8|3|4|5|6)|78|2(3|5)|3(8|4|5)|45|5(8|6)))))|F(scr|cy|illed(SmallSquare|VerySmallSquare)|o(uriertrf|pf|rAll)|fr))|(G(scr|c(y|irc|edil)|t|opf|dot|T|Jcy|fr|amma(d)?|reater(Greater|SlantEqual|Tilde|Equal(Less)?|FullEqual|Less)|g|breve)|g(s(cr|im(e|l)?)|n(sim|e(q(q)?)?|E|ap(prox)?)|c(y|irc)|t(c(c|ir)|dot|quest|lPar|r(sim|dot|eq(qless|less)|less|a(pprox|rr)))?|imel|opf|dot|jcy|e(s(cc|dot(o(l)?)?|l(es)?)?|q(slant|q)?|l)?|v(nE|ertneqq)|fr|E(l)?|l(j|E|a)?|a(cute|p|mma(d)?)|rave|g(g)?|breve))|(h(s(cr|trok|lash)|y(phen|bull)|circ|o(ok(leftarrow|rightarrow)|pf|arr|rbar|mtht)|e(llip|arts(uit)?|rcon)|ks(earow|warow)|fr|a(irsp|lf|r(dcy|r(cir|w)?)|milt)|bar|Arr)|H(s(cr|trok)|circ|ilbertSpace|o(pf|rizontalLine)|ump(DownHump|Equal)|fr|a(cek|t)|ARDcy))|(i(s(cr|in(s(v)?|dot|v|E)?)|n(care|t(cal|prod|e(rcal|gers)|larhk)?|odot|fin(tie)?)?|c(y|irc)?|t(ilde)?|i(nfin|i(nt|int)|ota)?|o(cy|ta|pf|gon)|u(kcy|ml)|jlig|prod|e(cy|xcl)|quest|f(f|r)|acute|grave|m(of|ped|a(cr|th|g(part|e|line))))|I(scr|n(t(e(rsection|gral))?|visible(Comma|Times))|c(y|irc)|tilde|o(ta|pf|gon)|dot|u(kcy|ml)|Ocy|Jlig|fr|Ecy|acute|grave|m(plies|a(cr|ginaryI))?))|(j(s(cr|ercy)|c(y|irc)|opf|ukcy|fr|math)|J(s(cr|ercy)|c(y|irc)|opf|ukcy|fr))|(k(scr|hcy|c(y|edil)|opf|jcy|fr|appa(v)?|green)|K(scr|c(y|edil)|Hcy|opf|Jcy|fr|appa))|(l(s(h|cr|trok|im(e|g)?|q(uo(r)?|b)|aquo)|h(ar(d|u(l)?)|blk)|n(sim|e(q(q)?)?|E|ap(prox)?)|c(y|ub|e(il|dil)|aron)|Barr|t(hree|c(c|ir)|imes|dot|quest|larr|r(i(e|f)?|Par))?|Har|o(ng(left(arrow|rightarrow)|rightarrow|mapsto)|times|z(enge|f)?|oparrow(left|right)|p(f|lus|ar)|w(ast|bar)|a(ng|rr)|brk)|d(sh|ca|quo(r)?|r(dhar|ushar))|ur(dshar|uhar)|jcy|par(lt)?|e(s(s(sim|dot|eq(qgtr|gtr)|approx|gtr)|cc|dot(o(r)?)?|g(es)?)?|q(slant|q)?|ft(harpoon(down|up)|threetimes|leftarrows|arrow(tail)?|right(squigarrow|harpoons|arrow(s)?))|g)?|v(nE|ertneqq)|f(isht|loor|r)|E(g)?|l(hard|corner|tri|arr)?|a(ng(d|le)?|cute|t(e(s)?|ail)?|p|emptyv|quo|rr(sim|hk|tl|pl|fs|lp|b(fs)?)?|gran|mbda)|r(har(d)?|corner|tri|arr|m)|g(E)?|m(idot|oust(ache)?)|b(arr|r(k(sl(d|u)|e)|ac(e|k))|brk)|A(tail|arr|rr))|L(s(h|cr|trok)|c(y|edil|aron)|t|o(ng(RightArrow|left(arrow|rightarrow)|rightarrow|Left(RightArrow|Arrow))|pf|wer(RightArrow|LeftArrow))|T|e(ss(Greater|SlantEqual|Tilde|EqualGreater|FullEqual|Less)|ft(Right(Vector|Arrow)|Ceiling|T(ee(Vector|Arrow)?|riangle(Bar|Equal)?)|Do(ubleBracket|wn(TeeVector|Vector(Bar)?))|Up(TeeVector|DownVector|Vector(Bar)?)|Vector(Bar)?|arrow|rightarrow|Floor|A(ngleBracket|rrow(RightArrow|Bar)?)))|Jcy|fr|l(eftarrow)?|a(ng|cute|placetrf|rr|mbda)|midot))|(M(scr|cy|inusPlus|opf|u|e(diumSpace|llintrf)|fr|ap)|m(s(cr|tpos)|ho|nplus|c(y|omma)|i(nus(d(u)?|b)?|cro|d(cir|dot|ast)?)|o(dels|pf)|dash|u(ltimap|map)?|p|easuredangle|DDot|fr|l(cp|dr)|a(cr|p(sto(down|up|left)?)?|l(t(ese)?|e)|rker)))|(n(s(hort(parallel|mid)|c(cue|e|r)?|im(e(q)?)?|u(cc(eq)?|p(set(eq(q)?)?|e|E)?|b(set(eq(q)?)?|e|E)?)|par|qsu(pe|be)|mid)|Rightarrow|h(par|arr|Arr)|G(t(v)?|g)|c(y|ong(dot)?|up|edil|a(p|ron))|t(ilde|lg|riangle(left(eq)?|right(eq)?)|gl)|i(s(d)?|v)?|o(t(ni(v(c|a|b))?|in(dot|v(c|a|b)|E)?)?|pf)|dash|u(m(sp|ero)?)?|jcy|p(olint|ar(sl|t|allel)?|r(cue|e(c(eq)?)?)?)|e(s(im|ear)|dot|quiv|ar(hk|r(ow)?)|xist(s)?|Arr)?|v(sim|infin|Harr|dash|Dash|l(t(rie)?|e|Arr)|ap|r(trie|Arr)|g(t|e))|fr|w(near|ar(hk|r(ow)?)|Arr)|V(dash|Dash)|l(sim|t(ri(e)?)?|dr|e(s(s)?|q(slant|q)?|ft(arrow|rightarrow))?|E|arr|Arr)|a(ng|cute|tur(al(s)?)?|p(id|os|prox|E)?|bla)|r(tri(e)?|ightarrow|arr(c|w)?|Arr)|g(sim|t(r)?|e(s|q(slant|q)?)?|E)|mid|L(t(v)?|eft(arrow|rightarrow)|l)|b(sp|ump(e)?))|N(scr|c(y|edil|aron)|tilde|o(nBreakingSpace|Break|t(R(ightTriangle(Bar|Equal)?|everseElement)|Greater(Greater|SlantEqual|Tilde|Equal|FullEqual|Less)?|S(u(cceeds(SlantEqual|Tilde|Equal)?|perset(Equal)?|bset(Equal)?)|quareSu(perset(Equal)?|bset(Equal)?))|Hump(DownHump|Equal)|Nested(GreaterGreater|LessLess)|C(ongruent|upCap)|Tilde(Tilde|Equal|FullEqual)?|DoubleVerticalBar|Precedes(SlantEqual|Equal)?|E(qual(Tilde)?|lement|xists)|VerticalBar|Le(ss(Greater|SlantEqual|Tilde|Equal|Less)?|ftTriangle(Bar|Equal)?))?|pf)|u|e(sted(GreaterGreater|LessLess)|wLine|gative(MediumSpace|Thi(nSpace|ckSpace)|VeryThinSpace))|Jcy|fr|acute))|(o(s(cr|ol|lash)|h(m|bar)|c(y|ir(c)?)|ti(lde|mes(as)?)|S|int|opf|d(sold|iv|ot|ash|blac)|uml|p(erp|lus|ar)|elig|vbar|f(cir|r)|l(c(ir|ross)|t|ine|arr)|a(st|cute)|r(slope|igof|or|d(er(of)?|f|m)?|v|arr)?|g(t|on|rave)|m(i(nus|cron|d)|ega|acr))|O(s(cr|lash)|c(y|irc)|ti(lde|mes)|opf|dblac|uml|penCurly(DoubleQuote|Quote)|ver(B(ar|rac(e|ket))|Parenthesis)|fr|Elig|acute|r|grave|m(icron|ega|acr)))|(p(s(cr|i)|h(i(v)?|one|mmat)|cy|i(tchfork|v)?|o(intint|und|pf)|uncsp|er(cnt|tenk|iod|p|mil)|fr|l(us(sim|cir|two|d(o|u)|e|acir|mn|b)?|an(ck(h)?|kv))|ar(s(im|l)|t|a(llel)?)?|r(sim|n(sim|E|ap)|cue|ime(s)?|o(d|p(to)?|f(surf|line|alar))|urel|e(c(sim|n(sim|eqq|approx)|curlyeq|eq|approx)?)?|E|ap)?|m)|P(s(cr|i)|hi|cy|i|o(incareplane|pf)|fr|lusMinus|artialD|r(ime|o(duct|portion(al)?)|ecedes(SlantEqual|Tilde|Equal)?)?))|(q(scr|int|opf|u(ot|est(eq)?|at(int|ernions))|prime|fr)|Q(scr|opf|UOT|fr))|(R(s(h|cr)|ho|c(y|edil|aron)|Barr|ight(Ceiling|T(ee(Vector|Arrow)?|riangle(Bar|Equal)?)|Do(ubleBracket|wn(TeeVector|Vector(Bar)?))|Up(TeeVector|DownVector|Vector(Bar)?)|Vector(Bar)?|arrow|Floor|A(ngleBracket|rrow(Bar|LeftArrow)?))|o(undImplies|pf)|uleDelayed|e(verse(UpEquilibrium|E(quilibrium|lement)))?|fr|EG|a(ng|cute|rr(tl)?)|rightarrow)|r(s(h|cr|q(uo(r)?|b)|aquo)|h(o(v)?|ar(d|u(l)?))|nmid|c(y|ub|e(il|dil)|aron)|Barr|t(hree|imes|ri(e|f|ltri)?)|i(singdotseq|ng|ght(squigarrow|harpoon(down|up)|threetimes|left(harpoons|arrows)|arrow(tail)?|rightarrows))|Har|o(times|p(f|lus|ar)|a(ng|rr)|brk)|d(sh|ca|quo(r)?|ldhar)|uluhar|p(polint|ar(gt)?)|e(ct|al(s|ine|part)?|g)|f(isht|loor|r)|l(har|arr|m)|a(ng(d|e|le)?|c(ute|e)|t(io(nals)?|ail)|dic|emptyv|quo|rr(sim|hk|c|tl|pl|fs|w|lp|ap|b(fs)?)?)|rarr|x|moust(ache)?|b(arr|r(k(sl(d|u)|e)|ac(e|k))|brk)|A(tail|arr|rr)))|(s(s(cr|tarf|etmn|mile)|h(y|c(hcy|y)|ort(parallel|mid)|arp)|c(sim|y|n(sim|E|ap)|cue|irc|polint|e(dil)?|E|a(p|ron))?|t(ar(f)?|r(ns|aight(phi|epsilon)))|i(gma(v|f)?|m(ne|dot|plus|e(q)?|l(E)?|rarr|g(E)?)?)|zlig|o(pf|ftcy|l(b(ar)?)?)|dot(e|b)?|u(ng|cc(sim|n(sim|eqq|approx)|curlyeq|eq|approx)?|p(s(im|u(p|b)|et(neq(q)?|eq(q)?)?)|hs(ol|ub)|1|n(e|E)|2|d(sub|ot)|3|plus|e(dot)?|E|larr|mult)?|m|b(s(im|u(p|b)|et(neq(q)?|eq(q)?)?)|n(e|E)|dot|plus|e(dot)?|E|rarr|mult)?)|pa(des(uit)?|r)|e(swar|ct|tm(n|inus)|ar(hk|r(ow)?)|xt|mi|Arr)|q(su(p(set(eq)?|e)?|b(set(eq)?|e)?)|c(up(s)?|ap(s)?)|u(f|ar(e|f))?)|fr(own)?|w(nwar|ar(hk|r(ow)?)|Arr)|larr|acute|rarr|m(t(e(s)?)?|i(d|le)|eparsl|a(shp|llsetminus))|bquo)|S(scr|hort(RightArrow|DownArrow|UpArrow|LeftArrow)|c(y|irc|edil|aron)?|tar|igma|H(cy|CHcy)|opf|u(c(hThat|ceeds(SlantEqual|Tilde|Equal)?)|p(set|erset(Equal)?)?|m|b(set(Equal)?)?)|OFTcy|q(uare(Su(perset(Equal)?|bset(Equal)?)|Intersection|Union)?|rt)|fr|acute|mallCircle))|(t(s(hcy|c(y|r)|trok)|h(i(nsp|ck(sim|approx))|orn|e(ta(sym|v)?|re(4|fore))|k(sim|ap))|c(y|edil|aron)|i(nt|lde|mes(d|b(ar)?)?)|o(sa|p(cir|f(ork)?|bot)?|ea)|dot|prime|elrec|fr|w(ixt|ohead(leftarrow|rightarrow))|a(u|rget)|r(i(sb|time|dot|plus|e|angle(down|q|left(eq)?|right(eq)?)?|minus)|pezium|ade)|brk)|T(s(cr|trok)|RADE|h(i(nSpace|ckSpace)|e(ta|refore))|c(y|edil|aron)|S(cy|Hcy)|ilde(Tilde|Equal|FullEqual)?|HORN|opf|fr|a(u|b)|ripleDot))|(u(scr|h(ar(l|r)|blk)|c(y|irc)|t(ilde|dot|ri(f)?)|Har|o(pf|gon)|d(har|arr|blac)|u(arr|ml)|p(si(h|lon)?|harpoon(left|right)|downarrow|uparrows|lus|arrow)|f(isht|r)|wangle|l(c(orn(er)?|rop)|tri)|a(cute|rr)|r(c(orn(er)?|rop)|tri|ing)|grave|m(l|acr)|br(cy|eve)|Arr)|U(scr|n(ion(Plus)?|der(B(ar|rac(e|ket))|Parenthesis))|c(y|irc)|tilde|o(pf|gon)|dblac|uml|p(si(lon)?|downarrow|Tee(Arrow)?|per(RightArrow|LeftArrow)|DownArrow|Equilibrium|arrow|Arrow(Bar|DownArrow)?)|fr|a(cute|rr(ocir)?)|ring|grave|macr|br(cy|eve)))|(v(s(cr|u(pn(e|E)|bn(e|E)))|nsu(p|b)|cy|Bar(v)?|zigzag|opf|dash|prop|e(e(eq|bar)?|llip|r(t|bar))|Dash|fr|ltri|a(ngrt|r(s(igma|u(psetneq(q)?|bsetneq(q)?))|nothing|t(heta|riangle(left|right))|p(hi|i|ropto)|epsilon|kappa|r(ho)?))|rtri|Arr)|V(scr|cy|opf|dash(l)?|e(e|r(yThinSpace|t(ical(Bar|Separator|Tilde|Line))?|bar))|Dash|vdash|fr|bar))|(w(scr|circ|opf|p|e(ierp|d(ge(q)?|bar))|fr|r(eath)?)|W(scr|circ|opf|edge|fr))|(X(scr|i|opf|fr)|x(s(cr|qcup)|h(arr|Arr)|nis|c(irc|up|ap)|i|o(time|dot|p(f|lus))|dtri|u(tri|plus)|vee|fr|wedge|l(arr|Arr)|r(arr|Arr)|map))|(y(scr|c(y|irc)|icy|opf|u(cy|ml)|en|fr|ac(y|ute))|Y(scr|c(y|irc)|opf|uml|Icy|Ucy|fr|acute|Acy))|(z(scr|hcy|c(y|aron)|igrarr|opf|dot|e(ta|etrf)|fr|w(nj|j)|acute)|Z(scr|c(y|aron)|Hcy|opf|dot|e(ta|roWidthSpace)|fr|acute)))(;)", - "name": "constant.character.entity.named.$2.html" }, { - "captures": { - "1": { - "name": "punctuation.definition.entity.html html-template.ng.entities.ampersand" - }, + "name": "meta.element.attribute.$2.svg", + "begin": "[\\s\\n\\r\\t]*(\\b(?i:(amplitude|azimuth|baseFrequency|begin|bias|by|clip-path|color|cursor|cx|cy|diffuseConstant|divisor|dur|dx|dy|elevation|end|exponent|fill-opacity|fill|filter|flood-color|flood-opacity|font-size-adjust|font-size|font-weight|from|fr|fx|fy|gradientTransform|hatchpath|height|intercept|k1|k2|k3|k4|kernelMatrix|keyPoints|keySplines|keyTimes|letter-spacing|lighting-color|limitingConeAngle|marker-end|marker-mid|marker-start|markerHeight|markerWidth|mask|max|media|min|numOctaves|offset|opacity|order|overline-position|overline-thickness|pathLength|patternTransform|pointsAtX|pointsAtY|pointsAtZ|points|radius|refX|refY|repeatCount|repeatDur|rotate|rx|ry|r|scale|seed|solid-color|solid-opacity|specularConstant|specularExponent|startOffset|stdDeviation|stop-color|stop-opacity|strikethrough-position|strikethrough-thickness|stroke-dashoffset|stroke-dassharray|stroke-miterlimit|stroke-width|stroke|surfaceScale|tabindex|tableValues|targetX|targetY|textLength|to|transform-origin|transform2|transform|underline-position|underline-thickness|values|viewbox|width|word-spacing|x1|x2|x|y1|y2|y|z))\\b(?![\\w-]))(=)(\")", + "beginCaptures": { "2": { - "name": "punctuation.definition.entity.html html-template.ng.entities.semicolon" - } - }, - "match": "(&)#[0-9]+(;)", - "name": "constant.character.entity.numeric.decimal.html" - }, - { - "captures": { - "1": { - "name": "punctuation.definition.entity.html html-template.ng.entities.ampersand" + "name": "entity.other.attribute-name.html html-template.ng.attributes.generic" }, "3": { - "name": "punctuation.definition.entity.html html-template.ng.entities.semicolon" + "name": "punctuation.separator.key-value.html punctuation.separator.key-value.html-template.ng" + }, + "4": { + "name": "string.quoted.double.html" } }, - "match": "(&)#[xX][0-9a-fA-F]+(;)", - "name": "constant.character.entity.numeric.hexadecimal.html" - }, - { - "match": "(&[a-zA-Z0-9]+;)", - "captures": { + "end": "(\")", + "endCaptures": { "1": { - "name": "invalid.illegal.ambiguous-ampersand.html" + "name": "string.quoted.double.html" } - } + }, + "patterns": [ + { + "begin": "(?<=\")", + "end": "(?=\")", + "name": "string.quoted.double.html", + "patterns": [ + { + "include": "source.css.scss#property_values" + }, + { + "include": "#angular-interpolations" + }, + { + "include": "#entities" + } + ] + } + ] } ] }, - "tag-definition-inline-void": { + "aria-attributes": { "beginCaptures": { "0": { - "name": "meta.tag.inline.$2.void.html" + "name": "meta.attribute.$2.html" }, "1": { - "name": "punctuation.definition.tag.begin.html" + "name": "entity.other.attribute-name.html html-template.ng.aria-attribute.prefix" }, "2": { - "name": "meta.tag.inline.html entity.name.tag.html html-template.tag.html" + "name": "entity.other.attribute-name.html html-template.ng.aria-attribute.suffix" }, "3": { - "name": "entity.name.tag.html html-template.ng.tag.colon" + "name": "punctuation.separator.key-value.html punctuation.separator.key-value.html-template.ng" }, "4": { - "name": "entity.name.tag.html html-template.ng.tag.suffix" + "name": "string.quoted.double.html" + } + }, + "endCaptures": { + "1": { + "name": "string.quoted.double.html" } }, + "begin": "(?)", - "name": "meta.element.inline.html" + "match": "(?)", - "name": "meta.element.inline.html" - }, - "tag-definition-metadata-void": { - "beginCaptures": { - "0": { - "name": "meta.tag.metadata.$2.void.html" - }, - "1": { - "name": "punctuation.definition.tag.begin.html" - }, - "2": { - "name": "meta.tag.metadata.html entity.name.tag.html html-template.tag.html" - }, - "3": { - "name": "entity.name.tag.html html-template.ng.tag.colon" - }, - "4": { - "name": "entity.name.tag.html html-template.ng.tag.suffix" + "name": "string.quoted.double.html" } }, + "begin": "(?)", - "name": "meta.element.metadata.html" + "match": "(?)", - "name": "meta.element.metadata.html" - }, - "tag-definition-object-void": { - "beginCaptures": { - "0": { - "name": "meta.tag.object.$2.void.html" - }, "1": { - "name": "punctuation.definition.tag.begin.html" - }, - "2": { - "name": "meta.tag.object.html entity.name.tag.html html-template.tag.html" - }, - "3": { - "name": "entity.name.tag.html html-template.ng.tag.colon" - }, - "4": { - "name": "entity.name.tag.html html-template.ng.tag.suffix" + "name": "string.quoted.double.html" } }, + "begin": "(?)", - "name": "meta.element.object.html" + ] }, - "tag-definition-object": { - "beginCaptures": { + "tag-events-attribute": { + "captures": { "0": { - "name": "meta.tag.object.$2.start.html" + "name": "meta.attribute.event-handler.$1.html" }, "1": { - "name": "punctuation.definition.tag.begin.html" + "name": "entity.other.attribute-name.html html-template.ng.attributes.events" }, "2": { - "name": "meta.tag.object.html entity.name.tag.html html-template.tag.html" - }, - "3": { - "name": "entity.name.tag.html html-template.ng.tag.colon" - }, - "4": { - "name": "entity.name.tag.html html-template.ng.tag.suffix" + "name": "punctuation.separator.key-value.html punctuation.separator.key-value.html-template.ng" } }, + "begin": "(DOMMenuItemActive|DOMMenuItemInactive|DOMMouseScroll|onabort|onafterprint|onafterupdate|onbeforecopy|onbeforecut|onbeforeeditfocus|onbeforepaste|onbeforeprint|onbeforeunload|onbeforeupdate|onblur|onbounce|onbroadcast|oncancel|oncanplay|oncanplaythrough|oncellchange|onchange|onclick|onclose|oncommandupdate|oncommand|oncontextmenu|oncopy|oncuechange|oncut|ondataavailable|ondatasetchanged|ondatasetcomplete|ondblclick|ondragdrop|ondragend|ondragenter|ondragexit|ondraggesture|ondragleave|ondragover|ondragstart|ondrag|ondrop|ondurationchange|onemptied|onended|onerrorupdate|onerror|onfilterchange|onfinish|onfocus|onformchange|onforminput|ongotpointercapture|onhelp|oninput|oninvalid|onkeydown|onkeypress|onkeyup|onloadeddata|onloadedmetadata|onloadstart|onload|onlosecapture|onlostpointercapture|onmousedown|onmouseenter|onmouseleave|onmousemove|onmouseout|onmouseover|onmouseup|onmousewheel|onoverflowchanged|onoverflow|onpaste|onpause|onplaying|onplay|onpointercancel|onpointerdown|onpointerenter|onpointerleave|onpointermove|onpointerout|onpointerover|onpointerup|onpopuphidden|onpopuphiding|onpopupshowing|onpopupshown|onprogress|onpropertychange|onratechange|onreadystatechange|onreset|onresize|onrowenter|onrowexit|onrowinserted|onrowsdelete|onscroll|onseeked|onseeking|onselectstart|onselect|onshow|onstalled|onstart|onstop|onsubmit|onsuspend|ontimeupdate|ontoggle|onunderflow|onunload|onvolumechange|onwaiting)+(=)", + "end": "(?<='|\")|(?=[\\s<>`])", "patterns": [ { - "include": "#tag-stuff" - } - ], - "begin": "()", - "name": "meta.element.object.html" + ] }, - "tag-definition-structure": { + "tag-generic-attribute": { "beginCaptures": { "0": { - "name": "meta.tag.structure.$2.start.html" - }, - "1": { - "name": "punctuation.definition.tag.begin.html" - }, - "2": { - "name": "meta.tag.structure.html entity.name.tag.html html-template.tag.html" + "name": "meta.attribute.$2.html" }, "3": { - "name": "entity.name.tag.html html-template.ng.tag.colon" + "name": "entity.other.attribute-name.html html-template.ng.attributes.generic" }, "4": { - "name": "entity.name.tag.html html-template.ng.tag.suffix" - } - }, - "patterns": [ - { - "include": "#tag-stuff" - } - ], - "begin": "()", - "name": "meta.element.structure.html" - }, - "tag-definition-angular": { - "beginCaptures": { - "0": { - "name": "meta.tag.ng.$2.start.html" + "5": { + "name": "entity.other.attribute.name.html html-template.ng.attributes.generic html-template.ng.attributes.input-binding.third-level" }, - "1": { - "name": "punctuation.definition.tag.begin.html" + "6": { + "name": "entity.other.attribute-name.html html-template.ng.attributes.colon" }, - "2": { - "name": "meta.tag.structure.html entity.name.tag.html.ng entity.name.tag.html.ng.$2" + "7": { + "name": "entity.other.attribute-name.html html-template.ng.attributes.suffix" }, - "3": { - "name": "entity.name.tag.html html-template.ng.tag.colon" + "8": { + "name": "punctuation.separator.key-value.html punctuation.separator.key-value.html-template.ng" }, - "4": { - "name": "entity.name.tag.html html-template.ng.tag.suffix" + "9": { + "name": "string.quoted.double.html" } }, - "patterns": [ - { - "include": "#tag-stuff" - } - ], - "begin": "()", - "name": "meta.element.ng.html" - }, - "xml-dtd": { - "begin": "(<)(!)(ELEMENT|ATTLIST|ENTITY|NOTATION)", - "captures": { "1": { - "name": "punctuation.definition.tag.begin.dtd" - }, - "2": { - "name": "punctuation.definition.tag.begin.html html-template.ng.exclamation.dtd" - }, - "3": { - "name": "entity.name.tag.dtd html-template.ng.dtd" + "name": "string.quoted.double.html" } }, - "end": "\\s*(>)", - "name": "meta.tag.type.dtd", + "begin": "(?)", - "name": "meta.tag.metadata.processing.xml.html", + "link-type-attribute": { "patterns": [ { - "include": "#tag-stuff" + "match": "[\\s]*(type)(=)(\")((image)/((x-)?(icon|png|jpg|jpeg|svg\\+xml|svg|vnd\\.microsoft\\.icon)))(\")", + "captures": { + "0": { + "name": "meta.attribute.$1.html" + }, + "1": { + "name": "entity.other.attribute-name.html html-template.ng.attributes.generic" + }, + "2": { + "name": "punctuation.separator.key-value.html punctuation.separator.key-value.html-template.ng" + }, + "3": { + "name": "string.quoted.double.html" + }, + "4": { + "name": "string.quoted.double.html" + }, + "6": { + "name": "html-template.ng.script.language.identifier" + }, + "9": { + "name": "html-template.ng.script.language.identifier" + }, + "10": { + "name": "string.quoted.double.html" + } + } } ] }, - "xml-stylesheet-processing": { - "begin": "(<\\?)(xml-stylesheet)", + "tag-minified-boolean-attributes": { "captures": { + "0": { + "name": "meta.attribute.$1.boolean.html" + }, "1": { - "name": "punctuation.definition.tag.html" + "name": "entity.other.attribute-name.html html-template.ng.attributes.generic" }, "2": { - "name": "entity.name.tag.html" - } - }, - "end": "(\\?>)", - "name": "meta.tag.metadata.processing.xml-stylesheet.html", - "patterns": [ - { - "include": "#xml-stylesheet-type-attribute" + "name": "entity.other.attribute-name.html html-template.ng.attributes.colon" }, - { - "include": "#tag-stuff" + "3": { + "name": "entity.other.attribute-name.html html-template.ng.attributes.suffix" } - ] + }, + "match": "(?`])", - "patterns": [ - { - "beginCaptures": { - "0": { - "name": "punctuation.definition.string.begin.html" - }, - "1": { - "name": "string.quoted.double.html" - } - }, - "patterns": [ - { - "include": "#angular-expression" - } - ], - "begin": "(\")", - "endCaptures": { - "0": { - "name": "punctuation.definition.string.end.html" - }, - "1": { - "name": "string.quoted.double.html" - } - }, - "end": "(\")" + "match": "(let\\-)\\b([\\w\\-\\_]+)([$]*)(?!=)[\\s]?" + }, + "tag-boolean-template-variable": { + "captures": { + "0": { + "name": "meta.ng-binding.template.variable.boolean.html" }, - { - "beginCaptures": { - "0": { - "name": "punctuation.definition.string.begin.html" - }, - "1": { - "name": "string.quoted.single.html" - } - }, - "patterns": [ - { - "include": "#angular-expression" - } - ], - "begin": "(')", - "endCaptures": { - "0": { - "name": "punctuation.definition.string.end.html" - }, - "1": { - "name": "string.quoted.single.html" - } - }, - "end": "(')" + "1": { + "name": "entity.other.attribute-name.html html-template.ng.attributes.template.prefix" + }, + "2": { + "name": "entity.other.attribute-name.html html-template.ng.attributes.template.variable" + }, + "3": { + "name": "entity.other.attribute-name.html html-template.ng.attributes.suffix.rxjs" } - ] + }, + "match": "(#)\\b([\\w\\-\\_]+)([$]*)(?!=)[\\s]?" }, - "tag-generic-attribute": { - "beginCaptures": { + "tag-double-way-annimation-trigger": { + "captures": { "0": { - "name": "meta.attribute.$2.html" + "name": "meta.ng-animation-trigger.property.html" + }, + "1": { + "name": "entity.other.ng-binding-name.property.html entity.other.ng-binding-name.two-way.html punctuation.definition.ng-binding-name.begin.html" + }, + "2": { + "name": "entity.other.attribute-name.html html-template.ng.attributes.animationtrigger.prefix" }, "3": { - "name": "entity.other.attribute-name.html html-template.ng.attributes.generic" + "name": "entity.other.attribute-name.html html-template.ng.attributes.animationtrigger.variable" }, "4": { - "name": "entity.other.attribute.name.html html-template.ng.attributes.generic html-template.ng.attributes.input-binding.second-level" + "name": "entity.other.attribute-name.html html-template.ng.attributes.suffix.rxjs" }, "5": { - "name": "entity.other.attribute.name.html html-template.ng.attributes.generic html-template.ng.attributes.input-binding.third-level" + "name": "entity.other.ng-binding-name.property.html entity.other.ng-binding-name.two-way.html punctuation.definition.ng-binding-name.end.html" + } + }, + "match": "(?)", - "name": "meta.element.custom.html" - }, - "tag-deprecated-svg-other": { - "beginCaptures": { - "0": { - "name": "meta.tag.other.svg.$2.begin.html" + "name": "entity.other.ng-binding-name.property.html entity.other.ng-binding-name.binding.html punctuation.definition.ng-binding-name.end.html" }, - "1": { - "name": "punctuation.definition.tag.begin.html" + "7": { + "name": "punctuation.separator.key-value.html punctuation.separator.key-value.html-template.ng" }, - "2": { - "name": "invalid.deprecated.tag" + "8": { + "name": "string.quoted.double.html" } }, "endCaptures": { "0": { - "name": "meta.tag.other.svg.$2.end.html" + "name": "meta.ng-binding.property.html" }, "1": { - "name": "punctuation.definition.tag.end.html" + "name": "string.quoted.double.html" } }, - "begin": "(<\\/?)(altGlyphItem|altGlyphDef|font-face-src)(?!(?:[\\w-]))\\b", - "end": "(\\/?>)", - "name": "invalid.deprecated.tag", + "begin": "(?)", + "begin": "(\\*)\\b([\\w\\-\\_]+)([$]*)(=)(\")", + "end": "(\")", "patterns": [ { - "include": "#tag-stuff" + "include": "#angular-expression" } ] }, - "tag-deprecated-metadata-void": { + "tag-template-input-variable": { "beginCaptures": { "0": { - "name": "meta.tag.metadata.$2.void.html" + "name": "meta.ng-binding.template.input.variable.html" }, "1": { - "name": "punctuation.definition.tag.begin.html" + "name": "entity.other.attribute-name.html html-template.ng.attributes.prefix.let" }, "2": { - "name": "invalid.deprecated.tag" + "name": "entity.other.attribute-name.html html-template.ng.attributes.suffix.name" }, "3": { - "name": "entity.name.tag.html html-template.ng.tag.colon" + "name": "entity.other.attribute-name.html html-template.ng.attributes.suffix.rxjs" }, "4": { - "name": "entity.name.tag.html html-template.ng.tag.suffix" + "name": "punctuation.separator.key-value.html punctuation.separator.key-value.html-template.ng" + }, + "5": { + "name": "string.quoted.double.html" } }, "endCaptures": { "0": { - "name": "meta.tag.metadata.$2.void.html" + "name": "meta.ng-binding.template.variable.alt.html" }, "1": { - "name": "punctuation.definition.tag.end.html" + "name": "string.quoted.double.html" } }, - "begin": "(<\\/?)(basefont|isindex)\\b(:)?([\\w\\_$]+)?(?!(?:[\\w-]))\\b", - "end": "(\\/?>)", + "begin": "(let\\-)\\b([\\w\\-\\_]+)([$]*)(=)(\")", + "end": "(\")", "patterns": [ { - "include": "#tag-stuff" + "include": "#angular-expression" } ] }, - "tag-deprecated-object-void": { - "beginCaptures": { + "tag-template-variable": { + "captures": { "0": { - "name": "meta.tag.object.$2.void.html" + "name": "meta.ng-binding.template.variable.html" }, "1": { - "name": "punctuation.definition.tag.begin.html" + "name": "entity.other.attribute-name.html html-template.ng.attributes.template.prefix" }, "2": { - "name": "invalid.deprecated.tag" + "name": "entity.other.attribute-name.html html-template.ng.attributes.template.variable" }, "3": { - "name": "entity.name.tag.html html-template.ng.tag.colon" + "name": "entity.other.attribute-name.html html-template.ng.attributes.suffix.rxjs" }, "4": { - "name": "entity.name.tag.html html-template.ng.tag.suffix" + "name": "punctuation.separator.key-value.html punctuation.separator.key-value.html-template.ng" + }, + "5": { + "name": "string.quoted.double.html" } }, "endCaptures": { "0": { - "name": "meta.tag.object.$2.void.html" + "name": "meta.ng-binding.template.variable.html" }, "1": { - "name": "punctuation.definition.tag.end.html" + "name": "string.quoted.double.html" } }, - "begin": "(<\\/?)(frame)\\b(:)?([\\w\\_$]+)?(?!(?:[\\w-]))\\b", - "end": "(\\/?>)", - "patterns": [ - { - "include": "#tag-stuff" - } - ] - }, - "tag-deprecated-object": { - "beginCaptures": { - "0": { - "name": "meta.tag.object.$2.start.html" - }, - "1": { - "name": "punctuation.definition.tag.begin.html" - }, - "2": { - "name": "invalid.deprecated.tag" - }, - "3": { - "name": "entity.name.tag.html html-template.ng.tag.colon" - }, - "4": { - "name": "entity.name.tag.html html-template.ng.tag.suffix" - } - }, - "endCaptures": { - "0": { - "name": "meta.tag.object.$2.end.html" - }, - "1": { - "name": "punctuation.definition.tag.end.html" - } - }, - "begin": "(<\\/?)(applet)\\b(:)?([\\w\\_$]+)?(?!(?:[\\w-]))\\b", - "end": "(\\/?>)", + "begin": "(#)\\b([\\w\\-\\_]+)([$]*)(=)(\")", + "end": "(\")", "patterns": [ { - "include": "#tag-stuff" + "include": "#angular-expression" } ] }, - "tag-deprecated-other": { + "tag-script": { + "begin": "(^[\\t]+)?(?=<(?i:script)\\b(?!-))", "beginCaptures": { - "0": { - "name": "meta.tag.other.$2.start.html" - }, "1": { - "name": "punctuation.definition.tag.begin.html" - }, - "2": { - "name": "invalid.deprecated.tag" - }, - "3": { - "name": "entity.name.tag.html html-template.ng.tag.colon" - }, - "4": { - "name": "entity.name.tag.html html-template.ng.tag.suffix" + "name": "punctuation.whitespace.embedded.leading.html" } }, + "end": "()\\n?", "endCaptures": { "0": { - "name": "meta.tag.other.$2.end.html" - }, - "1": { - "name": "punctuation.definition.tag.end.html" - } - }, - "begin": "(<\\/?)(dir)\\b(:)?([\\w\\_$]+)?(?!(?:[\\w-]))\\b", - "end": "(\\/?>)", - "patterns": [ - { - "include": "#tag-stuff" - } - ] - }, - "tag-deprecated-structure": { - "beginCaptures": { - "0": { - "name": "meta.tag.structure.$2.start.html" + "name": "meta.tag.metadata.script.start.html" }, "1": { "name": "punctuation.definition.tag.begin.html" }, "2": { - "name": "invalid.deprecated.tag" + "name": "meta.tag.metadata.html entity.name.tag.html html-template.tag.html" }, "3": { - "name": "entity.name.tag.html html-template.ng.tag.colon" - }, - "4": { - "name": "entity.name.tag.html html-template.ng.tag.suffix" - } - }, - "endCaptures": { - "0": { - "name": "meta.tag.structure.$2.end.html" - }, - "1": { "name": "punctuation.definition.tag.end.html" } }, - "begin": "(<\\/?)(center|frameset|noframes)\\b(:)?([\\w\\_$]+)?(?!(?:[\\w-]))\\b", - "end": "(\\/?>)", - "patterns": [ - { - "include": "#tag-stuff" - } - ] - }, - "angular-control-flow": { - "patterns": [ - { - "include": "#control-flow-expression-parenthesis" - }, - { - "include": "#control-flow-expression-no-parenthesis" - } - ] - }, - "control-flow-expression-no-parenthesis": { - "name": "control-flow.ng", - "begin": "((@)([a-zA-Z]+))\\s*(?!\\()", - "beginCaptures": { - "2": { - "name": "entity.other.html.ng.control-flow meta.ng-control-flow.prefix.html html-template.ng.control-flow.prefix" - }, - "3": { - "name": "entity.other.html.ng.control-flow meta.ng-control-flow.prefix.html html-template.ng.control-flow.keyword" - }, - "4": { - "name": "meta.brace.round.ts" - } - }, - "end": "(\\s*\\{|;)", - "endCaptures": { - "0": { - "name": "meta.brace.curly.ts" - } - }, - "patterns": [ - { - "name": "keyword.control.on.ts", - "match": "\\s*(on)\\s*" - }, - { - "name": "entity.other.html.ng.control-flow meta.ng-control-flow.prefix.html html-template.ng.control-flow.keyword", - "match": "\\s*(if)\\s*" - }, - { - "include": "#angular-expression" - }, - { - "include": "#punctuation-comma" - } - ] - }, - "control-flow-expression-parenthesis": { - "name": "meta.ng.control-flow.expression", - "begin": "((@)([a-zA-Z]+))\\s*(\\()", - "beginCaptures": { - "2": { - "name": "entity.other.html.ng.control-flow meta.ng-control-flow.prefix.html html-template.ng.control-flow.prefix" - }, - "3": { - "name": "entity.other.html.ng.control-flow meta.ng-control-flow.prefix.html html-template.ng.control-flow.keyword" - }, - "4": { - "name": "meta.brace.round.ts" - } - }, - "end": "(\\))", - "endCaptures": { - "0": { - "name": "meta.brace.round.ts" - } - }, - "patterns": [ - { - "name": "keyword.control.on.ts", - "match": "\\s*(on)\\s*" - }, - { - "include": "#angular-expression" - }, - { - "include": "#punctuation-comma" - } - ] - }, - "angular-interpolations": { "patterns": [ { + "begin": "(<)((?i:script))(>)", "beginCaptures": { "0": { - "name": "expression.ng" + "name": "meta.tag.metadata.script.start.html" }, "1": { - "name": "punctuation.definition.block.ts html-template.ng.interpolation.begin" + "name": "punctuation.definition.tag.begin.html" + }, + "2": { + "name": "entity.name.tag.html html-template.tag.html" + }, + "3": { + "name": "punctuation.definition.tag.end.html" } }, + "end": "(?=(?=<(?=/(?=script(?=>)))))", + "name": "source.js", "patterns": [ { - "match": "\\?\\.|\\!\\.|\\.|\\!|\\?|\\:", - "name": "keyword.operator.navigation html-template.ng.expression.operator.navigator" + "include": "#cdata" }, { - "include": "#angular-expression" + "include": "source.js" } - ], - "begin": "(\\{\\{\\{?)", - "endCaptures": { + ] + }, + { + "begin": "(<)((?i:script))\\b", + "beginCaptures": { "0": { - "name": "expression.ng" + "name": "meta.tag.metadata.script.start.html" }, "1": { - "name": "punctuation.definition.block.ts html-template.ng.interpolation.end" + "name": "punctuation.definition.tag.begin.html" + }, + "2": { + "name": "entity.name.tag.html html-template.tag.html" } }, - "end": "(\\}\\}\\}?)", - "name": "expression.ng html-template.ng.interpolation.expression" - } - ] - }, - "angular-expression": { - "name": "expression.ng", - "patterns": [ - { - "include": "#var-keywords" - }, - { - "include": "#operator-navigator" - }, - { - "include": "#ts-string" - }, - { - "include": "#literal" - }, - { - "include": "#ternary-expression" - }, - { - "include": "#object-literal" - }, - { - "include": "#expression-operators" - }, - { - "include": "#function-call" - }, - { - "include": "#identifiers" - }, - { - "include": "#paren-expression" - }, - { - "include": "#punctuation-comma" - }, - { - "include": "#punctuation-accessor" - } + "end": "(?=(?=<(?=/(?=script(?=>)))))", + "patterns": [ + { + "begin": "\\G", + "end": "(?=<(?=/(?=script(?=>))))", + "patterns": [ + { + "begin": "(?=(type(?=[\\s=]['\"](text/(typescript|x-typescript)|application/((x-)?typescript))[\\s\"'])|(lang(?=[\\s=]['\"]typescript[\\s\"']))))", + "end": "(?=<(?=/(?=script>)))", + "patterns": [ + { + "begin": "\\G", + "end": "(?=<(?=/script>))", + "patterns": [ + { + "begin": "\\G", + "end": "(>)", + "endCaptures": { + "1": { + "name": "punctuation.definition.tag.end.html" + } + }, + "name": "meta.tag.metadata.script.start.html", + "patterns": [ + { + "include": "#script-type-attribute" + }, + { + "include": "#tag-stuff" + } + ] + }, + { + "begin": "(?!\\G)", + "end": "(?=)", + "name": "source.ts", + "patterns": [ + { + "include": "#cdata" + }, + { + "include": "source.ts" + } + ] + } + ] + } + ] + }, + { + "begin": "(?=(type(?=[\\s=]['\"]((module)|(text/(ecmascript|x-ecmascript|javascript|x-javascript)|application/((x-)?javascript|ecmascript)))[\\s\"'])|(lang(?=[\\s=]['\"]javascript[\\s\"']))))", + "end": "(?=<(?=/(?=script>)))", + "patterns": [ + { + "begin": "\\G", + "end": "(?=<(?=/script>))", + "patterns": [ + { + "begin": "\\G", + "end": "(>)", + "endCaptures": { + "1": { + "name": "punctuation.definition.tag.end.html" + } + }, + "name": "meta.tag.metadata.script.start.html", + "patterns": [ + { + "include": "#script-type-attribute" + }, + { + "include": "#tag-stuff" + } + ] + }, + { + "begin": "(?!\\G)", + "end": "(?=)", + "name": "source.js", + "patterns": [ + { + "include": "#cdata" + }, + { + "include": "source.js" + } + ] + } + ] + } + ] + }, + { + "begin": "(?=(type(?=[\\s=]['\"](text/(coffeescript|x-coffeescript)|application/((x-)?coffeescript))[\\s\"'])|(lang(?=[\\s=]['\"]coffeescript[\\s\"']))))", + "end": "(?=<(?=/(?=script>)))", + "patterns": [ + { + "begin": "\\G", + "end": "(?=<(?=/script>))", + "patterns": [ + { + "begin": "\\G", + "end": "(>)", + "endCaptures": { + "1": { + "name": "punctuation.definition.tag.end.html" + } + }, + "name": "meta.tag.metadata.script.start.html", + "patterns": [ + { + "include": "#script-type-attribute" + }, + { + "include": "#tag-stuff" + } + ] + }, + { + "begin": "(?!\\G)", + "end": "(?=)", + "name": "source.coffee", + "patterns": [ + { + "include": "#cdata" + }, + { + "include": "source.coffee" + } + ] + } + ] + } + ] + }, + { + "begin": "(?=(type(?=[\\s=]['\"](text/(dart|x-dart)|application/((x-)?dart))[\\s\"'])|(lang(?=[\\s=]['\"]dart[\\s\"']))))", + "end": "(?=<(?=/(?=script>)))", + "patterns": [ + { + "begin": "\\G", + "end": "(?=<(?=/script>))", + "patterns": [ + { + "begin": "\\G", + "end": "(>)", + "endCaptures": { + "1": { + "name": "punctuation.definition.tag.end.html" + } + }, + "name": "meta.tag.metadata.script.start.html", + "patterns": [ + { + "include": "#script-type-attribute" + }, + { + "include": "#tag-stuff" + } + ] + }, + { + "begin": "(?!\\G)", + "end": "(?=)", + "name": "source.dart", + "patterns": [ + { + "include": "#cdata" + }, + { + "include": "source.dart" + } + ] + } + ] + } + ] + }, + { + "include": "#tag-stuff" + } + ] + } + ] + } ] }, - "array-literal": { - "name": "meta.array.literal.ts", - "begin": "\\[", + "tag-style": { + "begin": "(^[\\t]+)?(?=<(?i:style)\\b(?!-))", "beginCaptures": { - "0": { - "name": "meta.brace.square.ts" + "1": { + "name": "punctuation.whitespace.embedded.leading.html" } }, - "end": "\\]", + "end": "()\\n?", "endCaptures": { "0": { - "name": "meta.brace.square.ts" - } - }, - "patterns": [ - { - "include": "#angular-expression" + "name": "meta.tag.metadata.style.start.html" }, - { - "include": "#punctuation-comma" - } - ] - }, - "binding-element": { - "patterns": [ - { - "include": "#variable-initializer" - } - ] - }, - "boolean-literal": { - "patterns": [ - { - "name": "constant.language.boolean.true.ts", - "match": "(?)", + "beginCaptures": { + "0": { + "name": "meta.tag.metadata.style.start.html" + }, + "1": { + "name": "punctuation.definition.tag.begin.html" + }, "2": { - "name": "keyword.operator.logical.ts html-template.ng.expression.operator.logical" + "name": "entity.name.tag.html" }, "3": { - "name": "entity.name.function.pipe.ng" - } - } - }, - { - "name": "keyword.control.flow.ts", - "match": "(?>=|>>>=|\\|=" - }, - { - "name": "keyword.operator.bitwise.shift.ts html-template.ng.expression.operator.bitwise", - "match": "<<|>>>|>>" - }, - { - "name": "keyword.operator.comparison.ts html-template.ng.expression.operator.comparison", - "match": "===|!==|==|!=" - }, - { - "name": "keyword.operator.relational.ts html-template.ng.expression.operator.relational", - "match": "<=|>=|<>|<|>" - }, - { - "name": "keyword.operator.logical.ts html-template.ng.expression.operator.logical", - "match": "\\!|&&|\\|\\|" - }, - { - "name": "keyword.operator.bitwise.ts html-template.ng.expression.operator.bitwise", - "match": "\\&|~|\\^|\\|" - }, - { - "name": "keyword.operator.assignment.ts", - "match": "\\=" - }, - { - "name": "keyword.operator.decrement.ts", - "match": "--" - }, - { - "name": "keyword.operator.increment.ts", - "match": "\\+\\+" - }, - { - "name": "keyword.operator.arithmetic.ts html-template.ng.expression.operator.arithmetic", - "match": "%|\\*|/|-|\\+" - }, - { - "match": "(?<=[_$[:alnum:]])\\s*(/)(?![/*])", - "captures": { - "1": { - "name": "keyword.operator.arithmetic.ts html-template.ng.expression.operator.arithmetic" - } - } - } - ] - }, - "function-call": { - "begin": "(?=(\\.\\s*)?([_$[:alpha:]][_$[:alnum:]]*)\\s*(<([^<>]|\\<[^<>]+\\>)+>\\s*)?\\()", - "end": "(?<=\\))(?!(\\.\\s*)?([_$[:alpha:]][_$[:alnum:]]*)\\s*(<([^<>]|\\<[^<>]+\\>)+>\\s*)?\\()", - "patterns": [ - { - "name": "punctuation.accessor.ts", - "match": "\\." - }, - { - "name": "entity.name.function.ts", - "match": "([_$[:alpha:]][_$[:alnum:]]*)" - }, - { - "name": "meta.type.parameters.ts", - "begin": "\\<", - "beginCaptures": { - "0": { - "name": "punctuation.definition.typeparameters.begin.ts" - } - }, - "end": "\\>", - "endCaptures": { - "0": { - "name": "punctuation.definition.typeparameters.end.ts" + "name": "punctuation.definition.tag.end.html" } }, + "end": "(?=(?=<(?=/(?=style(?=>)))))", + "name": "source.css", "patterns": [ { - "include": "#type" + "include": "#cdata" }, { - "include": "#punctuation-comma" + "include": "source.css" } ] }, { - "include": "#paren-expression" - } - ] - }, - "function-parameters": { - "name": "meta.parameters.ts", - "begin": "\\(", - "beginCaptures": { - "0": { - "name": "punctuation.definition.parameters.begin.ts" - } - }, - "end": "\\)", - "endCaptures": { - "0": { - "name": "punctuation.definition.parameters.end.ts" - } - }, - "patterns": [ - { - "include": "#decorator" - }, - { - "include": "#parameter-name" - }, - { - "include": "#variable-initializer" - }, - { - "name": "punctuation.separator.parameter.ts", - "match": "," - } - ] - }, - "identifiers": { - "patterns": [ - { - "name": "support.class.ts", - "match": "([_$[:alpha:]][_$[:alnum:]]*)(?=\\s*\\.\\s*prototype\\b(?!\\$))" - }, - { - "match": "(?x)(\\?\\.|\\!\\.|\\.)\\s*(?:\n ([[:upper:]][_$[:digit:][:upper:]]*) |\n ([_$[:alpha:]][_$[:alnum:]]*)\n)(?=\\s*\\.\\s*[_$[:alpha:]][_$[:alnum:]]*)", - "captures": { - "1": { - "name": "punctuation.accessor.ts" - }, - "2": { - "name": "constant.other.object.property.ts" - }, - "3": { - "name": "variable.other.object.property.ts" - } - } - }, - { - "match": "(?x)(?:(\\?\\.|\\!\\.|\\.)\\s*)?([_$[:alpha:]][_$[:alnum:]]*)(?=\\s*=\\s*( (async\\s+)|(function\\s*[(<])|(function\\s+)| ([_$[:alpha:]][_$[:alnum:]]*\\s*=>)| ((<([^<>]|\\<[^<>]+\\>)+>\\s*)?\\(([^()]|\\([^()]*\\))*\\)(\\s*:\\s*(.)*)?\\s*=>)))", - "captures": { - "1": { - "name": "punctuation.accessor.ts" - }, - "2": { - "name": "entity.name.function.ts" - } - } - }, - { - "match": "(\\?\\.|\\!\\.|\\.)\\s*([[:upper:]][_$[:digit:][:upper:]]*)(?![_$[:alnum:]])", - "captures": { - "1": { - "name": "punctuation.accessor.ts" + "begin": "(<)((?i:style))\\b", + "beginCaptures": { + "0": { + "name": "meta.tag.metadata.style.start.html" }, - "2": { - "name": "constant.other.property.ts" - } - } - }, - { - "match": "(?x)(?:\n ([[:upper:]][_$[:digit:][:upper:]]*) |\n ([_$[:alpha:]][_$[:alnum:]]*)\n)(?=\\s*\\.\\s*[_$[:alpha:]][_$[:alnum:]]*)", - "captures": { "1": { - "name": "constant.other.object.ts" + "name": "punctuation.definition.tag.begin.html" }, "2": { - "name": "variable.other.object.ts" + "name": "entity.name.tag.html" } - } - }, - { - "name": "constant.character.other", - "match": "([[:upper:]][_$[:digit:][:upper:]]*)(?![_$[:alnum:]])" - }, - { - "name": "variable.other.property.ts", - "match": "[_$[:alpha:]][_$[:alnum:]]*" - } - ] - }, - "literal": { - "name": "literal.ts", - "patterns": [ - { - "include": "#numeric-literal" - }, - { - "include": "#boolean-literal" - }, - { - "include": "#null-literal" - }, - { - "include": "#undefined-literal" - }, - { - "include": "#numericConstant-literal" - }, - { - "include": "#array-literal" - }, - { - "include": "#this-literal" - } - ] - }, - "null-literal": { - "name": "constant.language.null.ts", - "match": "(?)))))", "patterns": [ { - "name": "meta.object-literal.key.ts", - "begin": "(?=(?:(?:\\'[^']*\\')|(?:\\\"[^\"]*\\\")|(?:\\[([^\\[\\]]|\\[[^\\[\\]]+\\])+\\]))\\s*:)", - "end": ":", - "endCaptures": { - "0": { - "name": "punctuation.separator.key-value.ts" - } - }, + "begin": "\\G", + "end": "(?=<(?=/(?=style(?=>))))", "patterns": [ { - "include": "#ts-string" + "begin": "(?=(type(?=[\\s=]['\"](text/css[\\s\"'>]))|(lang(?=[\\s=]['\"]css[\\s\"'>]))))", + "end": "(?=<(?=/(?=style>)))", + "patterns": [ + { + "begin": "\\G", + "end": "(?=<(?=/style>))", + "patterns": [ + { + "begin": "\\G", + "end": "(>)", + "endCaptures": { + "1": { + "name": "punctuation.definition.tag.end.html" + } + }, + "name": "meta.tag.metadata.style.start.html", + "patterns": [ + { + "include": "#style-type-attribute" + }, + { + "include": "#tag-stuff" + } + ] + }, + { + "begin": "(?!\\G)", + "end": "(?=)", + "name": "source.css", + "patterns": [ + { + "include": "#cdata" + }, + { + "include": "source.css" + } + ] + } + ] + } + ] }, { - "include": "#array-literal" - } - ] - }, - { - "include": "#angular-expression" - } - ] - }, - { - "name": "meta.object.member.ts", - "begin": "(?x)(?:([_$[:alpha:]][_$[:alnum:]]*)\\s*(:)(?=\\s*( (async\\s+)|(function\\s*[(<])|(function\\s+)| ([_$[:alpha:]][_$[:alnum:]]*\\s*=>)| ((<([^<>]|\\<[^<>]+\\>)+>\\s*)?\\(([^()]|\\([^()]*\\))*\\)(\\s*:\\s*(.)*)?\\s*=>))))", - "beginCaptures": { - "0": { - "name": "meta.object-literal.key.ts" - }, - "1": { - "name": "entity.name.function.ts" - }, - "2": { - "name": "punctuation.separator.key-value.ts" - } - }, - "end": "(?=,|\\})", - "patterns": [ - { - "include": "#angular-expression" - } - ] - }, - { - "name": "meta.object.member.ts", - "begin": "(?:[_$[:alpha:]][_$[:alnum:]]*)\\s*(:)", - "beginCaptures": { - "0": { - "name": "meta.object-literal.key.ts" - }, - "1": { - "name": "punctuation.separator.key-value.ts" - } - }, - "end": "(?=,|\\})", - "patterns": [ - { - "include": "#angular-expression" - } - ] - }, - { - "name": "meta.object.member.ts", - "match": "([_$[:alpha:]][_$[:alnum:]]*)\\s*(?=,|\\}|$)", - "captures": { - "1": { - "name": "variable.other.readwrite.ts" - } - } - }, - { - "include": "#punctuation-comma" - } - ] - }, - "operator-navigator": { - "match": "\\?\\.|\\!\\.|\\.|\\,|\\;|\\?|\\!|\\:", - "name": "keyword.operator.punctuation html-template.ng.expression.operator.navigator" - }, - "parameter-name": { - "patterns": [ - { - "match": "(?x)(?:\\s*\\b(readonly)\\s+)?(?:\\s*\\b(public|private|protected)\\s+)?(\\.\\.\\.)?\\s*(?) | ((<([^<>]|\\<[^<>]+\\>)+>\\s*)?\\(([^()]|\\([^()]*\\))*\\)(\\s*:\\s*(.)*)?\\s*=>)) ) | (:\\s*( (<) | ([(]\\s*( ([)]) | (\\.\\.\\.) | ([_$[:alnum:]]+\\s*( ([:,?=])| ([)]\\s*=>) )) ))) ))", - "captures": { - "1": { - "name": "storage.modifier.ts" - }, - "2": { - "name": "storage.modifier.ts" - }, - "3": { - "name": "keyword.operator.rest.ts" - }, - "4": { - "name": "entity.name.function.ts" - }, - "5": { - "name": "keyword.operator.optional.ts" - } - } - }, - { - "match": "(?:\\s*\\b(readonly)\\s+)?(?:\\s*\\b(public|private|protected)\\s+)?(\\.\\.\\.)?\\s*(?]))|(lang(?=[\\s=]['\"]less[\\s\"'>]))))", + "end": "(?=<(?=/(?=style>)))", + "patterns": [ + { + "begin": "\\G", + "end": "(?=<(?=/style>))", + "patterns": [ + { + "begin": "\\G", + "end": "(>)", + "endCaptures": { + "1": { + "name": "punctuation.definition.tag.end.html" + } + }, + "name": "meta.tag.metadata.style.start.html", + "patterns": [ + { + "include": "#style-type-attribute" + }, + { + "include": "#tag-stuff" + } + ] + }, + { + "begin": "(?!\\G)", + "end": "(?=)", + "name": "source.css.less", + "patterns": [ + { + "include": "#cdata" + }, + { + "include": "source.css.less" + } + ] + } + ] + } + ] + }, + { + "begin": "(?=(type(?=[\\s=]['\"](text/postcss[\\s\"'>]))|(lang(?=[\\s=]['\"]postcss[\\s\"'>]))))", + "end": "(?=<(?=/(?=style>)))", + "patterns": [ + { + "begin": "\\G", + "end": "(?=<(?=/style>))", + "patterns": [ + { + "begin": "\\G", + "end": "(>)", + "endCaptures": { + "1": { + "name": "punctuation.definition.tag.end.html" + } + }, + "name": "meta.tag.metadata.style.start.html", + "patterns": [ + { + "include": "#style-type-attribute" + }, + { + "include": "#tag-stuff" + } + ] + }, + { + "begin": "(?!\\G)", + "end": "(?=)", + "name": "source.postcss", + "patterns": [ + { + "include": "#cdata" + }, + { + "include": "source.postcss" + } + ] + } + ] + } + ] + }, + { + "begin": "(?=(type(?=[\\s=]['\"](text/sass[\\s\"'>]))|(lang(?=[\\s=]['\"]sass[\\s\"'>]))))", + "end": "(?=<(?=/(?=style>)))", + "patterns": [ + { + "begin": "\\G", + "end": "(?=<(?=/style>))", + "patterns": [ + { + "begin": "\\G", + "end": "(>)", + "endCaptures": { + "1": { + "name": "punctuation.definition.tag.end.html" + } + }, + "name": "meta.tag.metadata.style.start.html", + "patterns": [ + { + "include": "#style-type-attribute" + }, + { + "include": "#tag-stuff" + } + ] + }, + { + "begin": "(?!\\G)", + "end": "(?=)", + "name": "source.sass", + "patterns": [ + { + "include": "#cdata" + }, + { + "include": "source.sass" + } + ] + } + ] + } + ] + }, + { + "begin": "(?=(type(?=[\\s=]['\"](text/scss[\\s\"'>]))|(lang(?=[\\s=]['\"]scss[\\s\"'>]))))", + "end": "(?=<(?=/(?=style>)))", + "patterns": [ + { + "begin": "\\G", + "end": "(?=<(?=/style>))", + "patterns": [ + { + "begin": "\\G", + "end": "(>)", + "endCaptures": { + "1": { + "name": "punctuation.definition.tag.end.html" + } + }, + "name": "meta.tag.metadata.style.start.html", + "patterns": [ + { + "include": "#style-type-attribute" + }, + { + "include": "#tag-stuff" + } + ] + }, + { + "begin": "(?!\\G)", + "end": "(?=)", + "name": "source.css.scss", + "patterns": [ + { + "include": "#cdata" + }, + { + "include": "source.css.scss" + } + ] + } + ] + } + ] + }, + { + "begin": "(?=(type(?=[\\s=]['\"](text/styl(us)?[\\s\"'>]))|(lang(?=[\\s=]['\"]styl(us)?[\\s\"'>]))))", + "end": "(?=<(?=/(?=style>)))", + "patterns": [ + { + "begin": "\\G", + "end": "(?=<(?=/style>))", + "patterns": [ + { + "begin": "\\G", + "end": "(>)", + "endCaptures": { + "1": { + "name": "punctuation.definition.tag.end.html" + } + }, + "name": "meta.tag.metadata.style.start.html", + "patterns": [ + { + "include": "#style-type-attribute" + }, + { + "include": "#tag-stuff" + } + ] + }, + { + "begin": "(?!\\G)", + "end": "(?=)", + "name": "source.stylus", + "patterns": [ + { + "include": "#cdata" + }, + { + "include": "source.stylus" + } + ] + } + ] + } + ] + }, + { + "include": "#tag-stuff" + } + ] + } + ] + } + ] + }, + "tag-deprecated-inline": { + "beginCaptures": { + "0": { + "name": "meta.tag.inline.$2.start.html" + }, + "1": { + "name": "punctuation.definition.tag.begin.html" + }, + "2": { + "name": "invalid.deprecated.tag" + }, + "3": { + "name": "entity.name.tag.html html-template.ng.tag.colon" + }, + "4": { + "name": "entity.name.tag.html html-template.ng.tag.suffix" + } + }, "endCaptures": { "0": { - "name": "meta.brace.round.ts" + "name": "meta.tag.inline.$2.end.html" + }, + "1": { + "name": "punctuation.definition.tag.end.html" } }, + "begin": "(<\\/?)(acronym|big|font|strike|tt|u)\\b(:)?([\\w\\_$]+)?(?!(?:[\\w-]))\\b", + "end": "(\\/?>)", "patterns": [ { - "include": "#angular-expression" - }, - { - "include": "#punctuation-comma" + "include": "#tag-stuff" } ] }, - "punctuation-accessor": { - "name": "punctuation.accessor.ts", - "match": "\\?\\.|\\!\\.|\\." - }, - "punctuation-comma": { - "name": "punctuation.separator.comma.ts", - "match": "," - }, - "punctuation-semicolon": { - "name": "punctuation.terminator.statement.ts", - "match": ";" - }, - "qstring-double": { - "name": "string.quoted.double.ts", - "begin": "\"", + "tag-deprecated-metadata-void": { "beginCaptures": { "0": { - "name": "punctuation.definition.string.begin.ts" + "name": "meta.tag.metadata.$2.void.html" + }, + "1": { + "name": "punctuation.definition.tag.begin.html" + }, + "2": { + "name": "invalid.deprecated.tag" + }, + "3": { + "name": "entity.name.tag.html html-template.ng.tag.colon" + }, + "4": { + "name": "entity.name.tag.html html-template.ng.tag.suffix" } }, - "end": "(\")|((?:[^\\\\\\n])$)", "endCaptures": { - "1": { - "name": "punctuation.definition.string.end.ts" + "0": { + "name": "meta.tag.metadata.$2.void.html" }, - "2": { - "name": "invalid.illegal.newline.ts" + "1": { + "name": "punctuation.definition.tag.end.html" } }, + "begin": "(<\\/?)(basefont|isindex)\\b(:)?([\\w\\_$]+)?(?!(?:[\\w-]))\\b", + "end": "(\\/?>)", "patterns": [ { - "include": "#string-character-escape" + "include": "#tag-stuff" } ] }, - "qstring-single": { - "name": "string.quoted.single.ts", - "begin": "'", + "tag-deprecated-object-void": { "beginCaptures": { "0": { - "name": "punctuation.definition.string.begin.ts" - } - }, - "end": "(\\')|((?:[^\\\\\\n])$)", - "endCaptures": { + "name": "meta.tag.object.$2.void.html" + }, "1": { - "name": "punctuation.definition.string.end.ts" + "name": "punctuation.definition.tag.begin.html" }, "2": { - "name": "invalid.illegal.newline.ts" + "name": "invalid.deprecated.tag" + }, + "3": { + "name": "entity.name.tag.html html-template.ng.tag.colon" + }, + "4": { + "name": "entity.name.tag.html html-template.ng.tag.suffix" } }, - "patterns": [ - { - "include": "#string-character-escape" + "endCaptures": { + "0": { + "name": "meta.tag.object.$2.void.html" + }, + "1": { + "name": "punctuation.definition.tag.end.html" } - ] - }, - "string-character-escape": { - "name": "constant.character.escape.ts", - "match": "\\\\(x\\h{2}|[0-2][0-7]{0,2}|3[0-6][0-7]?|37[0-7]?|[4-7][0-7]?|.|$)" - }, - "ternary-expression": { - "begin": "(?=\\?)(?!\\?\\.)", - "end": "(?=$|\"|[;,})\\]])", + }, + "begin": "(<\\/?)(frame)\\b(:)?([\\w\\_$]+)?(?!(?:[\\w-]))\\b", + "end": "(\\/?>)", "patterns": [ { - "include": "#ternary-operator" - }, - { - "include": "#angular-expression" + "include": "#tag-stuff" } ] }, - "ternary-operator": { - "begin": "(\\?)(?!\\.)", + "tag-deprecated-object": { "beginCaptures": { "0": { - "name": "keyword.operator.ternary.ts" + "name": "meta.tag.object.$2.start.html" + }, + "1": { + "name": "punctuation.definition.tag.begin.html" + }, + "2": { + "name": "invalid.deprecated.tag" + }, + "3": { + "name": "entity.name.tag.html html-template.ng.tag.colon" + }, + "4": { + "name": "entity.name.tag.html html-template.ng.tag.suffix" } }, - "end": "(:)", "endCaptures": { "0": { - "name": "keyword.operator.ternary.ts" + "name": "meta.tag.object.$2.end.html" + }, + "1": { + "name": "punctuation.definition.tag.end.html" } }, + "begin": "(<\\/?)(applet)\\b(:)?([\\w\\_$]+)?(?!(?:[\\w-]))\\b", + "end": "(\\/?>)", "patterns": [ { - "include": "#angular-expression" + "include": "#tag-stuff" } ] }, - "this-literal": { - "name": "variable.language.this.ts", - "match": "(?])|(?<=[\\}>\\]\\)]|[_$[:alpha:]])\\s*(?=\\{)", + "begin": "(<\\/?)(dir)\\b(:)?([\\w\\_$]+)?(?!(?:[\\w-]))\\b", + "end": "(\\/?>)", "patterns": [ { - "include": "#type" + "include": "#tag-stuff" } ] }, - "type-builtin-literals": { - "name": "support.type.builtin.ts", - "match": "(?)", + "patterns": [ { - "match": "(=)\\s*", - "captures": { - "1": { - "name": "keyword.operator.assignment.ts" - } - } + "include": "#tag-stuff" } ] }, - "type-fn-type-parameters": { + "angular-expression": { + "name": "expression.ng", "patterns": [ { - "name": "meta.type.constructor.ts", - "match": "(?)\\s*(?=\\()", - "end": "(?<=\\))", - "patterns": [ - { - "include": "#function-parameters" - } - ] + "include": "#ts-string" }, { - "name": "meta.type.function.ts", - "begin": "(?x)( (?= [(]\\s*( ([)]) | (\\.\\.\\.) | ([_$[:alnum:]]+\\s*( ([:,?=])| ([)]\\s*=>) )) ) ) )", - "end": "(?<=\\))", - "patterns": [ - { - "include": "#function-parameters" - } - ] - } - ] - }, - "type-name": { - "patterns": [ - { - "match": "([_$[:alpha:]][_$[:alnum:]]*)\\s*(\\?\\.|\\!\\.|\\.)", - "captures": { - "1": { - "name": "entity.name.type.module.ts" - }, - "2": { - "name": "punctuation.accessor.ts" - } - } + "include": "#literal" }, { - "name": "entity.name.type.ts", - "match": "[_$[:alpha:]][_$[:alnum:]]*" - } - ] - }, - "type-object-members": { - "patterns": [ + "include": "#ternary-expression" + }, { - "include": "#type-annotation" + "include": "#object-literal" }, { - "include": "#punctuation-comma" + "include": "#expression-operators" }, { - "include": "#punctuation-semicolon" - } - ] - }, - "type-object": { - "name": "meta.object.type.ts", - "begin": "\\{", - "beginCaptures": { - "0": { - "name": "punctuation.definition.block.ts" - } - }, - "end": "\\}", - "endCaptures": { - "0": { - "name": "punctuation.definition.block.ts" - } - }, - "patterns": [ + "include": "#function-call" + }, { - "include": "#type-object-members" - } - ] - }, - "type-operators": { - "patterns": [ + "include": "#identifiers" + }, { - "include": "#typeof-operator" + "include": "#paren-expression" }, { - "name": "keyword.operator.type.ts", - "match": "[&|]" + "include": "#punctuation-comma" }, { - "name": "keyword.operator.expression.keyof.ts", - "match": "(?) | ((<([^<>]|\\<[^<>]+\\>)+>\\s*)?\\(([^()]|\\([^()]*\\))*\\)(\\s*:\\s*(.)*)?\\s*=>)) ) | (:\\s*( (<) | ([(]\\s*( ([)]) | (\\.\\.\\.) | ([_$[:alnum:]]+\\s*( ([:,?=])| ([)]\\s*=>) )) ))) ))", + "begin": "(?>=|>>>=|\\|=" + }, + { + "name": "keyword.operator.bitwise.shift.ts html-template.ng.expression.operator.bitwise", + "match": "<<|>>>|>>" + }, + { + "name": "keyword.operator.comparison.ts html-template.ng.expression.operator.comparison", + "match": "===|!==|==|!=" + }, + { + "name": "keyword.operator.relational.ts html-template.ng.expression.operator.relational", + "match": "<=|>=|<>|<|>" + }, + { + "name": "keyword.operator.logical.ts html-template.ng.expression.operator.logical", + "match": "\\!|&&|\\|\\|" + }, + { + "name": "keyword.operator.bitwise.ts html-template.ng.expression.operator.bitwise", + "match": "\\&|~|\\^|\\|" + }, + { + "name": "keyword.operator.assignment.ts", + "match": "\\=" + }, + { + "name": "keyword.operator.decrement.ts", + "match": "--" + }, + { + "name": "keyword.operator.increment.ts", + "match": "\\+\\+" + }, + { + "name": "keyword.operator.arithmetic.ts html-template.ng.expression.operator.arithmetic", + "match": "%|\\*|/|-|\\+" + }, + { + "match": "(?<=[_$[:alnum:]])\\s*(/)(?![/*])", + "captures": { "1": { - "name": "variable.other.readwrite.ts" - } - }, - "end": "(?=$|\"|[;,=}]|(\\s+(of|in)\\s+))", - "patterns": [ - { - "include": "#type-annotation" - }, - { - "include": "#ts-string" + "name": "keyword.operator.arithmetic.ts html-template.ng.expression.operator.arithmetic" } - ] + } } ] }, - "variable-initializer": { - "begin": "(?]|\\<[^<>]+\\>)+>\\s*)?\\()", + "end": "(?<=\\))(?!(\\.\\s*)?([_$[:alpha:]][_$[:alnum:]]*)\\s*(<([^<>]|\\<[^<>]+\\>)+>\\s*)?\\()", "patterns": [ { - "include": "#angular-expression" + "name": "punctuation.accessor.ts", + "match": "\\." + }, + { + "name": "entity.name.function.ts", + "match": "([_$[:alpha:]][_$[:alnum:]]*)" + }, + { + "name": "meta.type.parameters.ts", + "begin": "\\<", + "beginCaptures": { + "0": { + "name": "punctuation.definition.typeparameters.begin.ts" + } + }, + "end": "\\>", + "endCaptures": { + "0": { + "name": "punctuation.definition.typeparameters.end.ts" + } + }, + "patterns": [ + { + "include": "#type" + }, + { + "include": "#punctuation-comma" + } + ] + }, + { + "include": "#paren-expression" } ] }, - "tag-script": { - "begin": "(^[\\t]+)?(?=<(?i:script)\\b(?!-))", + "function-parameters": { + "name": "meta.parameters.ts", + "begin": "\\(", "beginCaptures": { - "1": { - "name": "punctuation.whitespace.embedded.leading.html" + "0": { + "name": "punctuation.definition.parameters.begin.ts" } }, - "end": "()\\n?", + "end": "\\)", "endCaptures": { "0": { - "name": "meta.tag.metadata.script.start.html" + "name": "punctuation.definition.parameters.end.ts" + } + }, + "patterns": [ + { + "include": "#decorator" }, - "1": { - "name": "punctuation.definition.tag.begin.html" + { + "include": "#parameter-name" }, - "2": { - "name": "meta.tag.metadata.html entity.name.tag.html html-template.tag.html" + { + "include": "#variable-initializer" }, - "3": { - "name": "punctuation.definition.tag.end.html" + { + "name": "punctuation.separator.parameter.ts", + "match": "," } - }, + ] + }, + "identifiers": { "patterns": [ { - "begin": "(<)((?i:script))(>)", - "beginCaptures": { - "0": { - "name": "meta.tag.metadata.script.start.html" - }, + "name": "support.class.ts", + "match": "([_$[:alpha:]][_$[:alnum:]]*)(?=\\s*\\.\\s*prototype\\b(?!\\$))" + }, + { + "match": "(?x)(\\?\\.|\\!\\.|\\.)\\s*(?:\n ([[:upper:]][_$[:digit:][:upper:]]*) |\n ([_$[:alpha:]][_$[:alnum:]]*)\n)(?=\\s*\\.\\s*[_$[:alpha:]][_$[:alnum:]]*)", + "captures": { "1": { - "name": "punctuation.definition.tag.begin.html" + "name": "punctuation.accessor.ts" }, "2": { - "name": "entity.name.tag.html html-template.tag.html" + "name": "constant.other.object.property.ts" }, "3": { - "name": "punctuation.definition.tag.end.html" + "name": "variable.other.object.property.ts" } - }, - "end": "(?=(?=<(?=/(?=script(?=>)))))", - "name": "source.js", - "patterns": [ - { - "include": "#cdata" + } + }, + { + "match": "(?x)(?:(\\?\\.|\\!\\.|\\.)\\s*)?([_$[:alpha:]][_$[:alnum:]]*)(?=\\s*=\\s*( (async\\s+)|(function\\s*[(<])|(function\\s+)| ([_$[:alpha:]][_$[:alnum:]]*\\s*=>)| ((<([^<>]|\\<[^<>]+\\>)+>\\s*)?\\(([^()]|\\([^()]*\\))*\\)(\\s*:\\s*(.)*)?\\s*=>)))", + "captures": { + "1": { + "name": "punctuation.accessor.ts" }, - { - "include": "source.js" + "2": { + "name": "entity.name.function.ts" } - ] + } }, { - "begin": "(<)((?i:script))\\b", - "beginCaptures": { + "match": "(\\?\\.|\\!\\.|\\.)\\s*([[:upper:]][_$[:digit:][:upper:]]*)(?![_$[:alnum:]])", + "captures": { + "1": { + "name": "punctuation.accessor.ts" + }, + "2": { + "name": "constant.other.property.ts" + } + } + }, + { + "match": "(?x)(?:\n ([[:upper:]][_$[:digit:][:upper:]]*) |\n ([_$[:alpha:]][_$[:alnum:]]*)\n)(?=\\s*\\.\\s*[_$[:alpha:]][_$[:alnum:]]*)", + "captures": { + "1": { + "name": "constant.other.object.ts" + }, + "2": { + "name": "variable.other.object.ts" + } + } + }, + { + "name": "constant.character.other", + "match": "([[:upper:]][_$[:digit:][:upper:]]*)(?![_$[:alnum:]])" + }, + { + "name": "variable.other.property.ts", + "match": "[_$[:alpha:]][_$[:alnum:]]*" + } + ] + }, + "literal": { + "name": "literal.ts", + "patterns": [ + { + "include": "#numeric-literal" + }, + { + "include": "#boolean-literal" + }, + { + "include": "#null-literal" + }, + { + "include": "#undefined-literal" + }, + { + "include": "#numericConstant-literal" + }, + { + "include": "#array-literal" + }, + { + "include": "#this-literal" + } + ] + }, + "null-literal": { + "name": "constant.language.null.ts", + "match": "(?)))))", + } + } + ] + }, + "numericConstant-literal": { + "patterns": [ + { + "name": "constant.language.nan.ts", + "match": "(?))))", + "name": "meta.object-literal.key.ts", + "begin": "(?=(?:(?:\\'[^']*\\')|(?:\\\"[^\"]*\\\")|(?:\\[([^\\[\\]]|\\[[^\\[\\]]+\\])+\\]))\\s*:)", + "end": ":", + "endCaptures": { + "0": { + "name": "punctuation.separator.key-value.ts" + } + }, "patterns": [ { - "begin": "(?=(type(?=[\\s=]['\"](text/(typescript|x-typescript)|application/((x-)?typescript))[\\s\"'])|(lang(?=[\\s=]['\"]typescript[\\s\"']))))", - "end": "(?=<(?=/(?=script>)))", - "patterns": [ - { - "begin": "\\G", - "end": "(?=<(?=/script>))", - "patterns": [ - { - "begin": "\\G", - "end": "(>)", - "endCaptures": { - "1": { - "name": "punctuation.definition.tag.end.html" - } - }, - "name": "meta.tag.metadata.script.start.html", - "patterns": [ - { - "include": "#script-type-attribute" - }, - { - "include": "#tag-stuff" - } - ] - }, - { - "begin": "(?!\\G)", - "end": "(?=)", - "name": "source.ts", - "patterns": [ - { - "include": "#cdata" - }, - { - "include": "source.ts" - } - ] - } - ] - } - ] - }, - { - "begin": "(?=(type(?=[\\s=]['\"]((module)|(text/(ecmascript|x-ecmascript|javascript|x-javascript)|application/((x-)?javascript|ecmascript)))[\\s\"'])|(lang(?=[\\s=]['\"]javascript[\\s\"']))))", - "end": "(?=<(?=/(?=script>)))", - "patterns": [ - { - "begin": "\\G", - "end": "(?=<(?=/script>))", - "patterns": [ - { - "begin": "\\G", - "end": "(>)", - "endCaptures": { - "1": { - "name": "punctuation.definition.tag.end.html" - } - }, - "name": "meta.tag.metadata.script.start.html", - "patterns": [ - { - "include": "#script-type-attribute" - }, - { - "include": "#tag-stuff" - } - ] - }, - { - "begin": "(?!\\G)", - "end": "(?=)", - "name": "source.js", - "patterns": [ - { - "include": "#cdata" - }, - { - "include": "source.js" - } - ] - } - ] - } - ] - }, - { - "begin": "(?=(type(?=[\\s=]['\"](text/(coffeescript|x-coffeescript)|application/((x-)?coffeescript))[\\s\"'])|(lang(?=[\\s=]['\"]coffeescript[\\s\"']))))", - "end": "(?=<(?=/(?=script>)))", - "patterns": [ - { - "begin": "\\G", - "end": "(?=<(?=/script>))", - "patterns": [ - { - "begin": "\\G", - "end": "(>)", - "endCaptures": { - "1": { - "name": "punctuation.definition.tag.end.html" - } - }, - "name": "meta.tag.metadata.script.start.html", - "patterns": [ - { - "include": "#script-type-attribute" - }, - { - "include": "#tag-stuff" - } - ] - }, - { - "begin": "(?!\\G)", - "end": "(?=)", - "name": "source.coffee", - "patterns": [ - { - "include": "#cdata" - }, - { - "include": "source.coffee" - } - ] - } - ] - } - ] - }, - { - "begin": "(?=(type(?=[\\s=]['\"](text/(dart|x-dart)|application/((x-)?dart))[\\s\"'])|(lang(?=[\\s=]['\"]dart[\\s\"']))))", - "end": "(?=<(?=/(?=script>)))", - "patterns": [ - { - "begin": "\\G", - "end": "(?=<(?=/script>))", - "patterns": [ - { - "begin": "\\G", - "end": "(>)", - "endCaptures": { - "1": { - "name": "punctuation.definition.tag.end.html" - } - }, - "name": "meta.tag.metadata.script.start.html", - "patterns": [ - { - "include": "#script-type-attribute" - }, - { - "include": "#tag-stuff" - } - ] - }, - { - "begin": "(?!\\G)", - "end": "(?=)", - "name": "source.dart", - "patterns": [ - { - "include": "#cdata" - }, - { - "include": "source.dart" - } - ] - } - ] - } - ] + "include": "#ts-string" }, { - "include": "#tag-stuff" + "include": "#array-literal" } ] + }, + { + "include": "#angular-expression" } ] - } - ] - }, - "tag-style": { - "begin": "(^[\\t]+)?(?=<(?i:style)\\b(?!-))", - "beginCaptures": { - "1": { - "name": "punctuation.whitespace.embedded.leading.html" - } - }, - "end": "()\\n?", - "endCaptures": { - "0": { - "name": "meta.tag.metadata.style.start.html" - }, - "1": { - "name": "punctuation.definition.tag.begin.html" }, - "2": { - "name": "meta.tag.metadata.html entity.name.tag.html html-template.tag.html" - }, - "3": { - "name": "punctuation.definition.tag.end.html" - } - }, - "patterns": [ { - "begin": "(<)((?i:style))(>)", + "name": "meta.object.member.ts", + "begin": "(?x)(?:([_$[:alpha:]][_$[:alnum:]]*)\\s*(:)(?=\\s*( (async\\s+)|(function\\s*[(<])|(function\\s+)| ([_$[:alpha:]][_$[:alnum:]]*\\s*=>)| ((<([^<>]|\\<[^<>]+\\>)+>\\s*)?\\(([^()]|\\([^()]*\\))*\\)(\\s*:\\s*(.)*)?\\s*=>))))", "beginCaptures": { "0": { - "name": "meta.tag.metadata.style.start.html" + "name": "meta.object-literal.key.ts" }, "1": { - "name": "punctuation.definition.tag.begin.html" + "name": "entity.name.function.ts" }, "2": { - "name": "entity.name.tag.html" - }, - "3": { - "name": "punctuation.definition.tag.end.html" + "name": "punctuation.separator.key-value.ts" } }, - "end": "(?=(?=<(?=/(?=style(?=>)))))", - "name": "source.css", + "end": "(?=,|\\})", "patterns": [ { - "include": "#cdata" - }, - { - "include": "source.css" + "include": "#angular-expression" } ] }, { - "begin": "(<)((?i:style))\\b", + "name": "meta.object.member.ts", + "begin": "(?:[_$[:alpha:]][_$[:alnum:]]*)\\s*(:)", "beginCaptures": { "0": { - "name": "meta.tag.metadata.style.start.html" + "name": "meta.object-literal.key.ts" }, "1": { - "name": "punctuation.definition.tag.begin.html" - }, - "2": { - "name": "entity.name.tag.html" + "name": "punctuation.separator.key-value.ts" } }, - "end": "(?=(?=<(?=/(?=style(?=>)))))", + "end": "(?=,|\\})", "patterns": [ { - "begin": "\\G", - "end": "(?=<(?=/(?=style(?=>))))", - "patterns": [ - { - "begin": "(?=(type(?=[\\s=]['\"](text/css[\\s\"'>]))|(lang(?=[\\s=]['\"]css[\\s\"'>]))))", - "end": "(?=<(?=/(?=style>)))", - "patterns": [ - { - "begin": "\\G", - "end": "(?=<(?=/style>))", - "patterns": [ - { - "begin": "\\G", - "end": "(>)", - "endCaptures": { - "1": { - "name": "punctuation.definition.tag.end.html" - } - }, - "name": "meta.tag.metadata.style.start.html", - "patterns": [ - { - "include": "#style-type-attribute" - }, - { - "include": "#tag-stuff" - } - ] - }, - { - "begin": "(?!\\G)", - "end": "(?=)", - "name": "source.css", - "patterns": [ - { - "include": "#cdata" - }, - { - "include": "source.css" - } - ] - } - ] - } - ] - }, - { - "begin": "(?=(type(?=[\\s=]['\"](text/less[\\s\"'>]))|(lang(?=[\\s=]['\"]less[\\s\"'>]))))", - "end": "(?=<(?=/(?=style>)))", - "patterns": [ - { - "begin": "\\G", - "end": "(?=<(?=/style>))", - "patterns": [ - { - "begin": "\\G", - "end": "(>)", - "endCaptures": { - "1": { - "name": "punctuation.definition.tag.end.html" - } - }, - "name": "meta.tag.metadata.style.start.html", - "patterns": [ - { - "include": "#style-type-attribute" - }, - { - "include": "#tag-stuff" - } - ] - }, - { - "begin": "(?!\\G)", - "end": "(?=)", - "name": "source.css.less", - "patterns": [ - { - "include": "#cdata" - }, - { - "include": "source.css.less" - } - ] - } - ] - } - ] - }, - { - "begin": "(?=(type(?=[\\s=]['\"](text/postcss[\\s\"'>]))|(lang(?=[\\s=]['\"]postcss[\\s\"'>]))))", - "end": "(?=<(?=/(?=style>)))", - "patterns": [ - { - "begin": "\\G", - "end": "(?=<(?=/style>))", - "patterns": [ - { - "begin": "\\G", - "end": "(>)", - "endCaptures": { - "1": { - "name": "punctuation.definition.tag.end.html" - } - }, - "name": "meta.tag.metadata.style.start.html", - "patterns": [ - { - "include": "#style-type-attribute" - }, - { - "include": "#tag-stuff" - } - ] - }, - { - "begin": "(?!\\G)", - "end": "(?=)", - "name": "source.postcss", - "patterns": [ - { - "include": "#cdata" - }, - { - "include": "source.postcss" - } - ] - } - ] - } - ] - }, - { - "begin": "(?=(type(?=[\\s=]['\"](text/sass[\\s\"'>]))|(lang(?=[\\s=]['\"]sass[\\s\"'>]))))", - "end": "(?=<(?=/(?=style>)))", - "patterns": [ - { - "begin": "\\G", - "end": "(?=<(?=/style>))", - "patterns": [ - { - "begin": "\\G", - "end": "(>)", - "endCaptures": { - "1": { - "name": "punctuation.definition.tag.end.html" - } - }, - "name": "meta.tag.metadata.style.start.html", - "patterns": [ - { - "include": "#style-type-attribute" - }, - { - "include": "#tag-stuff" - } - ] - }, - { - "begin": "(?!\\G)", - "end": "(?=)", - "name": "source.sass", - "patterns": [ - { - "include": "#cdata" - }, - { - "include": "source.sass" - } - ] - } - ] - } - ] - }, - { - "begin": "(?=(type(?=[\\s=]['\"](text/scss[\\s\"'>]))|(lang(?=[\\s=]['\"]scss[\\s\"'>]))))", - "end": "(?=<(?=/(?=style>)))", - "patterns": [ - { - "begin": "\\G", - "end": "(?=<(?=/style>))", - "patterns": [ - { - "begin": "\\G", - "end": "(>)", - "endCaptures": { - "1": { - "name": "punctuation.definition.tag.end.html" - } - }, - "name": "meta.tag.metadata.style.start.html", - "patterns": [ - { - "include": "#style-type-attribute" - }, - { - "include": "#tag-stuff" - } - ] - }, - { - "begin": "(?!\\G)", - "end": "(?=)", - "name": "source.css.scss", - "patterns": [ - { - "include": "#cdata" - }, - { - "include": "source.css.scss" - } - ] - } - ] - } - ] - }, - { - "begin": "(?=(type(?=[\\s=]['\"](text/styl(us)?[\\s\"'>]))|(lang(?=[\\s=]['\"]styl(us)?[\\s\"'>]))))", - "end": "(?=<(?=/(?=style>)))", - "patterns": [ - { - "begin": "\\G", - "end": "(?=<(?=/style>))", - "patterns": [ - { - "begin": "\\G", - "end": "(>)", - "endCaptures": { - "1": { - "name": "punctuation.definition.tag.end.html" - } - }, - "name": "meta.tag.metadata.style.start.html", - "patterns": [ - { - "include": "#style-type-attribute" - }, - { - "include": "#tag-stuff" - } - ] - }, - { - "begin": "(?!\\G)", - "end": "(?=)", - "name": "source.stylus", - "patterns": [ - { - "include": "#cdata" - }, - { - "include": "source.stylus" - } - ] - } - ] - } - ] - }, - { - "include": "#tag-stuff" - } - ] + "include": "#angular-expression" + } + ] + }, + { + "name": "meta.object.member.ts", + "match": "([_$[:alpha:]][_$[:alnum:]]*)\\s*(?=,|\\}|$)", + "captures": { + "1": { + "name": "variable.other.readwrite.ts" + } + } + }, + { + "include": "#punctuation-comma" + } + ] + }, + "operator-navigator": { + "match": "\\?\\.|\\!\\.|\\.|\\,|\\;|\\?|\\!|\\:", + "name": "keyword.operator.punctuation html-template.ng.expression.operator.navigator" + }, + "parameter-name": { + "patterns": [ + { + "match": "(?x)(?:\\s*\\b(readonly)\\s+)?(?:\\s*\\b(public|private|protected)\\s+)?(\\.\\.\\.)?\\s*(?) | ((<([^<>]|\\<[^<>]+\\>)+>\\s*)?\\(([^()]|\\([^()]*\\))*\\)(\\s*:\\s*(.)*)?\\s*=>)) ) | (:\\s*( (<) | ([(]\\s*( ([)]) | (\\.\\.\\.) | ([_$[:alnum:]]+\\s*( ([:,?=])| ([)]\\s*=>) )) ))) ))", + "captures": { + "1": { + "name": "storage.modifier.ts" + }, + "2": { + "name": "storage.modifier.ts" + }, + "3": { + "name": "keyword.operator.rest.ts" + }, + "4": { + "name": "entity.name.function.ts" + }, + "5": { + "name": "keyword.operator.optional.ts" + } + } + }, + { + "match": "(?:\\s*\\b(readonly)\\s+)?(?:\\s*\\b(public|private|protected)\\s+)?(\\.\\.\\.)?\\s*(?])|(?<=[\\}>\\]\\)]|[_$[:alpha:]])\\s*(?=\\{)", + "patterns": [ + { + "include": "#type" + } + ] + }, + "type-builtin-literals": { + "name": "support.type.builtin.ts", + "match": "(?)\\s*(?=\\()", + "end": "(?<=\\))", + "patterns": [ + { + "include": "#function-parameters" + } + ] + }, + { + "name": "meta.type.function.ts", + "begin": "(?x)( (?= [(]\\s*( ([)]) | (\\.\\.\\.) | ([_$[:alnum:]]+\\s*( ([:,?=])| ([)]\\s*=>) )) ) ) )", + "end": "(?<=\\))", + "patterns": [ + { + "include": "#function-parameters" + } + ] + } + ] + }, + "type-name": { + "patterns": [ + { + "match": "([_$[:alpha:]][_$[:alnum:]]*)\\s*(\\?\\.|\\!\\.|\\.)", + "captures": { + "1": { + "name": "entity.name.type.module.ts" + }, + "2": { + "name": "punctuation.accessor.ts" + } + } + }, + { + "name": "entity.name.type.ts", + "match": "[_$[:alpha:]][_$[:alnum:]]*" + } + ] + }, + "type-object-members": { + "patterns": [ + { + "include": "#type-annotation" + }, + { + "include": "#punctuation-comma" + }, + { + "include": "#punctuation-semicolon" + } + ] + }, + "type-object": { + "name": "meta.object.type.ts", + "begin": "\\{", + "beginCaptures": { + "0": { + "name": "punctuation.definition.block.ts" + } + }, + "end": "\\}", + "endCaptures": { + "0": { + "name": "punctuation.definition.block.ts" + } + }, + "patterns": [ + { + "include": "#type-object-members" + } + ] + }, + "type-operators": { + "patterns": [ + { + "include": "#typeof-operator" + }, + { + "name": "keyword.operator.type.ts", + "match": "[&|]" + }, + { + "name": "keyword.operator.expression.keyof.ts", + "match": "(?) | ((<([^<>]|\\<[^<>]+\\>)+>\\s*)?\\(([^()]|\\([^()]*\\))*\\)(\\s*:\\s*(.)*)?\\s*=>)) ) | (:\\s*( (<) | ([(]\\s*( ([)]) | (\\.\\.\\.) | ([_$[:alnum:]]+\\s*( ([:,?=])| ([)]\\s*=>) )) ))) ))", + "beginCaptures": { + "1": { + "name": "entity.name.function.ts" + } + }, + "end": "(?=$|\"|[;,=}]|(\\s+(of|in)\\s+))", + "patterns": [ + { + "include": "#type-annotation" + }, + { + "include": "#ts-string" + } + ] + }, + { + "name": "meta.var-single-variable.expr.ts", + "begin": "([_$[:alpha:]][_$[:alnum:]]*)", + "beginCaptures": { + "1": { + "name": "variable.other.readwrite.ts" + } + }, + "end": "(?=$|\"|[;,=}]|(\\s+(of|in)\\s+))", + "patterns": [ + { + "include": "#type-annotation" + }, + { + "include": "#ts-string" } ] } ] }, - "tag-deprecated-svg-attribute-circle": { - "begin": "(<\\/?)((?i:circle))\\b(?![\\w-])(:)?([\\w\\-\\_$]+)?\\b", - "comment": "This refers only for the circle element and it's attributes when within a SVG element", + "variable-initializer": { + "begin": "(?)", + "name": "invalid.deprecated.tag", + "patterns": [ + { + "name": "meta.attribute.$1.svg", + "match": "[\\s\\n\\r\\t]*(\\b(xml:space|xml:lang|xml:base)\\b)(=)?", + "captures": { + "2": { + "name": "invalid.deprecated.entity.other.attribute-name.html invalid.deprecated.svg.$1" + }, + "3": { + "name": "punctuation.separator.key-value.html punctuation.separator.key-value.html-template.ng" + } + } + }, + { + "include": "#svg-non-string-attributes" + }, + { + "include": "#tag-stuff" + } + ] + }, + "angular-control-flow": { + "patterns": [ + { + "include": "#control-flow-expression-parenthesis" + }, + { + "include": "#control-flow-expression-no-parenthesis" + } + ] + }, + "control-flow-expression-no-parenthesis": { + "name": "control-flow.ng", + "begin": "((@)([a-zA-Z]+))\\s*(?!\\()", + "beginCaptures": { + "2": { + "name": "entity.other.html.ng.control-flow meta.ng-control-flow.prefix.html html-template.ng.control-flow.prefix" + }, + "3": { + "name": "entity.other.html.ng.control-flow meta.ng-control-flow.prefix.html html-template.ng.control-flow.keyword" + }, + "4": { + "name": "meta.brace.round.ts" + } + }, + "end": "(\\s*\\{|;)", + "endCaptures": { + "0": { + "name": "meta.brace.curly.ts" + } + }, + "patterns": [ + { + "name": "keyword.control.on.ts", + "match": "\\s*(on)\\s*" + }, + { + "name": "entity.other.html.ng.control-flow meta.ng-control-flow.prefix.html html-template.ng.control-flow.keyword", + "match": "\\s*(if)\\s*" + }, + { + "include": "#angular-expression" + }, + { + "include": "#punctuation-comma" + } + ] + }, + "control-flow-expression-parenthesis": { + "name": "meta.ng.control-flow.expression", + "begin": "((@)([a-zA-Z]+))\\s*(\\()", + "beginCaptures": { + "2": { + "name": "entity.other.html.ng.control-flow meta.ng-control-flow.prefix.html html-template.ng.control-flow.prefix" + }, + "3": { + "name": "entity.other.html.ng.control-flow meta.ng-control-flow.prefix.html html-template.ng.control-flow.keyword" + }, + "4": { + "name": "meta.brace.round.ts" + } + }, + "end": "(\\))", + "endCaptures": { + "0": { + "name": "meta.brace.round.ts" + } + }, + "patterns": [ + { + "name": "keyword.control.on.ts", + "match": "\\s*(on)\\s*" + }, + { + "include": "#angular-expression" + }, + { + "include": "#punctuation-comma" + } + ] + }, + "tag-deprecated-attribute-a": { + "begin": "(<\\/?)(a)(?!-)\\b(:)?([\\w\\-\\_$]+)?", "end": "(\\/?>)", "beginCaptures": { "0": { - "name": "meta.tag.object.svg.$2.start.html" + "name": "meta.tag.inline.a.start.html" }, "1": { "name": "punctuation.definition.tag.begin.html" }, "2": { - "name": "entity.name.tag.html html-template.tag.svg" + "name": "entity.name.tag.html html-template.tag.html" }, "3": { "name": "entity.name.tag.html html-template.ng.tag.colon" @@ -4577,10 +4576,9 @@ "name": "entity.name.tag.html html-template.ng.tag.suffix" } }, - "name": "meta.element.object.svg.html", "endCaptures": { "0": { - "name": "meta.tag.object.svg.$2.end.html" + "name": "meta.tag.inline.a.end.html" }, "1": { "name": "punctuation.definition.tag.end.html" @@ -4588,38 +4586,34 @@ }, "patterns": [ { - "name": "meta.attribute.$1.svg", - "match": "[\\s\\n\\r\\t]*(\\b(requiredFeatures|xml:space|xml:lang|xml:base)\\b)(=)?", + "name": "meta.attribute.$1.html", + "match": "[\\s\\n\\r\\t]*(\\b(charset|coords|rev|shape)\\b)(=)?", "captures": { "2": { - "name": "invalid.deprecated.entity.other.attribute-name.html invalid.deprecated.circle.$1" + "name": "invalid.deprecated.entity.other.attribute-name.html invalid.deprecated.a.$1" }, "3": { "name": "punctuation.separator.key-value.html punctuation.separator.key-value.html-template.ng" } } }, - { - "include": "#svg-non-string-attributes" - }, { "include": "#tag-stuff" } ] }, - "tag-deprecated-svg-attribute-ellipse": { - "begin": "(<\\/?)((?i:ellipse))\\b(?![\\w-])(:)?([\\w\\-\\_$]+)?\\b", - "comment": "This refers only for the ellipse element and it's attributes when within a SVG element", + "tag-deprecated-attribute-area": { + "begin": "(<\\/?)(area)(?!-)\\b(:)?([\\w\\-\\_$]+)?", "end": "(\\/?>)", "beginCaptures": { "0": { - "name": "meta.tag.object.svg.$2.start.html" + "name": "meta.tag.inline.area.void.html" }, "1": { "name": "punctuation.definition.tag.begin.html" }, "2": { - "name": "entity.name.tag.html html-template.tag.svg" + "name": "entity.name.tag.html html-template.tag.html" }, "3": { "name": "entity.name.tag.html html-template.ng.tag.colon" @@ -4628,10 +4622,9 @@ "name": "entity.name.tag.html html-template.ng.tag.suffix" } }, - "name": "meta.element.object.svg.html", "endCaptures": { "0": { - "name": "meta.tag.object.svg.$2.end.html" + "name": "meta.tag.inline.area.void.html" }, "1": { "name": "punctuation.definition.tag.end.html" @@ -4639,38 +4632,34 @@ }, "patterns": [ { - "name": "meta.attribute.$1.svg", - "match": "[\\s\\n\\r\\t]*(\\b(requiredFeatures|xml:space|xml:lang|xml:base)\\b)(=)?", + "name": "meta.attribute.$1.html", + "match": "[\\s\\n\\r\\t]*(\\b(nohref)\\b)(=)?", "captures": { "2": { - "name": "invalid.deprecated.entity.other.attribute-name.html invalid.deprecated.ellipse.$1" + "name": "invalid.deprecated.entity.other.attribute-name.html invalid.deprecated.area.$1" }, "3": { "name": "punctuation.separator.key-value.html punctuation.separator.key-value.html-template.ng" } } }, - { - "include": "#svg-non-string-attributes" - }, { "include": "#tag-stuff" } ] }, - "tag-deprecated-svg-attribute-feImage": { - "begin": "(<\\/?)((?i:feImage))\\b(?![\\w-])(:)?([\\w\\-\\_$]+)?\\b", - "comment": "This refers only for the feImage element and it's attributes when within a SVG element", + "tag-deprecated-attribute-br": { + "begin": "(<\\/?)(br)(?!-)\\b(:)?([\\w\\-\\_$]+)?", "end": "(\\/?>)", "beginCaptures": { "0": { - "name": "meta.tag.object.svg.$2.start.html" + "name": "meta.tag.inline.br.void.html" }, "1": { "name": "punctuation.definition.tag.begin.html" }, "2": { - "name": "entity.name.tag.html html-template.tag.svg" + "name": "entity.name.tag.html html-template.tag.html" }, "3": { "name": "entity.name.tag.html html-template.ng.tag.colon" @@ -4679,10 +4668,9 @@ "name": "entity.name.tag.html html-template.ng.tag.suffix" } }, - "name": "meta.element.object.svg.html", "endCaptures": { "0": { - "name": "meta.tag.object.svg.$2.end.html" + "name": "meta.tag.inline.br.void.html" }, "1": { "name": "punctuation.definition.tag.end.html" @@ -4690,38 +4678,34 @@ }, "patterns": [ { - "name": "meta.attribute.$1.svg", - "match": "[\\s\\n\\r\\t]*(\\b(xlink:arcrole|xlink:href|xlink:title|xlink:type|xml:space|xml:lang|xml:base)\\b)(=)?", + "name": "meta.attribute.$1.html", + "match": "[\\s\\n\\r\\t]*(\\b(clear)\\b)(=)?", "captures": { "2": { - "name": "invalid.deprecated.entity.other.attribute-name.html invalid.deprecated.feImage.$1" + "name": "invalid.deprecated.entity.other.attribute-name.html invalid.deprecated.br.$1" }, "3": { "name": "punctuation.separator.key-value.html punctuation.separator.key-value.html-template.ng" } } }, - { - "include": "#svg-non-string-attributes" - }, { "include": "#tag-stuff" } ] }, - "tag-deprecated-svg-attribute-foreignObject": { - "begin": "(<\\/?)((?i:foreignObject))\\b(?![\\w-])(:)?([\\w\\-\\_$]+)?\\b", - "comment": "This refers only for the foreignObject element and it's attributes when within a SVG element", + "tag-deprecated-attribute-body": { + "begin": "(<\\/?)(body)(?!-)\\b(:)?([\\w\\-\\_$]+)?", "end": "(\\/?>)", "beginCaptures": { "0": { - "name": "meta.tag.object.svg.$2.start.html" + "name": "meta.tag.structure.body.start.html" }, "1": { "name": "punctuation.definition.tag.begin.html" }, "2": { - "name": "entity.name.tag.html html-template.tag.svg" + "name": "entity.name.tag.html html-template.tag.html" }, "3": { "name": "entity.name.tag.html html-template.ng.tag.colon" @@ -4730,10 +4714,9 @@ "name": "entity.name.tag.html html-template.ng.tag.suffix" } }, - "name": "meta.element.object.svg.html", "endCaptures": { "0": { - "name": "meta.tag.object.svg.$2.end.html" + "name": "meta.tag.structure.body.end.html" }, "1": { "name": "punctuation.definition.tag.end.html" @@ -4741,38 +4724,34 @@ }, "patterns": [ { - "name": "meta.attribute.$1.svg", - "match": "[\\s\\n\\r\\t]*(\\b(clip|requiredFeatures|xml:space|xml:lang|xml:base)\\b)(=)?", + "name": "meta.attribute.$1.html", + "match": "[\\s\\n\\r\\t]*(\\b(alink|background|bgcolor|link|vlink)\\b)(=)?", "captures": { "2": { - "name": "invalid.deprecated.entity.other.attribute-name.html invalid.deprecated.foreignObject.$1" + "name": "invalid.deprecated.entity.other.attribute-name.html invalid.deprecated.body.$1" }, "3": { "name": "punctuation.separator.key-value.html punctuation.separator.key-value.html-template.ng" } } }, - { - "include": "#svg-non-string-attributes" - }, { "include": "#tag-stuff" } ] }, - "tag-deprecated-svg-attribute-image": { - "begin": "(<\\/?)((?i:image))\\b(?![\\w-])(:)?([\\w\\-\\_$]+)?\\b", - "comment": "This refers only for the image element and it's attributes when within a SVG element", + "tag-deprecated-attribute-caption": { + "begin": "(<\\/?)(caption)(?!-)\\b(:)?([\\w\\-\\_$]+)?", "end": "(\\/?>)", "beginCaptures": { "0": { - "name": "meta.tag.object.svg.$2.start.html" + "name": "meta.tag.structure.caption.start.html" }, "1": { "name": "punctuation.definition.tag.begin.html" }, "2": { - "name": "entity.name.tag.html html-template.tag.svg" + "name": "entity.name.tag.html html-template.tag.html" }, "3": { "name": "entity.name.tag.html html-template.ng.tag.colon" @@ -4781,10 +4760,9 @@ "name": "entity.name.tag.html html-template.ng.tag.suffix" } }, - "name": "meta.element.object.svg.html", "endCaptures": { "0": { - "name": "meta.tag.object.svg.$2.end.html" + "name": "meta.tag.structure.caption.end.html" }, "1": { "name": "punctuation.definition.tag.end.html" @@ -4792,38 +4770,34 @@ }, "patterns": [ { - "name": "meta.attribute.$1.svg", - "match": "[\\s\\n\\r\\t]*(\\b(clip|color-profile|requiredFeatures|xlink:arcrole|xlink:href|xlink:title|xlink:type|xml:space|xml:lang|xml:base)\\b)(=)?", + "name": "meta.attribute.$1.html", + "match": "[\\s\\n\\r\\t]*(\\b(align)\\b)(=)?", "captures": { "2": { - "name": "invalid.deprecated.entity.other.attribute-name.html invalid.deprecated.image.$1" + "name": "invalid.deprecated.entity.other.attribute-name.html invalid.deprecated.caption.$1" }, "3": { "name": "punctuation.separator.key-value.html punctuation.separator.key-value.html-template.ng" } } }, - { - "include": "#svg-non-string-attributes" - }, { "include": "#tag-stuff" } ] }, - "tag-deprecated-svg-attribute-line": { - "begin": "(<\\/?)((?i:line))\\b(?![\\w-])(:)?([\\w\\-\\_$]+)?\\b", - "comment": "This refers only for the line element and it's attributes when within a SVG element", + "tag-deprecated-attribute-col": { + "begin": "(<\\/?)(col)(?!-)\\b(:)?([\\w\\-\\_$]+)?", "end": "(\\/?>)", "beginCaptures": { "0": { - "name": "meta.tag.object.svg.$2.start.html" + "name": "meta.tag.structure.col.void.html" }, "1": { "name": "punctuation.definition.tag.begin.html" }, "2": { - "name": "entity.name.tag.html html-template.tag.svg" + "name": "entity.name.tag.html html-template.tag.html" }, "3": { "name": "entity.name.tag.html html-template.ng.tag.colon" @@ -4832,10 +4806,9 @@ "name": "entity.name.tag.html html-template.ng.tag.suffix" } }, - "name": "meta.element.object.svg.html", "endCaptures": { "0": { - "name": "meta.tag.object.svg.$2.end.html" + "name": "meta.tag.structure.col.void.html" }, "1": { "name": "punctuation.definition.tag.end.html" @@ -4843,38 +4816,34 @@ }, "patterns": [ { - "name": "meta.attribute.$1.svg", - "match": "[\\s\\n\\r\\t]*(\\b(requiredFeatures|xml:space|xml:lang|xml:base)\\b)(=)?", + "name": "meta.attribute.$1.html", + "match": "[\\s\\n\\r\\t]*(\\b(char|charoff|valign|width)\\b)(=)?", "captures": { "2": { - "name": "invalid.deprecated.entity.other.attribute-name.html invalid.deprecated.line.$1" + "name": "invalid.deprecated.entity.other.attribute-name.html invalid.deprecated.col.$1" }, "3": { "name": "punctuation.separator.key-value.html punctuation.separator.key-value.html-template.ng" } } }, - { - "include": "#svg-non-string-attributes" - }, { "include": "#tag-stuff" } ] }, - "tag-deprecated-svg-attribute-path": { - "begin": "(<\\/?)((?i:path))\\b(?![\\w-])(:)?([\\w\\-\\_$]+)?\\b", - "comment": "This refers only for the path element and it's attributes when within a SVG element", + "tag-deprecated-attribute-colgroup": { + "begin": "(<\\/?)(colgroup)(?!-)\\b(:)?([\\w\\-\\_$]+)?", "end": "(\\/?>)", "beginCaptures": { "0": { - "name": "meta.tag.object.svg.$2.start.html" + "name": "meta.tag.structure.colgroup.start.html" }, "1": { "name": "punctuation.definition.tag.begin.html" }, "2": { - "name": "entity.name.tag.html html-template.tag.svg" + "name": "entity.name.tag.html html-template.tag.html" }, "3": { "name": "entity.name.tag.html html-template.ng.tag.colon" @@ -4883,10 +4852,9 @@ "name": "entity.name.tag.html html-template.ng.tag.suffix" } }, - "name": "meta.element.object.svg.html", "endCaptures": { "0": { - "name": "meta.tag.object.svg.$2.end.html" + "name": "meta.tag.structure.colgroup.end.html" }, "1": { "name": "punctuation.definition.tag.end.html" @@ -4894,38 +4862,34 @@ }, "patterns": [ { - "name": "meta.attribute.$1.svg", - "match": "[\\s\\n\\r\\t]*(\\b(requiredFeatures|xml:space|xml:lang|xml:base)\\b)(=)?", + "name": "meta.attribute.$1.html", + "match": "[\\s\\n\\r\\t]*(\\b(align|char|charoff|valign|width)\\b)(=)?", "captures": { "2": { - "name": "invalid.deprecated.entity.other.attribute-name.html invalid.deprecated.path.$1" + "name": "invalid.deprecated.entity.other.attribute-name.html invalid.deprecated.colgroup.$1" }, "3": { "name": "punctuation.separator.key-value.html punctuation.separator.key-value.html-template.ng" } } }, - { - "include": "#svg-non-string-attributes" - }, { "include": "#tag-stuff" } ] }, - "tag-deprecated-svg-attribute-polygon": { - "begin": "(<\\/?)((?i:polygon))\\b(?![\\w-])(:)?([\\w\\-\\_$]+)?\\b", - "comment": "This refers only for the polygon element and it's attributes when within a SVG element", + "tag-deprecated-attribute-div": { + "begin": "(<\\/?)(div)(?!-)\\b(:)?([\\w\\-\\_$]+)?", "end": "(\\/?>)", "beginCaptures": { "0": { - "name": "meta.tag.object.svg.$2.start.html" + "name": "meta.tag.structure.div.start.html" }, "1": { "name": "punctuation.definition.tag.begin.html" }, "2": { - "name": "entity.name.tag.html html-template.tag.svg" + "name": "entity.name.tag.html html-template.tag.html" }, "3": { "name": "entity.name.tag.html html-template.ng.tag.colon" @@ -4934,10 +4898,9 @@ "name": "entity.name.tag.html html-template.ng.tag.suffix" } }, - "name": "meta.element.object.svg.html", "endCaptures": { "0": { - "name": "meta.tag.object.svg.$2.end.html" + "name": "meta.tag.structure.div.end.html" }, "1": { "name": "punctuation.definition.tag.end.html" @@ -4945,38 +4908,34 @@ }, "patterns": [ { - "name": "meta.attribute.$1.svg", - "match": "[\\s\\n\\r\\t]*(\\b(requiredFeatures|xml:space|xml:lang|xml:base)\\b)(=)?", + "name": "meta.attribute.$1.html", + "match": "[\\s\\n\\r\\t]*(\\b(align)\\b)(=)?", "captures": { "2": { - "name": "invalid.deprecated.entity.other.attribute-name.html invalid.deprecated.polygon.$1" + "name": "invalid.deprecated.entity.other.attribute-name.html invalid.deprecated.div.$1" }, "3": { "name": "punctuation.separator.key-value.html punctuation.separator.key-value.html-template.ng" } } }, - { - "include": "#svg-non-string-attributes" - }, { "include": "#tag-stuff" } ] }, - "tag-deprecated-svg-attribute-polyline": { - "begin": "(<\\/?)((?i:polyline))\\b(?![\\w-])(:)?([\\w\\-\\_$]+)?\\b", - "comment": "This refers only for the polyline element and it's attributes when within a SVG element", + "tag-deprecated-attribute-dl": { + "begin": "(<\\/?)(dl)(?!-)\\b(:)?([\\w\\-\\_$]+)?", "end": "(\\/?>)", "beginCaptures": { "0": { - "name": "meta.tag.object.svg.$2.start.html" + "name": "\tmeta.tag.structure.dl.start.html" }, "1": { "name": "punctuation.definition.tag.begin.html" }, "2": { - "name": "entity.name.tag.html html-template.tag.svg" + "name": "entity.name.tag.html html-template.tag.html" }, "3": { "name": "entity.name.tag.html html-template.ng.tag.colon" @@ -4985,10 +4944,9 @@ "name": "entity.name.tag.html html-template.ng.tag.suffix" } }, - "name": "meta.element.object.svg.html", "endCaptures": { "0": { - "name": "meta.tag.object.svg.$2.end.html" + "name": "\tmeta.tag.structure.dl.end.html" }, "1": { "name": "punctuation.definition.tag.end.html" @@ -4996,38 +4954,34 @@ }, "patterns": [ { - "name": "meta.attribute.$1.svg", - "match": "[\\s\\n\\r\\t]*(\\b(requiredFeatures|xml:space|xml:lang|xml:base)\\b)(=)?", + "name": "meta.attribute.$1.html", + "match": "[\\s\\n\\r\\t]*(\\b(compact)\\b)(=)?", "captures": { "2": { - "name": "invalid.deprecated.entity.other.attribute-name.html invalid.deprecated.polyline.$1" + "name": "invalid.deprecated.entity.other.attribute-name.html invalid.deprecated.dl.$1" }, "3": { "name": "punctuation.separator.key-value.html punctuation.separator.key-value.html-template.ng" } } }, - { - "include": "#svg-non-string-attributes" - }, { "include": "#tag-stuff" } ] }, - "tag-deprecated-svg-attribute-rect": { - "begin": "(<\\/?)((?i:rect))\\b(?![\\w-])(:)?([\\w\\-\\_$]+)?\\b", - "comment": "This refers only for the rect element and it's attributes when within a SVG element", + "tag-deprecated-attribute-h1": { + "begin": "(<\\/?)(h1)(?!-)\\b(:)?([\\w\\-\\_$]+)?", "end": "(\\/?>)", "beginCaptures": { "0": { - "name": "meta.tag.object.svg.$2.start.html" + "name": "meta.tag.structure.h1.start.html" }, "1": { "name": "punctuation.definition.tag.begin.html" }, "2": { - "name": "entity.name.tag.html html-template.tag.svg" + "name": "entity.name.tag.html html-template.tag.html" }, "3": { "name": "entity.name.tag.html html-template.ng.tag.colon" @@ -5036,10 +4990,9 @@ "name": "entity.name.tag.html html-template.ng.tag.suffix" } }, - "name": "meta.element.object.svg.html", "endCaptures": { "0": { - "name": "meta.tag.object.svg.$2.end.html" + "name": "meta.tag.structure.h1.end.html" }, "1": { "name": "punctuation.definition.tag.end.html" @@ -5047,38 +5000,34 @@ }, "patterns": [ { - "name": "meta.attribute.$1.svg", - "match": "[\\s\\n\\r\\t]*(\\b(requiredFeatures|xml:space|xml:lang|xml:base)\\b)(=)?", + "name": "meta.attribute.$1.html", + "match": "[\\s\\n\\r\\t]*(\\b(align)\\b)(=)?", "captures": { "2": { - "name": "invalid.deprecated.entity.other.attribute-name.html invalid.deprecated.rect.$1" + "name": "invalid.deprecated.entity.other.attribute-name.html invalid.deprecated.h1.$1" }, "3": { "name": "punctuation.separator.key-value.html punctuation.separator.key-value.html-template.ng" } } }, - { - "include": "#svg-non-string-attributes" - }, { "include": "#tag-stuff" } ] }, - "tag-deprecated-svg-attribute-symbol": { - "begin": "(<\\/?)((?i:symbol))\\b(?![\\w-])(:)?([\\w\\-\\_$]+)?\\b", - "comment": "This refers only for the symbol element and it's attributes when within a SVG element", + "tag-deprecated-attribute-h2": { + "begin": "(<\\/?)(h2)(?!-)\\b(:)?([\\w\\-\\_$]+)?", "end": "(\\/?>)", "beginCaptures": { "0": { - "name": "meta.tag.object.svg.$2.start.html" + "name": "meta.tag.structure.h2.start.html" }, "1": { "name": "punctuation.definition.tag.begin.html" }, "2": { - "name": "entity.name.tag.html html-template.tag.svg" + "name": "entity.name.tag.html html-template.tag.html" }, "3": { "name": "entity.name.tag.html html-template.ng.tag.colon" @@ -5087,10 +5036,9 @@ "name": "entity.name.tag.html html-template.ng.tag.suffix" } }, - "name": "meta.element.object.svg.html", "endCaptures": { "0": { - "name": "meta.tag.object.svg.$2.end.html" + "name": "meta.tag.structure.h2.end.html" }, "1": { "name": "punctuation.definition.tag.end.html" @@ -5098,38 +5046,34 @@ }, "patterns": [ { - "name": "meta.attribute.$1.svg", - "match": "[\\s\\n\\r\\t]*(\\b(enable-background|clip|xml:space|xml:lang|xml:base)\\b)(=)?", + "name": "meta.attribute.$1.html", + "match": "[\\s\\n\\r\\t]*(\\b(align)\\b)(=)?", "captures": { "2": { - "name": "invalid.deprecated.entity.other.attribute-name.html invalid.deprecated.symbol.$1" + "name": "invalid.deprecated.entity.other.attribute-name.html invalid.deprecated.h2.$1" }, "3": { "name": "punctuation.separator.key-value.html punctuation.separator.key-value.html-template.ng" } } }, - { - "include": "#svg-non-string-attributes" - }, { "include": "#tag-stuff" } ] - }, - "tag-deprecated-svg-attribute-use": { - "begin": "(<\\/?)((?i:use))\\b(?![\\w-])(:)?([\\w\\-\\_$]+)?\\b", - "comment": "This refers only for the use element and it's attributes when within a SVG element", + }, + "tag-deprecated-attribute-h3": { + "begin": "(<\\/?)(h3)(?!-)\\b(:)?([\\w\\-\\_$]+)?", "end": "(\\/?>)", "beginCaptures": { "0": { - "name": "meta.tag.object.svg.$2.start.html" + "name": "meta.tag.structure.h3.start.html" }, "1": { "name": "punctuation.definition.tag.begin.html" }, "2": { - "name": "entity.name.tag.html html-template.tag.svg" + "name": "entity.name.tag.html html-template.tag.html" }, "3": { "name": "entity.name.tag.html html-template.ng.tag.colon" @@ -5138,10 +5082,9 @@ "name": "entity.name.tag.html html-template.ng.tag.suffix" } }, - "name": "meta.element.object.svg.html", "endCaptures": { "0": { - "name": "meta.tag.object.svg.$2.end.html" + "name": "meta.tag.structure.h3.end.html" }, "1": { "name": "punctuation.definition.tag.end.html" @@ -5149,38 +5092,34 @@ }, "patterns": [ { - "name": "meta.attribute.$1.svg", - "match": "[\\s\\n\\r\\t]*(\\b(requiredFeatures|xlink:arcrole|xlink:href|xlink:title|xlink:type|xml:space|xml:lang|xml:base)\\b)(=)?", + "name": "meta.attribute.$1.html", + "match": "[\\s\\n\\r\\t]*(\\b(align)\\b)(=)?", "captures": { "2": { - "name": "invalid.deprecated.entity.other.attribute-name.html invalid.deprecated.use.$1" + "name": "invalid.deprecated.entity.other.attribute-name.html invalid.deprecated.h3.$1" }, "3": { "name": "punctuation.separator.key-value.html punctuation.separator.key-value.html-template.ng" } } }, - { - "include": "#svg-non-string-attributes" - }, { "include": "#tag-stuff" } ] }, - "tag-deprecated-svg-attribute-view": { - "begin": "(<\\/?)((?i:view))\\b(?![\\w-])(:)?([\\w\\-\\_$]+)?\\b", - "comment": "This refers only for the view element and it's attributes when within a SVG element", + "tag-deprecated-attribute-h4": { + "begin": "(<\\/?)(h4)(?!-)\\b(:)?([\\w\\-\\_$]+)?", "end": "(\\/?>)", "beginCaptures": { "0": { - "name": "meta.tag.object.svg.$2.start.html" + "name": "meta.tag.structure.h4.start.html" }, "1": { "name": "punctuation.definition.tag.begin.html" }, "2": { - "name": "entity.name.tag.html html-template.tag.svg" + "name": "entity.name.tag.html html-template.tag.html" }, "3": { "name": "entity.name.tag.html html-template.ng.tag.colon" @@ -5189,10 +5128,9 @@ "name": "entity.name.tag.html html-template.ng.tag.suffix" } }, - "name": "meta.element.object.svg.html", "endCaptures": { "0": { - "name": "meta.tag.object.svg.$2.end.html" + "name": "meta.tag.structure.h4.end.html" }, "1": { "name": "punctuation.definition.tag.end.html" @@ -5200,38 +5138,34 @@ }, "patterns": [ { - "name": "meta.attribute.$1.svg", - "match": "[\\s\\n\\r\\t]*(\\b(zoomAndPan|viewTarget|xml:space|xml:lang|xml:base)\\b)(=)?", + "name": "meta.attribute.$1.html", + "match": "[\\s\\n\\r\\t]*(\\b(align)\\b)(=)?", "captures": { "2": { - "name": "invalid.deprecated.entity.other.attribute-name.html invalid.deprecated.view.$1" + "name": "invalid.deprecated.entity.other.attribute-name.html invalid.deprecated.h4.$1" }, "3": { "name": "punctuation.separator.key-value.html punctuation.separator.key-value.html-template.ng" } } }, - { - "include": "#svg-non-string-attributes" - }, { "include": "#tag-stuff" } ] }, - "tag-deprecated-svg-attribute-a": { - "begin": "(<\\/?)((?i:a))\\b(?![\\w-])(:)?([\\w\\-\\_$]+)?\\b", - "comment": "This refers only for the a element and it's attributes when within a SVG element", + "tag-deprecated-attribute-h5": { + "begin": "(<\\/?)(h5)(?!-)\\b(:)?([\\w\\-\\_$]+)?", "end": "(\\/?>)", "beginCaptures": { "0": { - "name": "meta.tag.inline.svg.$2.start.html" + "name": "meta.tag.structure.h5.start.html" }, "1": { "name": "punctuation.definition.tag.begin.html" }, "2": { - "name": "entity.name.tag.html html-template.tag.svg" + "name": "entity.name.tag.html html-template.tag.html" }, "3": { "name": "entity.name.tag.html html-template.ng.tag.colon" @@ -5240,10 +5174,9 @@ "name": "entity.name.tag.html html-template.ng.tag.suffix" } }, - "name": "meta.element.inline.svg.html", "endCaptures": { "0": { - "name": "meta.tag.inline.svg.$2.end.html" + "name": "meta.tag.structure.h5.end.html" }, "1": { "name": "punctuation.definition.tag.end.html" @@ -5251,38 +5184,34 @@ }, "patterns": [ { - "name": "meta.attribute.$1.svg", - "match": "[\\s\\n\\r\\t]*(\\b(enable-background|requiredFeatures|xlink:arcrole|xlink:href|xlink:title|xlink:show|xlink:type|xml:space|xml:lang|xml:base)\\b)(=)?", + "name": "meta.attribute.$1.html", + "match": "[\\s\\n\\r\\t]*(\\b(align)\\b)(=)?", "captures": { "2": { - "name": "invalid.deprecated.entity.other.attribute-name.html invalid.deprecated.a.$1.svg" + "name": "invalid.deprecated.entity.other.attribute-name.html invalid.deprecated.h5.$1" }, "3": { "name": "punctuation.separator.key-value.html punctuation.separator.key-value.html-template.ng" } } }, - { - "include": "#svg-non-string-attributes" - }, { "include": "#tag-stuff" } ] }, - "tag-deprecated-svg-attribute-animate": { - "begin": "(<\\/?)((?i:animate))\\b(?![\\w-])(:)?([\\w\\-\\_$]+)?\\b", - "comment": "This refers only for the animate element and it's attributes when within a SVG element", + "tag-deprecated-attribute-h6": { + "begin": "(<\\/?)(h6)(?!-)\\b(:)?([\\w\\-\\_$]+)?", "end": "(\\/?>)", "beginCaptures": { "0": { - "name": "meta.tag.inline.svg.$2.start.html" + "name": "meta.tag.structure.h6.start.html" }, "1": { "name": "punctuation.definition.tag.begin.html" }, "2": { - "name": "entity.name.tag.html html-template.tag.svg" + "name": "entity.name.tag.html html-template.tag.html" }, "3": { "name": "entity.name.tag.html html-template.ng.tag.colon" @@ -5293,47 +5222,42 @@ }, "endCaptures": { "0": { - "name": "meta.tag.inline.svg.$2.end.html" + "name": "meta.tag.structure.h6.end.html" }, "1": { "name": "punctuation.definition.tag.end.html" } }, - "name": "meta.element.inline.svg.html", "patterns": [ { - "name": "meta.attribute.$1.svg", - "match": "[\\s\\n\\r\\t]*(\\b(attributeType|requiredFeatures|requiredFeatures|xlink:arcrole|xlink:href|xlink:title|xlink:type|xml:space|xml:lang|xml:base)\\b)(=)?", + "name": "meta.attribute.$1.html", + "match": "[\\s\\n\\r\\t]*(\\b(align)\\b)(=)?", "captures": { "2": { - "name": "invalid.deprecated.entity.other.attribute-name.html invalid.deprecated.animate.$1" + "name": "invalid.deprecated.entity.other.attribute-name.html invalid.deprecated.h6.$1" }, "3": { "name": "punctuation.separator.key-value.html punctuation.separator.key-value.html-template.ng" } } }, - { - "include": "#svg-non-string-attributes" - }, { "include": "#tag-stuff" } ] }, - "tag-deprecated-svg-attribute-feConvolveMatrix": { - "begin": "(<\\/?)((?i:feConvolveMatrix))\\b(?![\\w-])(:)?([\\w\\-\\_$]+)?\\b", - "comment": "This refers only for the feConvolveMatrix element and it's attributes when within a SVG element", + "tag-deprecated-attribute-head": { + "begin": "(<\\/?)(head)(?!-)\\b(:)?([\\w\\-\\_$]+)?", "end": "(\\/?>)", "beginCaptures": { "0": { - "name": "meta.tag.inline.svg.$2.start.html" + "name": "meta.tag.structure.head.start.html" }, "1": { "name": "punctuation.definition.tag.begin.html" }, "2": { - "name": "entity.name.tag.html html-template.tag.svg" + "name": "entity.name.tag.html html-template.tag.html" }, "3": { "name": "entity.name.tag.html html-template.ng.tag.colon" @@ -5342,10 +5266,9 @@ "name": "entity.name.tag.html html-template.ng.tag.suffix" } }, - "name": "meta.element.inline.svg.html", "endCaptures": { "0": { - "name": "meta.tag.inline.svg.$2.end.html" + "name": "meta.tag.structure.head.end.html" }, "1": { "name": "punctuation.definition.tag.end.html" @@ -5353,38 +5276,34 @@ }, "patterns": [ { - "name": "meta.attribute.$1.svg", - "match": "[\\s\\n\\r\\t]*(\\b(kernelUnitLength|xml:space|xml:lang|xml:base)\\b)(=)?", + "name": "meta.attribute.$1.html", + "match": "[\\s\\n\\r\\t]*(\\b(profile)\\b)(=)?", "captures": { "2": { - "name": "invalid.deprecated.entity.other.attribute-name.html invalid.deprecated.feConvolveMatrix.$1" + "name": "invalid.deprecated.entity.other.attribute-name.html invalid.deprecated.head.$1" }, "3": { "name": "punctuation.separator.key-value.html punctuation.separator.key-value.html-template.ng" } } }, - { - "include": "#svg-non-string-attributes" - }, { "include": "#tag-stuff" } ] }, - "tag-deprecated-svg-attribute-mpath": { - "begin": "(<\\/?)((?i:mpath))\\b(?![\\w-])(:)?([\\w\\-\\_$]+)?\\b", - "comment": "This refers only for the mpath element and it's attributes when within a SVG element", + "tag-deprecated-attribute-hr": { + "begin": "(<\\/?)(hr)(?!-)\\b(:)?([\\w\\-\\_$]+)?", "end": "(\\/?>)", "beginCaptures": { "0": { - "name": "meta.tag.inline.svg.$2.start.html" + "name": "meta.tag.structure.hr.void.html" }, "1": { "name": "punctuation.definition.tag.begin.html" }, "2": { - "name": "entity.name.tag.html html-template.tag.svg" + "name": "entity.name.tag.html html-template.tag.html" }, "3": { "name": "entity.name.tag.html html-template.ng.tag.colon" @@ -5393,10 +5312,9 @@ "name": "entity.name.tag.html html-template.ng.tag.suffix" } }, - "name": "meta.element.inline.svg.html", "endCaptures": { "0": { - "name": "meta.tag.inline.svg.$2.end.html" + "name": "meta.tag.structure.hr.void.html" }, "1": { "name": "punctuation.definition.tag.end.html" @@ -5404,38 +5322,34 @@ }, "patterns": [ { - "name": "meta.attribute.$1.svg", - "match": "[\\s\\n\\r\\t]*(\\b(xlink:arcrole|xlink:href|xlink:title|xlink:type|xml:space|xml:lang|xml:base)\\b)(=)?", + "name": "meta.attribute.$1.html", + "match": "[\\s\\n\\r\\t]*(\\b(align|noshade|size|width)\\b)(=)?", "captures": { "2": { - "name": "invalid.deprecated.entity.other.attribute-name.html invalid.deprecated.mpath.$1" + "name": "invalid.deprecated.entity.other.attribute-name.html invalid.deprecated.hr.$1" }, "3": { "name": "punctuation.separator.key-value.html punctuation.separator.key-value.html-template.ng" } } }, - { - "include": "#svg-non-string-attributes" - }, { "include": "#tag-stuff" } ] }, - "tag-deprecated-svg-attribute-set": { - "begin": "(<\\/?)((?i:set))\\b(?![\\w-])(:)?([\\w\\-\\_$]+)?\\b", - "comment": "This refers only for the set element and it's attributes when within a SVG element", + "tag-deprecated-attribute-html": { + "begin": "(<\\/?)(html)(?!-)\\b(:)?([\\w\\-\\_$]+)?", "end": "(\\/?>)", "beginCaptures": { "0": { - "name": "meta.tag.inline.svg.$2.start.html" + "name": "meta.tag.structure.html.start.html" }, "1": { "name": "punctuation.definition.tag.begin.html" }, "2": { - "name": "entity.name.tag.html html-template.tag.svg" + "name": "entity.name.tag.html html-template.tag.html" }, "3": { "name": "entity.name.tag.html html-template.ng.tag.colon" @@ -5444,10 +5358,9 @@ "name": "entity.name.tag.html html-template.ng.tag.suffix" } }, - "name": "meta.element.inline.svg.html", "endCaptures": { "0": { - "name": "meta.tag.inline.svg.$2.end.html" + "name": "meta.tag.structure.html.end.html" }, "1": { "name": "punctuation.definition.tag.end.html" @@ -5455,38 +5368,34 @@ }, "patterns": [ { - "name": "meta.attribute.$1.svg", - "match": "[\\s\\n\\r\\t]*(\\b(attributeType|requiredFeatures|xlink:arcrole|xlink:href|xlink:title|xlink:type|xml:space|xml:lang|xml:base)\\b)(=)?", + "name": "meta.attribute.$1.html", + "match": "[\\s\\n\\r\\t]*(\\b(version)\\b)(=)?", "captures": { "2": { - "name": "invalid.deprecated.entity.other.attribute-name.html invalid.deprecated.set.$1" + "name": "invalid.deprecated.entity.other.attribute-name.html invalid.deprecated.html.$1" }, "3": { "name": "punctuation.separator.key-value.html punctuation.separator.key-value.html-template.ng" } } }, - { - "include": "#svg-non-string-attributes" - }, { "include": "#tag-stuff" } ] }, - "tag-deprecated-svg-attribute-animateMotion": { - "begin": "(<\\/?)((?i:animateMotion))\\b(?![\\w-])(:)?([\\w\\-\\_$]+)?\\b", - "comment": "This refers only for the animateMotion element and it's attributes when within a SVG element", + "tag-deprecated-attribute-input": { + "begin": "(<\\/?)(input)(?!-)\\b(:)?([\\w\\-\\_$]+)?", "end": "(\\/?>)", "beginCaptures": { "0": { - "name": "meta.tag.structure.svg.$2.start.html" + "name": "meta.tag.structure.input.void.html" }, "1": { "name": "punctuation.definition.tag.begin.html" }, "2": { - "name": "entity.name.tag.html html-template.tag.svg" + "name": "entity.name.tag.html html-template.tag.html" }, "3": { "name": "entity.name.tag.html html-template.ng.tag.colon" @@ -5495,10 +5404,9 @@ "name": "entity.name.tag.html html-template.ng.tag.suffix" } }, - "name": "meta.element.structure.svg.html", "endCaptures": { "0": { - "name": "meta.tag.structure.svg.$2.end.html" + "name": "meta.tag.structure.input.void.html" }, "1": { "name": "punctuation.definition.tag.end.html" @@ -5506,38 +5414,34 @@ }, "patterns": [ { - "name": "meta.attribute.$1.svg", - "match": "[\\s\\n\\r\\t]*(\\b(requiredFeatures|requiredFeatures|xlink:arcrole|xlink:href|xlink:title|xlink:type|xml:space|xml:lang|xml:base)\\b)(=)?", + "name": "meta.attribute.$1.html", + "match": "[\\s\\n\\r\\t]*(\\b(align)\\b)(=)?", "captures": { "2": { - "name": "invalid.deprecated.entity.other.attribute-name.html invalid.deprecated.animateMotion.$1" + "name": "invalid.deprecated.entity.other.attribute-name.html invalid.deprecated.input.$1" }, "3": { "name": "punctuation.separator.key-value.html punctuation.separator.key-value.html-template.ng" } } }, - { - "include": "#svg-non-string-attributes" - }, { "include": "#tag-stuff" } ] }, - "tag-deprecated-svg-attribute-clipPath": { - "begin": "(<\\/?)((?i:clipPath))\\b(?![\\w-])(:)?([\\w\\-\\_$]+)?\\b", - "comment": "This refers only for the clipPath element and it's attributes when within a SVG element", + "tag-deprecated-attribute-legend": { + "begin": "(<\\/?)(legend)(?!-)\\b(:)?([\\w\\-\\_$]+)?", "end": "(\\/?>)", "beginCaptures": { "0": { - "name": "meta.tag.structure.svg.$2.start.html" + "name": "meta.tag.structure.legend.start.html" }, "1": { "name": "punctuation.definition.tag.begin.html" }, "2": { - "name": "entity.name.tag.html html-template.tag.svg" + "name": "entity.name.tag.html html-template.tag.html" }, "3": { "name": "entity.name.tag.html html-template.ng.tag.colon" @@ -5546,10 +5450,9 @@ "name": "entity.name.tag.html html-template.ng.tag.suffix" } }, - "name": "meta.element.structure.svg.html", "endCaptures": { "0": { - "name": "meta.tag.structure.svg.$2.end.html" + "name": "meta.tag.structure.legend.end.html" }, "1": { "name": "punctuation.definition.tag.end.html" @@ -5557,38 +5460,34 @@ }, "patterns": [ { - "name": "meta.attribute.$1.svg", - "match": "[\\s\\n\\r\\t]*(\\b(requiredFeatures|xml:space|xml:lang|xml:base)\\b)(=)?", + "name": "meta.attribute.$1.html", + "match": "[\\s\\n\\r\\t]*(\\b(align)\\b)(=)?", "captures": { "2": { - "name": "invalid.deprecated.entity.other.attribute-name.html invalid.deprecated.clipPath.$1" + "name": "invalid.deprecated.entity.other.attribute-name.html invalid.deprecated.legend.$1" }, "3": { "name": "punctuation.separator.key-value.html punctuation.separator.key-value.html-template.ng" } } }, - { - "include": "#svg-non-string-attributes" - }, { "include": "#tag-stuff" } ] }, - "tag-deprecated-svg-attribute-defs": { - "begin": "(<\\/?)((?i:defs))\\b(?![\\w-])(:)?([\\w\\-\\_$]+)?\\b", - "comment": "This refers only for the defs element and it's attributes when within a SVG element", + "tag-deprecated-attribute-li": { + "begin": "(<\\/?)(li)(?!-)\\b(:)?([\\w\\-\\_$]+)?", "end": "(\\/?>)", "beginCaptures": { "0": { - "name": "meta.tag.structure.svg.$2.start.html" + "name": "meta.tag.structure.li.start.html" }, "1": { "name": "punctuation.definition.tag.begin.html" }, "2": { - "name": "entity.name.tag.html html-template.tag.svg" + "name": "entity.name.tag.html html-template.tag.html" }, "3": { "name": "entity.name.tag.html html-template.ng.tag.colon" @@ -5597,10 +5496,9 @@ "name": "entity.name.tag.html html-template.ng.tag.suffix" } }, - "name": "meta.element.structure.svg.html", "endCaptures": { "0": { - "name": "meta.tag.structure.svg.$2.end.html" + "name": "meta.tag.structure.li.end.html" }, "1": { "name": "punctuation.definition.tag.end.html" @@ -5608,38 +5506,34 @@ }, "patterns": [ { - "name": "meta.attribute.$1.svg", - "match": "[\\s\\n\\r\\t]*(\\b(requiredFeatures|enable-background|xml:space|xml:lang|xml:base)\\b)(=)?", + "name": "meta.attribute.$1.html", + "match": "[\\s\\n\\r\\t]*(\\b(type)\\b)(=)?", "captures": { "2": { - "name": "invalid.deprecated.entity.other.attribute-name.html invalid.deprecated.defs.$1" + "name": "invalid.deprecated.entity.other.attribute-name.html invalid.deprecated.li.$1" }, "3": { "name": "punctuation.separator.key-value.html punctuation.separator.key-value.html-template.ng" } } }, - { - "include": "#svg-non-string-attributes" - }, { "include": "#tag-stuff" } ] }, - "tag-deprecated-svg-attribute-feDiffuseLighting": { - "begin": "(<\\/?)((?i:feDiffuseLighting))\\b(?![\\w-])(:)?([\\w\\-\\_$]+)?\\b", - "comment": "This refers only for the feDiffuseLighting element and it's attributes when within a SVG element", + "tag-deprecated-attribute-link": { + "begin": "(<\\/?)(link)(?!-)\\b(:)?([\\w\\-\\_$]+)?", "end": "(\\/?>)", "beginCaptures": { "0": { - "name": "meta.tag.structure.svg.$2.start.html" + "name": "meta.tag.metadata.link.void.html" }, "1": { "name": "punctuation.definition.tag.begin.html" }, "2": { - "name": "entity.name.tag.html html-template.tag.svg" + "name": "entity.name.tag.html html-template.tag.html" }, "3": { "name": "entity.name.tag.html html-template.ng.tag.colon" @@ -5648,10 +5542,9 @@ "name": "entity.name.tag.html html-template.ng.tag.suffix" } }, - "name": "meta.element.structure.svg.html", "endCaptures": { "0": { - "name": "meta.tag.structure.svg.$2.end.html" + "name": "meta.tag.metadata.link.void.html" }, "1": { "name": "punctuation.definition.tag.end.html" @@ -5659,11 +5552,11 @@ }, "patterns": [ { - "name": "meta.attribute.$1.svg", - "match": "[\\s\\n\\r\\t]*(\\b(kernelUnitLength|xml:space|xml:lang|xml:base)\\b)(=)?", + "name": "meta.attribute.$1.html", + "match": "[\\s\\n\\r\\t]*(\\b(charset|rev|target)\\b)(=)?", "captures": { "2": { - "name": "invalid.deprecated.entity.other.attribute-name.html invalid.deprecated.feDiffuseLighting.$1" + "name": "invalid.deprecated.entity.other.attribute-name.html invalid.deprecated.link.$1" }, "3": { "name": "punctuation.separator.key-value.html punctuation.separator.key-value.html-template.ng" @@ -5671,26 +5564,28 @@ } }, { - "include": "#svg-non-string-attributes" + "include": "#style-type-attribute" + }, + { + "include": "#link-type-attribute" }, { "include": "#tag-stuff" } ] }, - "tag-deprecated-svg-attribute-feSpecularLighting": { - "begin": "(<\\/?)((?i:feSpecularLighting))\\b(?![\\w-])(:)?([\\w\\-\\_$]+)?\\b", - "comment": "This refers only for the feSpecularLighting element and it's attributes when within a SVG element", + "tag-deprecated-attribute-menu": { + "begin": "(<\\/?)(menu)(?!-)\\b(:)?([\\w\\-\\_$]+)?", "end": "(\\/?>)", "beginCaptures": { "0": { - "name": "meta.tag.structure.svg.$2.start.html" + "name": "meta.tag.structure.menu.start.html" }, "1": { "name": "punctuation.definition.tag.begin.html" }, "2": { - "name": "entity.name.tag.html html-template.tag.svg" + "name": "entity.name.tag.html html-template.tag.html" }, "3": { "name": "entity.name.tag.html html-template.ng.tag.colon" @@ -5699,10 +5594,9 @@ "name": "entity.name.tag.html html-template.ng.tag.suffix" } }, - "name": "meta.element.structure.svg.html", "endCaptures": { "0": { - "name": "meta.tag.structure.svg.$2.end.html" + "name": "meta.tag.structure.menu.end.html" }, "1": { "name": "punctuation.definition.tag.end.html" @@ -5710,38 +5604,34 @@ }, "patterns": [ { - "name": "meta.attribute.$1.svg", - "match": "[\\s\\n\\r\\t]*(\\b(kernelUnitLength|xml:space|xml:lang|xml:base)\\b)(=)?", + "name": "meta.attribute.$1.html", + "match": "[\\s\\n\\r\\t]*(\\b(compact)\\b)(=)?", "captures": { "2": { - "name": "invalid.deprecated.entity.other.attribute-name.html invalid.deprecated.feSpecularLighting.$1" + "name": "invalid.deprecated.entity.other.attribute-name.html invalid.deprecated.menu.$1" }, "3": { "name": "punctuation.separator.key-value.html punctuation.separator.key-value.html-template.ng" } } }, - { - "include": "#svg-non-string-attributes" - }, { "include": "#tag-stuff" } ] }, - "tag-deprecated-svg-attribute-filter": { - "begin": "(<\\/?)((?i:filter))\\b(?![\\w-])(:)?([\\w\\-\\_$]+)?\\b", - "comment": "This refers only for the filter element and it's attributes when within a SVG element", + "tag-deprecated-attribute-ol": { + "begin": "(<\\/?)(ol)(?!-)\\b(:)?([\\w\\-\\_$]+)?", "end": "(\\/?>)", "beginCaptures": { "0": { - "name": "meta.tag.structure.svg.$2.start.html" + "name": "meta.tag.structure.ol.start.html" }, "1": { "name": "punctuation.definition.tag.begin.html" }, "2": { - "name": "entity.name.tag.html html-template.tag.svg" + "name": "entity.name.tag.html html-template.tag.html" }, "3": { "name": "entity.name.tag.html html-template.ng.tag.colon" @@ -5750,10 +5640,9 @@ "name": "entity.name.tag.html html-template.ng.tag.suffix" } }, - "name": "meta.element.structure.svg.html", "endCaptures": { "0": { - "name": "meta.tag.structure.svg.$2.end.html" + "name": "meta.tag.structure.ol.end.html" }, "1": { "name": "punctuation.definition.tag.end.html" @@ -5761,38 +5650,34 @@ }, "patterns": [ { - "name": "meta.attribute.$1.svg", - "match": "[\\s\\n\\r\\t]*(\\b(filterRes|xlink:arcrole|xlink:href|xlink:title|xlink:type|xml:space|xml:lang|xml:base)\\b)(=)?", + "name": "meta.attribute.$1.html", + "match": "[\\s\\n\\r\\t]*(\\b(compact|type)\\b)(=)?", "captures": { "2": { - "name": "invalid.deprecated.entity.other.attribute-name.html invalid.deprecated.filter.$1" + "name": "invalid.deprecated.entity.other.attribute-name.html invalid.deprecated.ol.$1" }, "3": { "name": "punctuation.separator.key-value.html punctuation.separator.key-value.html-template.ng" } } }, - { - "include": "#svg-non-string-attributes" - }, { "include": "#tag-stuff" } ] }, - "tag-deprecated-svg-attribute-g": { - "begin": "(<\\/?)((?i:g))\\b(?![\\w-])(:)?([\\w\\-\\_$]+)?\\b", - "comment": "This refers only for the g element and it's attributes when within a SVG element", + "tag-deprecated-attribute-p": { + "begin": "(<\\/?)(p)(?!-)\\b(:)?([\\w\\-\\_$]+)?", "end": "(\\/?>)", "beginCaptures": { "0": { - "name": "meta.tag.structure.svg.$2.start.html" + "name": "meta.tag.structure.p.start.html" }, "1": { "name": "punctuation.definition.tag.begin.html" }, "2": { - "name": "entity.name.tag.html html-template.tag.svg" + "name": "entity.name.tag.html html-template.tag.html" }, "3": { "name": "entity.name.tag.html html-template.ng.tag.colon" @@ -5801,10 +5686,9 @@ "name": "entity.name.tag.html html-template.ng.tag.suffix" } }, - "name": "meta.element.structure.svg.html", "endCaptures": { "0": { - "name": "meta.tag.structure.svg.$2.end.html" + "name": "meta.tag.structure.p.end.html" }, "1": { "name": "punctuation.definition.tag.end.html" @@ -5812,38 +5696,34 @@ }, "patterns": [ { - "name": "meta.attribute.$1.svg", - "match": "[\\s\\n\\r\\t]*(\\b(requiredFeatures|enable-background|xml:space|xml:lang|xml:base)\\b)(=)?", + "name": "meta.attribute.$1.html", + "match": "[\\s\\n\\r\\t]*(\\b(align)\\b)(=)?", "captures": { "2": { - "name": "invalid.deprecated.entity.other.attribute-name.html invalid.deprecated.g.$1" + "name": "invalid.deprecated.entity.other.attribute-name.html invalid.deprecated.p.$1" }, "3": { "name": "punctuation.separator.key-value.html punctuation.separator.key-value.html-template.ng" } } }, - { - "include": "#svg-non-string-attributes" - }, { "include": "#tag-stuff" } ] }, - "tag-deprecated-svg-attribute-linearGradient": { - "begin": "(<\\/?)((?i:linearGradient))\\b(?![\\w-])(:)?([\\w\\-\\_$]+)?\\b", - "comment": "This refers only for the linearGradient element and it's attributes when within a SVG element", + "tag-deprecated-attribute-pre": { + "begin": "(<\\/?)(pre)(?!-)\\b(:)?([\\w\\-\\_$]+)?", "end": "(\\/?>)", "beginCaptures": { "0": { - "name": "meta.tag.structure.svg.$2.start.html" + "name": "meta.tag.structure.pre.start.html" }, "1": { "name": "punctuation.definition.tag.begin.html" }, "2": { - "name": "entity.name.tag.html html-template.tag.svg" + "name": "entity.name.tag.html html-template.tag.html" }, "3": { "name": "entity.name.tag.html html-template.ng.tag.colon" @@ -5852,10 +5732,9 @@ "name": "entity.name.tag.html html-template.ng.tag.suffix" } }, - "name": "meta.element.structure.svg.html", "endCaptures": { "0": { - "name": "meta.tag.structure.svg.$2.end.html" + "name": "meta.tag.structure.pre.end.html" }, "1": { "name": "punctuation.definition.tag.end.html" @@ -5863,38 +5742,34 @@ }, "patterns": [ { - "name": "meta.attribute.$1.svg", - "match": "[\\s\\n\\r\\t]*(\\b(xlink:arcrole|xlink:href|xlink:title|xlink:type|xml:space|xml:lang|xml:base)\\b)(=)?", + "name": "meta.attribute.$1.html", + "match": "[\\s\\n\\r\\t]*(\\b(width)\\b)(=)?", "captures": { "2": { - "name": "invalid.deprecated.entity.other.attribute-name.html invalid.deprecated.linearGradient.$1" + "name": "invalid.deprecated.entity.other.attribute-name.html invalid.deprecated.pre.$1" }, "3": { "name": "punctuation.separator.key-value.html punctuation.separator.key-value.html-template.ng" } } }, - { - "include": "#svg-non-string-attributes" - }, { "include": "#tag-stuff" } ] }, - "tag-deprecated-svg-attribute-marker": { - "begin": "(<\\/?)((?i:marker))\\b(?![\\w-])(:)?([\\w\\-\\_$]+)?\\b", - "comment": "This refers only for the a element and it's attributes when within a SVG element", + "tag-deprecated-attribute-table": { + "begin": "(<\\/?)(table)(?!-)\\b(:)?([\\w\\-\\_$]+)?", "end": "(\\/?>)", "beginCaptures": { "0": { - "name": "meta.tag.structure.svg.$2.start.html" + "name": "meta.tag.structure.table.start.html" }, "1": { "name": "punctuation.definition.tag.begin.html" }, "2": { - "name": "entity.name.tag.html html-template.tag.svg" + "name": "entity.name.tag.html html-template.tag.html" }, "3": { "name": "entity.name.tag.html html-template.ng.tag.colon" @@ -5903,10 +5778,9 @@ "name": "entity.name.tag.html html-template.ng.tag.suffix" } }, - "name": "meta.element.structure.svg.html", "endCaptures": { "0": { - "name": "meta.tag.structure.svg.$2.end.html" + "name": "meta.tag.structure.table.end.html" }, "1": { "name": "punctuation.definition.tag.end.html" @@ -5914,38 +5788,34 @@ }, "patterns": [ { - "name": "meta.attribute.$1.svg", - "match": "[\\s\\n\\r\\t]*(\\b(enable-background|clip|xml:space|xml:lang|xml:base)\\b)(=)?", + "name": "meta.attribute.$1.html", + "match": "[\\s\\n\\r\\t]*(\\b(bgcolor|border|cellpadding|cellspacing|frame|rules|scheme|width)\\b)(=)?", "captures": { "2": { - "name": "invalid.deprecated.entity.other.attribute-name.html invalid.deprecated.marker.$1" + "name": "invalid.deprecated.entity.other.attribute-name.html invalid.deprecated.table.$1" }, "3": { "name": "punctuation.separator.key-value.html punctuation.separator.key-value.html-template.ng" } } }, - { - "include": "#svg-non-string-attributes" - }, { "include": "#tag-stuff" } ] }, - "tag-deprecated-svg-attribute-mask": { - "begin": "(<\\/?)((?i:mask))\\b(?![\\w-])(:)?([\\w\\-\\_$]+)?\\b", - "comment": "This refers only for the mask element and it's attributes when within a SVG element", + "tag-deprecated-attribute-tbody": { + "begin": "(<\\/?)(tbody)(?!-)\\b(:)?([\\w\\-\\_$]+)?", "end": "(\\/?>)", "beginCaptures": { "0": { - "name": "meta.tag.structure.svg.$2.start.html" + "name": "meta.tag.structure.tbody.start.html" }, "1": { "name": "punctuation.definition.tag.begin.html" }, "2": { - "name": "entity.name.tag.html html-template.tag.svg" + "name": "entity.name.tag.html html-template.tag.html" }, "3": { "name": "entity.name.tag.html html-template.ng.tag.colon" @@ -5954,10 +5824,9 @@ "name": "entity.name.tag.html html-template.ng.tag.suffix" } }, - "name": "meta.element.structure.svg.html", "endCaptures": { "0": { - "name": "meta.tag.structure.svg.$2.end.html" + "name": "meta.tag.structure.tbody.end.html" }, "1": { "name": "punctuation.definition.tag.end.html" @@ -5965,38 +5834,34 @@ }, "patterns": [ { - "name": "meta.attribute.$1.svg", - "match": "[\\s\\n\\r\\t]*(\\b(requiredFeatures|enable-background|xml:space|xml:lang|xml:base)\\b)(=)?", + "name": "meta.attribute.$1.html", + "match": "[\\s\\n\\r\\t]*(\\b(align|char|charoff|valign)\\b)(=)?", "captures": { "2": { - "name": "invalid.deprecated.entity.other.attribute-name.html invalid.deprecated.mask.$1" + "name": "invalid.deprecated.entity.other.attribute-name.html invalid.deprecated.tbody.$1" }, "3": { "name": "punctuation.separator.key-value.html punctuation.separator.key-value.html-template.ng" } } }, - { - "include": "#svg-non-string-attributes" - }, { "include": "#tag-stuff" } ] }, - "tag-deprecated-svg-attribute-pattern": { - "begin": "(<\\/?)((?i:pattern))\\b(?![\\w-])(:)?([\\w\\-\\_$]+)?\\b", - "comment": "This refers only for the pattern element and it's attributes when within a SVG element", + "tag-deprecated-attribute-td": { + "begin": "(<\\/?)(td)(?!-)\\b(:)?([\\w\\-\\_$]+)?", "end": "(\\/?>)", "beginCaptures": { "0": { - "name": "meta.tag.structure.svg.$2.start.html" + "name": "meta.tag.structure.td.start.html" }, "1": { "name": "punctuation.definition.tag.begin.html" }, "2": { - "name": "entity.name.tag.html html-template.tag.svg" + "name": "entity.name.tag.html html-template.tag.html" }, "3": { "name": "entity.name.tag.html html-template.ng.tag.colon" @@ -6005,10 +5870,9 @@ "name": "entity.name.tag.html html-template.ng.tag.suffix" } }, - "name": "meta.element.structure.svg.html", "endCaptures": { "0": { - "name": "meta.tag.structure.svg.$2.end.html" + "name": "meta.tag.structure.td.end.html" }, "1": { "name": "punctuation.definition.tag.end.html" @@ -6016,38 +5880,34 @@ }, "patterns": [ { - "name": "meta.attribute.$1.svg", - "match": "[\\s\\n\\r\\t]*(\\b(clip|enable-background|requiredFeatures|xlink:arcrole|xlink:href|xlink:title|xlink:type|xml:space|xml:lang|xml:base)\\b)(=)?", + "name": "meta.attribute.$1.html", + "match": "[\\s\\n\\r\\t]*(\\b(abbr|align|axis|bgcolor|char|charoff|nowrap|scope|valign|width)\\b)(=)?", "captures": { "2": { - "name": "invalid.deprecated.entity.other.attribute-name.html invalid.deprecated.pattern.$1" + "name": "invalid.deprecated.entity.other.attribute-name.html invalid.deprecated.td.$1" }, "3": { "name": "punctuation.separator.key-value.html punctuation.separator.key-value.html-template.ng" } } }, - { - "include": "#svg-non-string-attributes" - }, { "include": "#tag-stuff" } ] }, - "tag-deprecated-svg-attribute-radialGradient": { - "begin": "(<\\/?)((?i:radialGradient))\\b(?![\\w-])(:)?([\\w\\-\\_$]+)?\\b", - "comment": "This refers only for the radialGradient element and it's attributes when within a SVG element", + "tag-deprecated-attribute-tfoot": { + "begin": "(<\\/?)(tfoot)(?!-)\\b(:)?([\\w\\-\\_$]+)?", "end": "(\\/?>)", "beginCaptures": { "0": { - "name": "meta.tag.other.svg.$2.start.html" + "name": "meta.tag.structure.tfoot.start.html" }, "1": { "name": "punctuation.definition.tag.begin.html" }, "2": { - "name": "invalid.deprecated.tag" + "name": "entity.name.tag.html html-template.tag.html" }, "3": { "name": "entity.name.tag.html html-template.ng.tag.colon" @@ -6056,10 +5916,9 @@ "name": "entity.name.tag.html html-template.ng.tag.suffix" } }, - "name": "meta.element.other.svg.html", "endCaptures": { "0": { - "name": "meta.tag.other.svg.$2.start.html" + "name": "meta.tag.structure.tfoot.end.html" }, "1": { "name": "punctuation.definition.tag.end.html" @@ -6067,38 +5926,34 @@ }, "patterns": [ { - "name": "meta.attribute.$1.svg", - "match": "[\\s\\n\\r\\t]*(\\b(format|glyphRef|xlink:arcrole|xlink:href|xlink:title|xlink:type|xml:space|xml:lang|xml:base)\\b)(=)?", + "name": "meta.attribute.$1.html", + "match": "[\\s\\n\\r\\t]*(\\b(align|char|charoff|valign)\\b)(=)?", "captures": { "2": { - "name": "invalid.deprecated.entity.other.attribute-name.html invalid.deprecated.radialGradient.$1" + "name": "invalid.deprecated.entity.other.attribute-name.html invalid.deprecated.tfoot.$1" }, "3": { "name": "punctuation.separator.key-value.html punctuation.separator.key-value.html-template.ng" } } }, - { - "include": "#svg-non-string-attributes" - }, { "include": "#tag-stuff" } ] }, - "tag-deprecated-svg-attribute-switch": { - "begin": "(<\\/?)((?i:switch))\\b(?![\\w-])(:)?([\\w\\-\\_$]+)?\\b", - "comment": "This refers only for the switch element and it's attributes when within a SVG element", + "tag-deprecated-attribute-th": { + "begin": "(<\\/?)(th)(?!-)\\b(:)?([\\w\\-\\_$]+)?", "end": "(\\/?>)", "beginCaptures": { "0": { - "name": "meta.tag.structure.svg.$2.start.html" + "name": "meta.tag.structure.th.start.html" }, "1": { "name": "punctuation.definition.tag.begin.html" }, "2": { - "name": "entity.name.tag.html html-template.tag.svg" + "name": "entity.name.tag.html html-template.tag.html" }, "3": { "name": "entity.name.tag.html html-template.ng.tag.colon" @@ -6107,10 +5962,9 @@ "name": "entity.name.tag.html html-template.ng.tag.suffix" } }, - "name": "meta.element.structure.svg.html", "endCaptures": { "0": { - "name": "meta.tag.structure.svg.$2.end.html" + "name": "meta.tag.structure.th.end.html" }, "1": { "name": "punctuation.definition.tag.end.html" @@ -6118,38 +5972,34 @@ }, "patterns": [ { - "name": "meta.attribute.$1.svg", - "match": "[\\s\\n\\r\\t]*(\\b(enable-background|requiredFeatures|xml:space|xml:lang|xml:base)\\b)(=)?", + "name": "meta.attribute.$1.html", + "match": "[\\s\\n\\r\\t]*(\\b(align|bgcolor|char|charoff|nowrap|valign|width)\\b)(=)?", "captures": { "2": { - "name": "invalid.deprecated.entity.other.attribute-name.html invalid.deprecated.switch.$1" + "name": "invalid.deprecated.entity.other.attribute-name.html invalid.deprecated.th.$1" }, "3": { "name": "punctuation.separator.key-value.html punctuation.separator.key-value.html-template.ng" } } }, - { - "include": "#svg-non-string-attributes" - }, { "include": "#tag-stuff" } ] }, - "tag-deprecated-svg-attribute-text": { - "begin": "(<\\/?)((?i:text))\\b(?![\\w-])(:)?([\\w\\-\\_$]+)?\\b", - "comment": "This refers only for the text element and it's attributes when within a SVG element", + "tag-deprecated-attribute-thead": { + "begin": "(<\\/?)(thead)(?!-)\\b(:)?([\\w\\-\\_$]+)?", "end": "(\\/?>)", "beginCaptures": { "0": { - "name": "meta.tag.structure.svg.$2.start.html" + "name": "meta.tag.structure.thead.start.html" }, "1": { "name": "punctuation.definition.tag.begin.html" }, "2": { - "name": "entity.name.tag.html html-template.tag.svg" + "name": "entity.name.tag.html html-template.tag.html" }, "3": { "name": "entity.name.tag.html html-template.ng.tag.colon" @@ -6158,10 +6008,9 @@ "name": "entity.name.tag.html html-template.ng.tag.suffix" } }, - "name": "meta.element.structure.svg.html", "endCaptures": { "0": { - "name": "meta.tag.structure.svg.$2.end.html" + "name": "meta.tag.structure.thead.end.html" }, "1": { "name": "punctuation.definition.tag.end.html" @@ -6169,38 +6018,34 @@ }, "patterns": [ { - "name": "meta.attribute.$1.svg", - "match": "[\\s\\n\\r\\t]*(\\b(requiredFeatures|kerning|glyph-orientation-vertical|glyph-orientation-horizontal|xml:space|xml:lang|xml:base)\\b)(=)?", + "name": "meta.attribute.$1.html", + "match": "[\\s\\n\\r\\t]*(\\b(align|char|charoff|valign)\\b)(=)?", "captures": { "2": { - "name": "invalid.deprecated.entity.other.attribute-name.html invalid.deprecated.text.$1" + "name": "invalid.deprecated.entity.other.attribute-name.html invalid.deprecated.thead.$1" }, "3": { "name": "punctuation.separator.key-value.html punctuation.separator.key-value.html-template.ng" } } }, - { - "include": "#svg-non-string-attributes" - }, { "include": "#tag-stuff" } ] }, - "tag-deprecated-svg-attribute-textPath": { - "begin": "(<\\/?)((?i:textPath))\\b(?![\\w-])(:)?([\\w\\-\\_$]+)?\\b", - "comment": "This refers only for the textPath element and it's attributes when within a SVG element", + "tag-deprecated-attribute-tr": { + "begin": "(<\\/?)(tr)(?!-)\\b(:)?([\\w\\-\\_$]+)?", "end": "(\\/?>)", "beginCaptures": { "0": { - "name": "meta.tag.structure.svg.$2.start.html" + "name": "meta.tag.structure.tr.start.html" }, "1": { "name": "punctuation.definition.tag.begin.html" }, "2": { - "name": "entity.name.tag.html html-template.tag.svg" + "name": "entity.name.tag.html html-template.tag.html" }, "3": { "name": "entity.name.tag.html html-template.ng.tag.colon" @@ -6209,10 +6054,9 @@ "name": "entity.name.tag.html html-template.ng.tag.suffix" } }, - "name": "meta.element.structure.svg.html", "endCaptures": { "0": { - "name": "meta.tag.structure.svg.$2.end.html" + "name": "meta.tag.structure.tr.end.html" }, "1": { "name": "punctuation.definition.tag.end.html" @@ -6220,38 +6064,34 @@ }, "patterns": [ { - "name": "meta.attribute.$1.svg", - "match": "[\\s\\n\\r\\t]*(\\b(glyph-orientation-horizontal|glyph-orientation-vertical|requiredFeatures|kerning|xlink:arcrole|xlink:href|xlink:title|xlink:type|xml:space|xml:lang|xml:base)\\b)(=)?", + "name": "meta.attribute.$1.html", + "match": "[\\s\\n\\r\\t]*(\\b(align|bgcolor|char|charoff|valign)\\b)(=)?", "captures": { "2": { - "name": "invalid.deprecated.entity.other.attribute-name.html invalid.deprecated.textPath.$1" + "name": "invalid.deprecated.entity.other.attribute-name.html invalid.deprecated.tr.$1" }, "3": { "name": "punctuation.separator.key-value.html punctuation.separator.key-value.html-template.ng" } } }, - { - "include": "#svg-non-string-attributes" - }, { "include": "#tag-stuff" } ] }, - "tag-deprecated-svg-attribute-animateTransform": { - "begin": "(<\\/?)((?i:animateTransform))\\b(?![\\w-])(:)?([\\w\\-\\_$]+)?\\b", - "comment": "This refers only for the animateTransform element and it's attributes when within a SVG element", + "tag-deprecated-attribute-ul": { + "begin": "(<\\/?)(ul)(?!-)\\b(:)?([\\w\\-\\_$]+)?", "end": "(\\/?>)", "beginCaptures": { "0": { - "name": "meta.tag.other.svg.$2.start.html" + "name": "meta.tag.structure.ul.start.html" }, "1": { "name": "punctuation.definition.tag.begin.html" }, "2": { - "name": "entity.name.tag.html html-template.tag.svg" + "name": "entity.name.tag.html html-template.tag.html" }, "3": { "name": "entity.name.tag.html html-template.ng.tag.colon" @@ -6260,10 +6100,9 @@ "name": "entity.name.tag.html html-template.ng.tag.suffix" } }, - "name": "meta.element.other.svg.html", "endCaptures": { "0": { - "name": "meta.tag.other.svg.$2.end.html" + "name": "meta.tag.structure.ul.end.html" }, "1": { "name": "punctuation.definition.tag.end.html" @@ -6271,38 +6110,34 @@ }, "patterns": [ { - "name": "meta.attribute.$1.svg", - "match": "[\\s\\n\\r\\t]*(\\b(attributeType|requiredFeatures|xlink:arcrole|xlink:href|xlink:title|xlink:type|xml:space|xml:lang|xml:base)\\b)(=)?", + "name": "meta.attribute.$1.html", + "match": "[\\s\\n\\r\\t]*(\\b(compact|type)\\b)(=)?", "captures": { "2": { - "name": "invalid.deprecated.entity.other.attribute-name.html invalid.deprecated.animateTransform.$1" + "name": "invalid.deprecated.entity.other.attribute-name.html invalid.deprecated.ul.$1" }, "3": { "name": "punctuation.separator.key-value.html punctuation.separator.key-value.html-template.ng" } } }, - { - "include": "#svg-non-string-attributes" - }, { "include": "#tag-stuff" } ] }, - "tag-deprecated-svg-attribute-tspan": { - "begin": "(<\\/?)((?i:tspan))\\b(?![\\w-])(:)?([\\w\\-\\_$]+)?\\b", - "comment": "This refers only for the tspan element and it's attributes when within a SVG element", + "tag-deprecated-attribute-iframe": { + "begin": "(<\\/?)(iframe)(?!-)\\b(:)?([\\w\\-\\_$]+)?", "end": "(\\/?>)", "beginCaptures": { "0": { - "name": "meta.tag.inline.svg.$2.start.html" + "name": "meta.tag.object.iframe.start.html" }, "1": { "name": "punctuation.definition.tag.begin.html" }, "2": { - "name": "entity.name.tag.html html-template.tag.svg" + "name": "entity.name.tag.html html-template.tag.html" }, "3": { "name": "entity.name.tag.html html-template.ng.tag.colon" @@ -6313,40 +6148,36 @@ }, "endCaptures": { "0": { - "name": "meta.tag.inline.svg.$2.end.html" + "name": "meta.tag.object.iframe.end.html" }, "1": { "name": "punctuation.definition.tag.end.html" } }, - "name": "meta.element.inline.svg.html", "patterns": [ { - "name": "meta.attribute.$1.svg", - "match": "[\\s\\n\\r\\t]*(\\b(requiredFeatures|kerning|glyph-orientation-vertical|glyph-orientation-horizontal|xml:space|xml:lang|xml:base)\\b)(=)?", + "name": "meta.attribute.$1.html", + "match": "[\\s\\n\\r\\t]*(\\b(align|frameborder|longdesc|marginheight|marginwidth|scrolling)\\b)(=)?", "captures": { "2": { - "name": "invalid.deprecated.entity.other.attribute-name.html invalid.deprecated.tspan.$1" + "name": "invalid.deprecated.entity.other.attribute-name.html invalid.deprecated.iframe.$1" }, "3": { "name": "punctuation.separator.key-value.html punctuation.separator.key-value.html-template.ng" } } }, - { - "include": "#svg-non-string-attributes" - }, { "include": "#tag-stuff" } ] }, - "tag-deprecated-attribute-iframe": { - "begin": "(<\\/?)(iframe)(?!-)\\b(:)?([\\w\\-\\_$]+)?", + "tag-deprecated-attribute-img": { + "begin": "(<\\/?)(img)(?!-)\\b(:)?([\\w\\-\\_$]+)?", "end": "(\\/?>)", "beginCaptures": { "0": { - "name": "meta.tag.object.iframe.start.html" + "name": "meta.tag.object.img.void.html" }, "1": { "name": "punctuation.definition.tag.begin.html" @@ -6363,7 +6194,7 @@ }, "endCaptures": { "0": { - "name": "meta.tag.object.iframe.end.html" + "name": "meta.tag.object.img.void.html" }, "1": { "name": "punctuation.definition.tag.end.html" @@ -6372,10 +6203,10 @@ "patterns": [ { "name": "meta.attribute.$1.html", - "match": "[\\s\\n\\r\\t]*(\\b(align|frameborder|longdesc|marginheight|marginwidth|scrolling)\\b)(=)?", + "match": "[\\s\\n\\r\\t]*(\\b(align|hspace|longdesc|name|vspace)\\b)(=)?", "captures": { "2": { - "name": "invalid.deprecated.entity.other.attribute-name.html invalid.deprecated.iframe.$1" + "name": "invalid.deprecated.entity.other.attribute-name.html invalid.deprecated.img.$1" }, "3": { "name": "punctuation.separator.key-value.html punctuation.separator.key-value.html-template.ng" @@ -6387,12 +6218,12 @@ } ] }, - "tag-deprecated-attribute-img": { - "begin": "(<\\/?)(img)(?!-)\\b(:)?([\\w\\-\\_$]+)?", + "tag-deprecated-attribute-object": { + "begin": "(<\\/?)(object)(?!-)\\b(:)?([\\w\\-\\_$]+)?", "end": "(\\/?>)", "beginCaptures": { "0": { - "name": "meta.tag.object.img.void.html" + "name": "meta.tag.object.object.start.html" }, "1": { "name": "punctuation.definition.tag.begin.html" @@ -6409,7 +6240,7 @@ }, "endCaptures": { "0": { - "name": "meta.tag.object.img.void.html" + "name": "meta.tag.object.object.end.html" }, "1": { "name": "punctuation.definition.tag.end.html" @@ -6418,10 +6249,10 @@ "patterns": [ { "name": "meta.attribute.$1.html", - "match": "[\\s\\n\\r\\t]*(\\b(align|hspace|longdesc|name|vspace)\\b)(=)?", + "match": "[\\s\\n\\r\\t]*(\\b(archive|border|classid|codebase|codetype|declare|hspace|standby|vspace|align)\\b)(=)?", "captures": { "2": { - "name": "invalid.deprecated.entity.other.attribute-name.html invalid.deprecated.img.$1" + "name": "invalid.deprecated.entity.other.attribute-name.html invalid.deprecated.object.$1" }, "3": { "name": "punctuation.separator.key-value.html punctuation.separator.key-value.html-template.ng" @@ -6433,12 +6264,12 @@ } ] }, - "tag-deprecated-attribute-object": { - "begin": "(<\\/?)(object)(?!-)\\b(:)?([\\w\\-\\_$]+)?", + "tag-deprecated-attribute-param": { + "begin": "(<\\/?)(param)(?!-)\\b(:)?([\\w\\-\\_$]+)?", "end": "(\\/?>)", "beginCaptures": { "0": { - "name": "meta.tag.object.object.start.html" + "name": "meta.tag.object.param.void.html" }, "1": { "name": "punctuation.definition.tag.begin.html" @@ -6455,7 +6286,7 @@ }, "endCaptures": { "0": { - "name": "meta.tag.object.object.end.html" + "name": "meta.tag.object.param.void.html" }, "1": { "name": "punctuation.definition.tag.end.html" @@ -6464,10 +6295,10 @@ "patterns": [ { "name": "meta.attribute.$1.html", - "match": "[\\s\\n\\r\\t]*(\\b(archive|border|classid|codebase|codetype|declare|hspace|standby|vspace|align)\\b)(=)?", + "match": "[\\s\\n\\r\\t]*(\\b(type|valuetype)\\b)(=)?", "captures": { "2": { - "name": "invalid.deprecated.entity.other.attribute-name.html invalid.deprecated.object.$1" + "name": "invalid.deprecated.entity.other.attribute-name.html invalid.deprecated.param.$1" }, "3": { "name": "punctuation.separator.key-value.html punctuation.separator.key-value.html-template.ng" @@ -6479,18 +6310,19 @@ } ] }, - "tag-deprecated-attribute-param": { - "begin": "(<\\/?)(param)(?!-)\\b(:)?([\\w\\-\\_$]+)?", + "tag-deprecated-svg-attribute-animateTransform": { + "begin": "(<\\/?)((?i:animateTransform))\\b(?![\\w-])(:)?([\\w\\-\\_$]+)?\\b", + "comment": "This refers only for the animateTransform element and it's attributes when within a SVG element", "end": "(\\/?>)", "beginCaptures": { "0": { - "name": "meta.tag.object.param.void.html" + "name": "meta.tag.other.svg.$2.start.html" }, "1": { "name": "punctuation.definition.tag.begin.html" }, "2": { - "name": "entity.name.tag.html html-template.tag.html" + "name": "entity.name.tag.html html-template.tag.svg" }, "3": { "name": "entity.name.tag.html html-template.ng.tag.colon" @@ -6499,9 +6331,10 @@ "name": "entity.name.tag.html html-template.ng.tag.suffix" } }, + "name": "meta.element.other.svg.html", "endCaptures": { "0": { - "name": "meta.tag.object.param.void.html" + "name": "meta.tag.other.svg.$2.end.html" }, "1": { "name": "punctuation.definition.tag.end.html" @@ -6509,34 +6342,38 @@ }, "patterns": [ { - "name": "meta.attribute.$1.html", - "match": "[\\s\\n\\r\\t]*(\\b(type|valuetype)\\b)(=)?", + "name": "meta.attribute.$1.svg", + "match": "[\\s\\n\\r\\t]*(\\b(attributeType|requiredFeatures|xlink:arcrole|xlink:href|xlink:title|xlink:type|xml:space|xml:lang|xml:base)\\b)(=)?", "captures": { "2": { - "name": "invalid.deprecated.entity.other.attribute-name.html invalid.deprecated.param.$1" + "name": "invalid.deprecated.entity.other.attribute-name.html invalid.deprecated.animateTransform.$1" }, "3": { "name": "punctuation.separator.key-value.html punctuation.separator.key-value.html-template.ng" } } }, + { + "include": "#svg-non-string-attributes" + }, { "include": "#tag-stuff" } ] }, - "tag-deprecated-attribute-a": { - "begin": "(<\\/?)(a)(?!-)\\b(:)?([\\w\\-\\_$]+)?", + "tag-deprecated-svg-attribute-radialGradient": { + "begin": "(<\\/?)((?i:radialGradient))\\b(?![\\w-])(:)?([\\w\\-\\_$]+)?\\b", + "comment": "This refers only for the radialGradient element and it's attributes when within a SVG element", "end": "(\\/?>)", "beginCaptures": { "0": { - "name": "meta.tag.inline.a.start.html" + "name": "meta.tag.structure.svg.$2.start.html" }, "1": { "name": "punctuation.definition.tag.begin.html" }, "2": { - "name": "entity.name.tag.html html-template.tag.html" + "name": "entity.name.tag.html html-template.tag.svg" }, "3": { "name": "entity.name.tag.html html-template.ng.tag.colon" @@ -6545,9 +6382,10 @@ "name": "entity.name.tag.html html-template.ng.tag.suffix" } }, + "name": "meta.element.structure.svg.html", "endCaptures": { "0": { - "name": "meta.tag.inline.a.end.html" + "name": "meta.tag.structure.svg.$2.end.html" }, "1": { "name": "punctuation.definition.tag.end.html" @@ -6555,34 +6393,38 @@ }, "patterns": [ { - "name": "meta.attribute.$1.html", - "match": "[\\s\\n\\r\\t]*(\\b(charset|coords|rev|shape)\\b)(=)?", + "name": "meta.attribute.$1.svg", + "match": "[\\s\\n\\r\\t]*(\\b(xlink:arcrole|xlink:href|xlink:title|xlink:type|xml:space|xml:lang|xml:base)\\b)(=)?", "captures": { "2": { - "name": "invalid.deprecated.entity.other.attribute-name.html invalid.deprecated.a.$1" + "name": "invalid.deprecated.entity.other.attribute-name.html invalid.deprecated.radialGradient.$1" }, "3": { "name": "punctuation.separator.key-value.html punctuation.separator.key-value.html-template.ng" } } }, + { + "include": "#svg-non-string-attributes" + }, { "include": "#tag-stuff" } ] }, - "tag-deprecated-attribute-area": { - "begin": "(<\\/?)(area)(?!-)\\b(:)?([\\w\\-\\_$]+)?", + "tag-deprecated-svg-attribute-tspan": { + "begin": "(<\\/?)((?i:tspan))\\b(?![\\w-])(:)?([\\w\\-\\_$]+)?\\b", + "comment": "This refers only for the tspan element and it's attributes when within a SVG element", "end": "(\\/?>)", "beginCaptures": { "0": { - "name": "meta.tag.inline.area.void.html" + "name": "meta.tag.inline.svg.$2.start.html" }, "1": { "name": "punctuation.definition.tag.begin.html" }, "2": { - "name": "entity.name.tag.html html-template.tag.html" + "name": "entity.name.tag.html html-template.tag.svg" }, "3": { "name": "entity.name.tag.html html-template.ng.tag.colon" @@ -6593,42 +6435,47 @@ }, "endCaptures": { "0": { - "name": "meta.tag.inline.area.void.html" + "name": "meta.tag.inline.svg.$2.end.html" }, "1": { "name": "punctuation.definition.tag.end.html" } }, + "name": "meta.element.inline.svg.html", "patterns": [ { - "name": "meta.attribute.$1.html", - "match": "[\\s\\n\\r\\t]*(\\b(nohref)\\b)(=)?", + "name": "meta.attribute.$1.svg", + "match": "[\\s\\n\\r\\t]*(\\b(requiredFeatures|kerning|glyph-orientation-vertical|glyph-orientation-horizontal|xml:space|xml:lang|xml:base)\\b)(=)?", "captures": { "2": { - "name": "invalid.deprecated.entity.other.attribute-name.html invalid.deprecated.area.$1" + "name": "invalid.deprecated.entity.other.attribute-name.html invalid.deprecated.tspan.$1" }, "3": { "name": "punctuation.separator.key-value.html punctuation.separator.key-value.html-template.ng" } } }, + { + "include": "#svg-non-string-attributes" + }, { "include": "#tag-stuff" } ] }, - "tag-deprecated-attribute-br": { - "begin": "(<\\/?)(br)(?!-)\\b(:)?([\\w\\-\\_$]+)?", + "tag-deprecated-svg-attribute-circle": { + "begin": "(<\\/?)((?i:circle))\\b(?![\\w-])(:)?([\\w\\-\\_$]+)?\\b", + "comment": "This refers only for the circle element and it's attributes when within a SVG element", "end": "(\\/?>)", "beginCaptures": { "0": { - "name": "meta.tag.inline.br.void.html" + "name": "meta.tag.object.svg.$2.start.html" }, "1": { "name": "punctuation.definition.tag.begin.html" }, "2": { - "name": "entity.name.tag.html html-template.tag.html" + "name": "entity.name.tag.html html-template.tag.svg" }, "3": { "name": "entity.name.tag.html html-template.ng.tag.colon" @@ -6637,9 +6484,10 @@ "name": "entity.name.tag.html html-template.ng.tag.suffix" } }, + "name": "meta.element.object.svg.html", "endCaptures": { "0": { - "name": "meta.tag.inline.br.void.html" + "name": "meta.tag.object.svg.$2.end.html" }, "1": { "name": "punctuation.definition.tag.end.html" @@ -6647,34 +6495,38 @@ }, "patterns": [ { - "name": "meta.attribute.$1.html", - "match": "[\\s\\n\\r\\t]*(\\b(clear)\\b)(=)?", + "name": "meta.attribute.$1.svg", + "match": "[\\s\\n\\r\\t]*(\\b(requiredFeatures|xml:space|xml:lang|xml:base)\\b)(=)?", "captures": { "2": { - "name": "invalid.deprecated.entity.other.attribute-name.html invalid.deprecated.br.$1" + "name": "invalid.deprecated.entity.other.attribute-name.html invalid.deprecated.circle.$1" }, "3": { "name": "punctuation.separator.key-value.html punctuation.separator.key-value.html-template.ng" } } }, + { + "include": "#svg-non-string-attributes" + }, { "include": "#tag-stuff" } ] }, - "tag-deprecated-attribute-body": { - "begin": "(<\\/?)(body)(?!-)\\b(:)?([\\w\\-\\_$]+)?", + "tag-deprecated-svg-attribute-ellipse": { + "begin": "(<\\/?)((?i:ellipse))\\b(?![\\w-])(:)?([\\w\\-\\_$]+)?\\b", + "comment": "This refers only for the ellipse element and it's attributes when within a SVG element", "end": "(\\/?>)", "beginCaptures": { "0": { - "name": "meta.tag.structure.body.start.html" + "name": "meta.tag.object.svg.$2.start.html" }, "1": { "name": "punctuation.definition.tag.begin.html" }, "2": { - "name": "entity.name.tag.html html-template.tag.html" + "name": "entity.name.tag.html html-template.tag.svg" }, "3": { "name": "entity.name.tag.html html-template.ng.tag.colon" @@ -6683,9 +6535,10 @@ "name": "entity.name.tag.html html-template.ng.tag.suffix" } }, + "name": "meta.element.object.svg.html", "endCaptures": { "0": { - "name": "meta.tag.structure.body.end.html" + "name": "meta.tag.object.svg.$2.end.html" }, "1": { "name": "punctuation.definition.tag.end.html" @@ -6693,34 +6546,38 @@ }, "patterns": [ { - "name": "meta.attribute.$1.html", - "match": "[\\s\\n\\r\\t]*(\\b(alink|background|bgcolor|link|vlink)\\b)(=)?", + "name": "meta.attribute.$1.svg", + "match": "[\\s\\n\\r\\t]*(\\b(requiredFeatures|xml:space|xml:lang|xml:base)\\b)(=)?", "captures": { "2": { - "name": "invalid.deprecated.entity.other.attribute-name.html invalid.deprecated.body.$1" + "name": "invalid.deprecated.entity.other.attribute-name.html invalid.deprecated.ellipse.$1" }, "3": { "name": "punctuation.separator.key-value.html punctuation.separator.key-value.html-template.ng" } } }, + { + "include": "#svg-non-string-attributes" + }, { "include": "#tag-stuff" } ] }, - "tag-deprecated-attribute-caption": { - "begin": "(<\\/?)(caption)(?!-)\\b(:)?([\\w\\-\\_$]+)?", + "tag-deprecated-svg-attribute-feImage": { + "begin": "(<\\/?)((?i:feImage))\\b(?![\\w-])(:)?([\\w\\-\\_$]+)?\\b", + "comment": "This refers only for the feImage element and it's attributes when within a SVG element", "end": "(\\/?>)", "beginCaptures": { "0": { - "name": "meta.tag.structure.caption.start.html" + "name": "meta.tag.object.svg.$2.start.html" }, "1": { "name": "punctuation.definition.tag.begin.html" }, "2": { - "name": "entity.name.tag.html html-template.tag.html" + "name": "entity.name.tag.html html-template.tag.svg" }, "3": { "name": "entity.name.tag.html html-template.ng.tag.colon" @@ -6729,9 +6586,10 @@ "name": "entity.name.tag.html html-template.ng.tag.suffix" } }, + "name": "meta.element.object.svg.html", "endCaptures": { "0": { - "name": "meta.tag.structure.caption.end.html" + "name": "meta.tag.object.svg.$2.end.html" }, "1": { "name": "punctuation.definition.tag.end.html" @@ -6739,34 +6597,38 @@ }, "patterns": [ { - "name": "meta.attribute.$1.html", - "match": "[\\s\\n\\r\\t]*(\\b(align)\\b)(=)?", + "name": "meta.attribute.$1.svg", + "match": "[\\s\\n\\r\\t]*(\\b(xlink:arcrole|xlink:href|xlink:title|xlink:type|xml:space|xml:lang|xml:base)\\b)(=)?", "captures": { "2": { - "name": "invalid.deprecated.entity.other.attribute-name.html invalid.deprecated.caption.$1" + "name": "invalid.deprecated.entity.other.attribute-name.html invalid.deprecated.feImage.$1" }, "3": { "name": "punctuation.separator.key-value.html punctuation.separator.key-value.html-template.ng" } } }, + { + "include": "#svg-non-string-attributes" + }, { "include": "#tag-stuff" } ] }, - "tag-deprecated-attribute-col": { - "begin": "(<\\/?)(col)(?!-)\\b(:)?([\\w\\-\\_$]+)?", + "tag-deprecated-svg-attribute-foreignObject": { + "begin": "(<\\/?)((?i:foreignObject))\\b(?![\\w-])(:)?([\\w\\-\\_$]+)?\\b", + "comment": "This refers only for the foreignObject element and it's attributes when within a SVG element", "end": "(\\/?>)", "beginCaptures": { "0": { - "name": "meta.tag.structure.col.void.html" + "name": "meta.tag.object.svg.$2.start.html" }, "1": { "name": "punctuation.definition.tag.begin.html" }, "2": { - "name": "entity.name.tag.html html-template.tag.html" + "name": "entity.name.tag.html html-template.tag.svg" }, "3": { "name": "entity.name.tag.html html-template.ng.tag.colon" @@ -6775,9 +6637,10 @@ "name": "entity.name.tag.html html-template.ng.tag.suffix" } }, + "name": "meta.element.object.svg.html", "endCaptures": { "0": { - "name": "meta.tag.structure.col.void.html" + "name": "meta.tag.object.svg.$2.end.html" }, "1": { "name": "punctuation.definition.tag.end.html" @@ -6785,34 +6648,38 @@ }, "patterns": [ { - "name": "meta.attribute.$1.html", - "match": "[\\s\\n\\r\\t]*(\\b(char|charoff|valign|width)\\b)(=)?", + "name": "meta.attribute.$1.svg", + "match": "[\\s\\n\\r\\t]*(\\b(clip|requiredFeatures|xml:space|xml:lang|xml:base)\\b)(=)?", "captures": { "2": { - "name": "invalid.deprecated.entity.other.attribute-name.html invalid.deprecated.col.$1" + "name": "invalid.deprecated.entity.other.attribute-name.html invalid.deprecated.foreignObject.$1" }, "3": { "name": "punctuation.separator.key-value.html punctuation.separator.key-value.html-template.ng" } } }, + { + "include": "#svg-non-string-attributes" + }, { "include": "#tag-stuff" } ] }, - "tag-deprecated-attribute-colgroup": { - "begin": "(<\\/?)(colgroup)(?!-)\\b(:)?([\\w\\-\\_$]+)?", + "tag-deprecated-svg-attribute-image": { + "begin": "(<\\/?)((?i:image))\\b(?![\\w-])(:)?([\\w\\-\\_$]+)?\\b", + "comment": "This refers only for the image element and it's attributes when within a SVG element", "end": "(\\/?>)", "beginCaptures": { "0": { - "name": "meta.tag.structure.colgroup.start.html" + "name": "meta.tag.object.svg.$2.start.html" }, "1": { "name": "punctuation.definition.tag.begin.html" }, "2": { - "name": "entity.name.tag.html html-template.tag.html" + "name": "entity.name.tag.html html-template.tag.svg" }, "3": { "name": "entity.name.tag.html html-template.ng.tag.colon" @@ -6821,9 +6688,10 @@ "name": "entity.name.tag.html html-template.ng.tag.suffix" } }, + "name": "meta.element.object.svg.html", "endCaptures": { "0": { - "name": "meta.tag.structure.colgroup.end.html" + "name": "meta.tag.object.svg.$2.end.html" }, "1": { "name": "punctuation.definition.tag.end.html" @@ -6831,34 +6699,38 @@ }, "patterns": [ { - "name": "meta.attribute.$1.html", - "match": "[\\s\\n\\r\\t]*(\\b(align|char|charoff|valign|width)\\b)(=)?", + "name": "meta.attribute.$1.svg", + "match": "[\\s\\n\\r\\t]*(\\b(clip|color-profile|requiredFeatures|xlink:arcrole|xlink:href|xlink:title|xlink:type|xml:space|xml:lang|xml:base)\\b)(=)?", "captures": { "2": { - "name": "invalid.deprecated.entity.other.attribute-name.html invalid.deprecated.colgroup.$1" + "name": "invalid.deprecated.entity.other.attribute-name.html invalid.deprecated.image.$1" }, "3": { "name": "punctuation.separator.key-value.html punctuation.separator.key-value.html-template.ng" } } }, + { + "include": "#svg-non-string-attributes" + }, { "include": "#tag-stuff" } ] }, - "tag-deprecated-attribute-div": { - "begin": "(<\\/?)(div)(?!-)\\b(:)?([\\w\\-\\_$]+)?", + "tag-deprecated-svg-attribute-line": { + "begin": "(<\\/?)((?i:line))\\b(?![\\w-])(:)?([\\w\\-\\_$]+)?\\b", + "comment": "This refers only for the line element and it's attributes when within a SVG element", "end": "(\\/?>)", "beginCaptures": { "0": { - "name": "meta.tag.structure.div.start.html" + "name": "meta.tag.object.svg.$2.start.html" }, "1": { "name": "punctuation.definition.tag.begin.html" }, "2": { - "name": "entity.name.tag.html html-template.tag.html" + "name": "entity.name.tag.html html-template.tag.svg" }, "3": { "name": "entity.name.tag.html html-template.ng.tag.colon" @@ -6867,9 +6739,10 @@ "name": "entity.name.tag.html html-template.ng.tag.suffix" } }, + "name": "meta.element.object.svg.html", "endCaptures": { "0": { - "name": "meta.tag.structure.div.end.html" + "name": "meta.tag.object.svg.$2.end.html" }, "1": { "name": "punctuation.definition.tag.end.html" @@ -6877,34 +6750,38 @@ }, "patterns": [ { - "name": "meta.attribute.$1.html", - "match": "[\\s\\n\\r\\t]*(\\b(align)\\b)(=)?", + "name": "meta.attribute.$1.svg", + "match": "[\\s\\n\\r\\t]*(\\b(requiredFeatures|xml:space|xml:lang|xml:base)\\b)(=)?", "captures": { "2": { - "name": "invalid.deprecated.entity.other.attribute-name.html invalid.deprecated.div.$1" + "name": "invalid.deprecated.entity.other.attribute-name.html invalid.deprecated.line.$1" }, "3": { "name": "punctuation.separator.key-value.html punctuation.separator.key-value.html-template.ng" } } }, + { + "include": "#svg-non-string-attributes" + }, { "include": "#tag-stuff" } ] }, - "tag-deprecated-attribute-dl": { - "begin": "(<\\/?)(dl)(?!-)\\b(:)?([\\w\\-\\_$]+)?", + "tag-deprecated-svg-attribute-path": { + "begin": "(<\\/?)((?i:path))\\b(?![\\w-])(:)?([\\w\\-\\_$]+)?\\b", + "comment": "This refers only for the path element and it's attributes when within a SVG element", "end": "(\\/?>)", "beginCaptures": { "0": { - "name": "\tmeta.tag.structure.dl.start.html" + "name": "meta.tag.object.svg.$2.start.html" }, "1": { "name": "punctuation.definition.tag.begin.html" }, "2": { - "name": "entity.name.tag.html html-template.tag.html" + "name": "entity.name.tag.html html-template.tag.svg" }, "3": { "name": "entity.name.tag.html html-template.ng.tag.colon" @@ -6913,9 +6790,10 @@ "name": "entity.name.tag.html html-template.ng.tag.suffix" } }, + "name": "meta.element.object.svg.html", "endCaptures": { "0": { - "name": "\tmeta.tag.structure.dl.end.html" + "name": "meta.tag.object.svg.$2.end.html" }, "1": { "name": "punctuation.definition.tag.end.html" @@ -6923,34 +6801,38 @@ }, "patterns": [ { - "name": "meta.attribute.$1.html", - "match": "[\\s\\n\\r\\t]*(\\b(compact)\\b)(=)?", + "name": "meta.attribute.$1.svg", + "match": "[\\s\\n\\r\\t]*(\\b(requiredFeatures|xml:space|xml:lang|xml:base)\\b)(=)?", "captures": { "2": { - "name": "invalid.deprecated.entity.other.attribute-name.html invalid.deprecated.dl.$1" + "name": "invalid.deprecated.entity.other.attribute-name.html invalid.deprecated.path.$1" }, "3": { "name": "punctuation.separator.key-value.html punctuation.separator.key-value.html-template.ng" } } }, + { + "include": "#svg-non-string-attributes" + }, { "include": "#tag-stuff" } ] }, - "tag-deprecated-attribute-h1": { - "begin": "(<\\/?)(h1)(?!-)\\b(:)?([\\w\\-\\_$]+)?", + "tag-deprecated-svg-attribute-polygon": { + "begin": "(<\\/?)((?i:polygon))\\b(?![\\w-])(:)?([\\w\\-\\_$]+)?\\b", + "comment": "This refers only for the polygon element and it's attributes when within a SVG element", "end": "(\\/?>)", "beginCaptures": { "0": { - "name": "meta.tag.structure.h1.start.html" + "name": "meta.tag.object.svg.$2.start.html" }, "1": { "name": "punctuation.definition.tag.begin.html" }, "2": { - "name": "entity.name.tag.html html-template.tag.html" + "name": "entity.name.tag.html html-template.tag.svg" }, "3": { "name": "entity.name.tag.html html-template.ng.tag.colon" @@ -6959,9 +6841,10 @@ "name": "entity.name.tag.html html-template.ng.tag.suffix" } }, + "name": "meta.element.object.svg.html", "endCaptures": { "0": { - "name": "meta.tag.structure.h1.end.html" + "name": "meta.tag.object.svg.$2.end.html" }, "1": { "name": "punctuation.definition.tag.end.html" @@ -6969,34 +6852,38 @@ }, "patterns": [ { - "name": "meta.attribute.$1.html", - "match": "[\\s\\n\\r\\t]*(\\b(align)\\b)(=)?", + "name": "meta.attribute.$1.svg", + "match": "[\\s\\n\\r\\t]*(\\b(requiredFeatures|xml:space|xml:lang|xml:base)\\b)(=)?", "captures": { "2": { - "name": "invalid.deprecated.entity.other.attribute-name.html invalid.deprecated.h1.$1" + "name": "invalid.deprecated.entity.other.attribute-name.html invalid.deprecated.polygon.$1" }, "3": { "name": "punctuation.separator.key-value.html punctuation.separator.key-value.html-template.ng" } } }, + { + "include": "#svg-non-string-attributes" + }, { "include": "#tag-stuff" } ] }, - "tag-deprecated-attribute-h2": { - "begin": "(<\\/?)(h2)(?!-)\\b(:)?([\\w\\-\\_$]+)?", + "tag-deprecated-svg-attribute-polyline": { + "begin": "(<\\/?)((?i:polyline))\\b(?![\\w-])(:)?([\\w\\-\\_$]+)?\\b", + "comment": "This refers only for the polyline element and it's attributes when within a SVG element", "end": "(\\/?>)", "beginCaptures": { "0": { - "name": "meta.tag.structure.h2.start.html" + "name": "meta.tag.object.svg.$2.start.html" }, "1": { "name": "punctuation.definition.tag.begin.html" }, "2": { - "name": "entity.name.tag.html html-template.tag.html" + "name": "entity.name.tag.html html-template.tag.svg" }, "3": { "name": "entity.name.tag.html html-template.ng.tag.colon" @@ -7005,9 +6892,10 @@ "name": "entity.name.tag.html html-template.ng.tag.suffix" } }, + "name": "meta.element.object.svg.html", "endCaptures": { "0": { - "name": "meta.tag.structure.h2.end.html" + "name": "meta.tag.object.svg.$2.end.html" }, "1": { "name": "punctuation.definition.tag.end.html" @@ -7015,34 +6903,38 @@ }, "patterns": [ { - "name": "meta.attribute.$1.html", - "match": "[\\s\\n\\r\\t]*(\\b(align)\\b)(=)?", + "name": "meta.attribute.$1.svg", + "match": "[\\s\\n\\r\\t]*(\\b(requiredFeatures|xml:space|xml:lang|xml:base)\\b)(=)?", "captures": { "2": { - "name": "invalid.deprecated.entity.other.attribute-name.html invalid.deprecated.h2.$1" + "name": "invalid.deprecated.entity.other.attribute-name.html invalid.deprecated.polyline.$1" }, "3": { "name": "punctuation.separator.key-value.html punctuation.separator.key-value.html-template.ng" } } }, + { + "include": "#svg-non-string-attributes" + }, { "include": "#tag-stuff" } ] }, - "tag-deprecated-attribute-h3": { - "begin": "(<\\/?)(h3)(?!-)\\b(:)?([\\w\\-\\_$]+)?", + "tag-deprecated-svg-attribute-rect": { + "begin": "(<\\/?)((?i:rect))\\b(?![\\w-])(:)?([\\w\\-\\_$]+)?\\b", + "comment": "This refers only for the rect element and it's attributes when within a SVG element", "end": "(\\/?>)", "beginCaptures": { "0": { - "name": "meta.tag.structure.h3.start.html" + "name": "meta.tag.object.svg.$2.start.html" }, "1": { "name": "punctuation.definition.tag.begin.html" }, "2": { - "name": "entity.name.tag.html html-template.tag.html" + "name": "entity.name.tag.html html-template.tag.svg" }, "3": { "name": "entity.name.tag.html html-template.ng.tag.colon" @@ -7051,9 +6943,10 @@ "name": "entity.name.tag.html html-template.ng.tag.suffix" } }, + "name": "meta.element.object.svg.html", "endCaptures": { "0": { - "name": "meta.tag.structure.h3.end.html" + "name": "meta.tag.object.svg.$2.end.html" }, "1": { "name": "punctuation.definition.tag.end.html" @@ -7061,34 +6954,38 @@ }, "patterns": [ { - "name": "meta.attribute.$1.html", - "match": "[\\s\\n\\r\\t]*(\\b(align)\\b)(=)?", + "name": "meta.attribute.$1.svg", + "match": "[\\s\\n\\r\\t]*(\\b(requiredFeatures|xml:space|xml:lang|xml:base)\\b)(=)?", "captures": { "2": { - "name": "invalid.deprecated.entity.other.attribute-name.html invalid.deprecated.h3.$1" + "name": "invalid.deprecated.entity.other.attribute-name.html invalid.deprecated.rect.$1" }, "3": { "name": "punctuation.separator.key-value.html punctuation.separator.key-value.html-template.ng" } } }, + { + "include": "#svg-non-string-attributes" + }, { "include": "#tag-stuff" } ] }, - "tag-deprecated-attribute-h4": { - "begin": "(<\\/?)(h4)(?!-)\\b(:)?([\\w\\-\\_$]+)?", + "tag-deprecated-svg-attribute-symbol": { + "begin": "(<\\/?)((?i:symbol))\\b(?![\\w-])(:)?([\\w\\-\\_$]+)?\\b", + "comment": "This refers only for the symbol element and it's attributes when within a SVG element", "end": "(\\/?>)", "beginCaptures": { "0": { - "name": "meta.tag.structure.h4.start.html" + "name": "meta.tag.object.svg.$2.start.html" }, "1": { "name": "punctuation.definition.tag.begin.html" }, "2": { - "name": "entity.name.tag.html html-template.tag.html" + "name": "entity.name.tag.html html-template.tag.svg" }, "3": { "name": "entity.name.tag.html html-template.ng.tag.colon" @@ -7097,9 +6994,10 @@ "name": "entity.name.tag.html html-template.ng.tag.suffix" } }, + "name": "meta.element.object.svg.html", "endCaptures": { "0": { - "name": "meta.tag.structure.h4.end.html" + "name": "meta.tag.object.svg.$2.end.html" }, "1": { "name": "punctuation.definition.tag.end.html" @@ -7107,34 +7005,38 @@ }, "patterns": [ { - "name": "meta.attribute.$1.html", - "match": "[\\s\\n\\r\\t]*(\\b(align)\\b)(=)?", + "name": "meta.attribute.$1.svg", + "match": "[\\s\\n\\r\\t]*(\\b(enable-background|clip|xml:space|xml:lang|xml:base)\\b)(=)?", "captures": { "2": { - "name": "invalid.deprecated.entity.other.attribute-name.html invalid.deprecated.h4.$1" + "name": "invalid.deprecated.entity.other.attribute-name.html invalid.deprecated.symbol.$1" }, "3": { "name": "punctuation.separator.key-value.html punctuation.separator.key-value.html-template.ng" } } }, + { + "include": "#svg-non-string-attributes" + }, { "include": "#tag-stuff" } ] }, - "tag-deprecated-attribute-h5": { - "begin": "(<\\/?)(h5)(?!-)\\b(:)?([\\w\\-\\_$]+)?", + "tag-deprecated-svg-attribute-use": { + "begin": "(<\\/?)((?i:use))\\b(?![\\w-])(:)?([\\w\\-\\_$]+)?\\b", + "comment": "This refers only for the use element and it's attributes when within a SVG element", "end": "(\\/?>)", "beginCaptures": { "0": { - "name": "meta.tag.structure.h5.start.html" + "name": "meta.tag.object.svg.$2.start.html" }, "1": { "name": "punctuation.definition.tag.begin.html" }, "2": { - "name": "entity.name.tag.html html-template.tag.html" + "name": "entity.name.tag.html html-template.tag.svg" }, "3": { "name": "entity.name.tag.html html-template.ng.tag.colon" @@ -7143,9 +7045,10 @@ "name": "entity.name.tag.html html-template.ng.tag.suffix" } }, + "name": "meta.element.object.svg.html", "endCaptures": { "0": { - "name": "meta.tag.structure.h5.end.html" + "name": "meta.tag.object.svg.$2.end.html" }, "1": { "name": "punctuation.definition.tag.end.html" @@ -7153,34 +7056,38 @@ }, "patterns": [ { - "name": "meta.attribute.$1.html", - "match": "[\\s\\n\\r\\t]*(\\b(align)\\b)(=)?", + "name": "meta.attribute.$1.svg", + "match": "[\\s\\n\\r\\t]*(\\b(requiredFeatures|xlink:arcrole|xlink:href|xlink:title|xlink:type|xml:space|xml:lang|xml:base)\\b)(=)?", "captures": { "2": { - "name": "invalid.deprecated.entity.other.attribute-name.html invalid.deprecated.h5.$1" + "name": "invalid.deprecated.entity.other.attribute-name.html invalid.deprecated.use.$1" }, "3": { "name": "punctuation.separator.key-value.html punctuation.separator.key-value.html-template.ng" } } }, + { + "include": "#svg-non-string-attributes" + }, { "include": "#tag-stuff" } ] }, - "tag-deprecated-attribute-h6": { - "begin": "(<\\/?)(h6)(?!-)\\b(:)?([\\w\\-\\_$]+)?", + "tag-deprecated-svg-attribute-view": { + "begin": "(<\\/?)((?i:view))\\b(?![\\w-])(:)?([\\w\\-\\_$]+)?\\b", + "comment": "This refers only for the view element and it's attributes when within a SVG element", "end": "(\\/?>)", "beginCaptures": { "0": { - "name": "meta.tag.structure.h6.start.html" + "name": "meta.tag.object.svg.$2.start.html" }, "1": { "name": "punctuation.definition.tag.begin.html" }, "2": { - "name": "entity.name.tag.html html-template.tag.html" + "name": "entity.name.tag.html html-template.tag.svg" }, "3": { "name": "entity.name.tag.html html-template.ng.tag.colon" @@ -7189,9 +7096,10 @@ "name": "entity.name.tag.html html-template.ng.tag.suffix" } }, + "name": "meta.element.object.svg.html", "endCaptures": { "0": { - "name": "meta.tag.structure.h6.end.html" + "name": "meta.tag.object.svg.$2.end.html" }, "1": { "name": "punctuation.definition.tag.end.html" @@ -7199,34 +7107,38 @@ }, "patterns": [ { - "name": "meta.attribute.$1.html", - "match": "[\\s\\n\\r\\t]*(\\b(align)\\b)(=)?", + "name": "meta.attribute.$1.svg", + "match": "[\\s\\n\\r\\t]*(\\b(zoomAndPan|viewTarget|xml:space|xml:lang|xml:base)\\b)(=)?", "captures": { "2": { - "name": "invalid.deprecated.entity.other.attribute-name.html invalid.deprecated.h6.$1" + "name": "invalid.deprecated.entity.other.attribute-name.html invalid.deprecated.view.$1" }, "3": { "name": "punctuation.separator.key-value.html punctuation.separator.key-value.html-template.ng" } } }, + { + "include": "#svg-non-string-attributes" + }, { "include": "#tag-stuff" } ] }, - "tag-deprecated-attribute-head": { - "begin": "(<\\/?)(head)(?!-)\\b(:)?([\\w\\-\\_$]+)?", + "tag-deprecated-svg-attribute-a": { + "begin": "(<\\/?)((?i:a))\\b(?![\\w-])(:)?([\\w\\-\\_$]+)?\\b", + "comment": "This refers only for the a element and it's attributes when within a SVG element", "end": "(\\/?>)", "beginCaptures": { "0": { - "name": "meta.tag.structure.head.start.html" + "name": "meta.tag.inline.svg.$2.start.html" }, "1": { "name": "punctuation.definition.tag.begin.html" }, "2": { - "name": "entity.name.tag.html html-template.tag.html" + "name": "entity.name.tag.html html-template.tag.svg" }, "3": { "name": "entity.name.tag.html html-template.ng.tag.colon" @@ -7235,9 +7147,10 @@ "name": "entity.name.tag.html html-template.ng.tag.suffix" } }, + "name": "meta.element.inline.svg.html", "endCaptures": { "0": { - "name": "meta.tag.structure.head.end.html" + "name": "meta.tag.inline.svg.$2.end.html" }, "1": { "name": "punctuation.definition.tag.end.html" @@ -7245,34 +7158,38 @@ }, "patterns": [ { - "name": "meta.attribute.$1.html", - "match": "[\\s\\n\\r\\t]*(\\b(profile)\\b)(=)?", + "name": "meta.attribute.$1.svg", + "match": "[\\s\\n\\r\\t]*(\\b(enable-background|requiredFeatures|xlink:arcrole|xlink:href|xlink:title|xlink:show|xlink:type|xml:space|xml:lang|xml:base)\\b)(=)?", "captures": { "2": { - "name": "invalid.deprecated.entity.other.attribute-name.html invalid.deprecated.head.$1" + "name": "invalid.deprecated.entity.other.attribute-name.html invalid.deprecated.a.$1.svg" }, "3": { "name": "punctuation.separator.key-value.html punctuation.separator.key-value.html-template.ng" } } }, + { + "include": "#svg-non-string-attributes" + }, { "include": "#tag-stuff" } ] }, - "tag-deprecated-attribute-hr": { - "begin": "(<\\/?)(hr)(?!-)\\b(:)?([\\w\\-\\_$]+)?", + "tag-deprecated-svg-attribute-animate": { + "begin": "(<\\/?)((?i:animate))\\b(?![\\w-])(:)?([\\w\\-\\_$]+)?\\b", + "comment": "This refers only for the animate element and it's attributes when within a SVG element", "end": "(\\/?>)", "beginCaptures": { "0": { - "name": "meta.tag.structure.hr.void.html" + "name": "meta.tag.inline.svg.$2.start.html" }, "1": { "name": "punctuation.definition.tag.begin.html" }, "2": { - "name": "entity.name.tag.html html-template.tag.html" + "name": "entity.name.tag.html html-template.tag.svg" }, "3": { "name": "entity.name.tag.html html-template.ng.tag.colon" @@ -7283,42 +7200,47 @@ }, "endCaptures": { "0": { - "name": "meta.tag.structure.hr.void.html" + "name": "meta.tag.inline.svg.$2.end.html" }, "1": { "name": "punctuation.definition.tag.end.html" } }, + "name": "meta.element.inline.svg.html", "patterns": [ { - "name": "meta.attribute.$1.html", - "match": "[\\s\\n\\r\\t]*(\\b(align|noshade|size|width)\\b)(=)?", + "name": "meta.attribute.$1.svg", + "match": "[\\s\\n\\r\\t]*(\\b(attributeType|requiredFeatures|requiredFeatures|xlink:arcrole|xlink:href|xlink:title|xlink:type|xml:space|xml:lang|xml:base)\\b)(=)?", "captures": { "2": { - "name": "invalid.deprecated.entity.other.attribute-name.html invalid.deprecated.hr.$1" + "name": "invalid.deprecated.entity.other.attribute-name.html invalid.deprecated.animate.$1" }, "3": { "name": "punctuation.separator.key-value.html punctuation.separator.key-value.html-template.ng" } } }, + { + "include": "#svg-non-string-attributes" + }, { "include": "#tag-stuff" } ] }, - "tag-deprecated-attribute-html": { - "begin": "(<\\/?)(html)(?!-)\\b(:)?([\\w\\-\\_$]+)?", + "tag-deprecated-svg-attribute-feConvolveMatrix": { + "begin": "(<\\/?)((?i:feConvolveMatrix))\\b(?![\\w-])(:)?([\\w\\-\\_$]+)?\\b", + "comment": "This refers only for the feConvolveMatrix element and it's attributes when within a SVG element", "end": "(\\/?>)", "beginCaptures": { "0": { - "name": "meta.tag.structure.html.start.html" + "name": "meta.tag.inline.svg.$2.start.html" }, "1": { "name": "punctuation.definition.tag.begin.html" }, "2": { - "name": "entity.name.tag.html html-template.tag.html" + "name": "entity.name.tag.html html-template.tag.svg" }, "3": { "name": "entity.name.tag.html html-template.ng.tag.colon" @@ -7327,9 +7249,10 @@ "name": "entity.name.tag.html html-template.ng.tag.suffix" } }, + "name": "meta.element.inline.svg.html", "endCaptures": { "0": { - "name": "meta.tag.structure.html.end.html" + "name": "meta.tag.inline.svg.$2.end.html" }, "1": { "name": "punctuation.definition.tag.end.html" @@ -7337,34 +7260,38 @@ }, "patterns": [ { - "name": "meta.attribute.$1.html", - "match": "[\\s\\n\\r\\t]*(\\b(version)\\b)(=)?", + "name": "meta.attribute.$1.svg", + "match": "[\\s\\n\\r\\t]*(\\b(kernelUnitLength|xml:space|xml:lang|xml:base)\\b)(=)?", "captures": { "2": { - "name": "invalid.deprecated.entity.other.attribute-name.html invalid.deprecated.html.$1" + "name": "invalid.deprecated.entity.other.attribute-name.html invalid.deprecated.feConvolveMatrix.$1" }, "3": { "name": "punctuation.separator.key-value.html punctuation.separator.key-value.html-template.ng" } } }, + { + "include": "#svg-non-string-attributes" + }, { "include": "#tag-stuff" } ] }, - "tag-deprecated-attribute-input": { - "begin": "(<\\/?)(input)(?!-)\\b(:)?([\\w\\-\\_$]+)?", + "tag-deprecated-svg-attribute-mpath": { + "begin": "(<\\/?)((?i:mpath))\\b(?![\\w-])(:)?([\\w\\-\\_$]+)?\\b", + "comment": "This refers only for the mpath element and it's attributes when within a SVG element", "end": "(\\/?>)", "beginCaptures": { "0": { - "name": "meta.tag.structure.input.void.html" + "name": "meta.tag.inline.svg.$2.start.html" }, "1": { "name": "punctuation.definition.tag.begin.html" }, "2": { - "name": "entity.name.tag.html html-template.tag.html" + "name": "entity.name.tag.html html-template.tag.svg" }, "3": { "name": "entity.name.tag.html html-template.ng.tag.colon" @@ -7373,9 +7300,10 @@ "name": "entity.name.tag.html html-template.ng.tag.suffix" } }, + "name": "meta.element.inline.svg.html", "endCaptures": { "0": { - "name": "meta.tag.structure.input.void.html" + "name": "meta.tag.inline.svg.$2.end.html" }, "1": { "name": "punctuation.definition.tag.end.html" @@ -7383,34 +7311,38 @@ }, "patterns": [ { - "name": "meta.attribute.$1.html", - "match": "[\\s\\n\\r\\t]*(\\b(align)\\b)(=)?", + "name": "meta.attribute.$1.svg", + "match": "[\\s\\n\\r\\t]*(\\b(xlink:arcrole|xlink:href|xlink:title|xlink:type|xml:space|xml:lang|xml:base)\\b)(=)?", "captures": { "2": { - "name": "invalid.deprecated.entity.other.attribute-name.html invalid.deprecated.input.$1" + "name": "invalid.deprecated.entity.other.attribute-name.html invalid.deprecated.mpath.$1" }, "3": { "name": "punctuation.separator.key-value.html punctuation.separator.key-value.html-template.ng" } } }, + { + "include": "#svg-non-string-attributes" + }, { "include": "#tag-stuff" } ] }, - "tag-deprecated-attribute-legend": { - "begin": "(<\\/?)(legend)(?!-)\\b(:)?([\\w\\-\\_$]+)?", + "tag-deprecated-svg-attribute-set": { + "begin": "(<\\/?)((?i:set))\\b(?![\\w-])(:)?([\\w\\-\\_$]+)?\\b", + "comment": "This refers only for the set element and it's attributes when within a SVG element", "end": "(\\/?>)", "beginCaptures": { "0": { - "name": "meta.tag.structure.legend.start.html" + "name": "meta.tag.inline.svg.$2.start.html" }, "1": { "name": "punctuation.definition.tag.begin.html" }, "2": { - "name": "entity.name.tag.html html-template.tag.html" + "name": "entity.name.tag.html html-template.tag.svg" }, "3": { "name": "entity.name.tag.html html-template.ng.tag.colon" @@ -7419,9 +7351,10 @@ "name": "entity.name.tag.html html-template.ng.tag.suffix" } }, + "name": "meta.element.inline.svg.html", "endCaptures": { "0": { - "name": "meta.tag.structure.legend.end.html" + "name": "meta.tag.inline.svg.$2.end.html" }, "1": { "name": "punctuation.definition.tag.end.html" @@ -7429,34 +7362,38 @@ }, "patterns": [ { - "name": "meta.attribute.$1.html", - "match": "[\\s\\n\\r\\t]*(\\b(align)\\b)(=)?", + "name": "meta.attribute.$1.svg", + "match": "[\\s\\n\\r\\t]*(\\b(attributeType|requiredFeatures|xlink:arcrole|xlink:href|xlink:title|xlink:type|xml:space|xml:lang|xml:base)\\b)(=)?", "captures": { "2": { - "name": "invalid.deprecated.entity.other.attribute-name.html invalid.deprecated.legend.$1" + "name": "invalid.deprecated.entity.other.attribute-name.html invalid.deprecated.set.$1" }, "3": { "name": "punctuation.separator.key-value.html punctuation.separator.key-value.html-template.ng" } } }, + { + "include": "#svg-non-string-attributes" + }, { "include": "#tag-stuff" } ] }, - "tag-deprecated-attribute-li": { - "begin": "(<\\/?)(li)(?!-)\\b(:)?([\\w\\-\\_$]+)?", + "tag-deprecated-svg-attribute-animateMotion": { + "begin": "(<\\/?)((?i:animateMotion))\\b(?![\\w-])(:)?([\\w\\-\\_$]+)?\\b", + "comment": "This refers only for the animateMotion element and it's attributes when within a SVG element", "end": "(\\/?>)", "beginCaptures": { "0": { - "name": "meta.tag.structure.li.start.html" + "name": "meta.tag.structure.svg.$2.start.html" }, "1": { "name": "punctuation.definition.tag.begin.html" }, "2": { - "name": "entity.name.tag.html html-template.tag.html" + "name": "entity.name.tag.html html-template.tag.svg" }, "3": { "name": "entity.name.tag.html html-template.ng.tag.colon" @@ -7465,9 +7402,10 @@ "name": "entity.name.tag.html html-template.ng.tag.suffix" } }, + "name": "meta.element.structure.svg.html", "endCaptures": { "0": { - "name": "meta.tag.structure.li.end.html" + "name": "meta.tag.structure.svg.$2.end.html" }, "1": { "name": "punctuation.definition.tag.end.html" @@ -7475,34 +7413,38 @@ }, "patterns": [ { - "name": "meta.attribute.$1.html", - "match": "[\\s\\n\\r\\t]*(\\b(type)\\b)(=)?", + "name": "meta.attribute.$1.svg", + "match": "[\\s\\n\\r\\t]*(\\b(requiredFeatures|requiredFeatures|xlink:arcrole|xlink:href|xlink:title|xlink:type|xml:space|xml:lang|xml:base)\\b)(=)?", "captures": { "2": { - "name": "invalid.deprecated.entity.other.attribute-name.html invalid.deprecated.li.$1" + "name": "invalid.deprecated.entity.other.attribute-name.html invalid.deprecated.animateMotion.$1" }, "3": { "name": "punctuation.separator.key-value.html punctuation.separator.key-value.html-template.ng" } } }, + { + "include": "#svg-non-string-attributes" + }, { "include": "#tag-stuff" } ] }, - "tag-deprecated-attribute-link": { - "begin": "(<\\/?)(link)(?!-)\\b(:)?([\\w\\-\\_$]+)?", + "tag-deprecated-svg-attribute-clipPath": { + "begin": "(<\\/?)((?i:clipPath))\\b(?![\\w-])(:)?([\\w\\-\\_$]+)?\\b", + "comment": "This refers only for the clipPath element and it's attributes when within a SVG element", "end": "(\\/?>)", "beginCaptures": { "0": { - "name": "meta.tag.metadata.link.void.html" + "name": "meta.tag.structure.svg.$2.start.html" }, "1": { "name": "punctuation.definition.tag.begin.html" }, "2": { - "name": "entity.name.tag.html html-template.tag.html" + "name": "entity.name.tag.html html-template.tag.svg" }, "3": { "name": "entity.name.tag.html html-template.ng.tag.colon" @@ -7511,9 +7453,10 @@ "name": "entity.name.tag.html html-template.ng.tag.suffix" } }, + "name": "meta.element.structure.svg.html", "endCaptures": { "0": { - "name": "meta.tag.metadata.link.void.html" + "name": "meta.tag.structure.svg.$2.end.html" }, "1": { "name": "punctuation.definition.tag.end.html" @@ -7521,40 +7464,38 @@ }, "patterns": [ { - "name": "meta.attribute.$1.html", - "match": "[\\s\\n\\r\\t]*(\\b(charset|rev|target)\\b)(=)?", + "name": "meta.attribute.$1.svg", + "match": "[\\s\\n\\r\\t]*(\\b(requiredFeatures|xml:space|xml:lang|xml:base)\\b)(=)?", "captures": { "2": { - "name": "invalid.deprecated.entity.other.attribute-name.html invalid.deprecated.link.$1" + "name": "invalid.deprecated.entity.other.attribute-name.html invalid.deprecated.clipPath.$1" }, "3": { "name": "punctuation.separator.key-value.html punctuation.separator.key-value.html-template.ng" - } - } - }, - { - "include": "#style-type-attribute" + } + } }, { - "include": "#link-type-attribute" + "include": "#svg-non-string-attributes" }, { "include": "#tag-stuff" } ] }, - "tag-deprecated-attribute-menu": { - "begin": "(<\\/?)(menu)(?!-)\\b(:)?([\\w\\-\\_$]+)?", + "tag-deprecated-svg-attribute-defs": { + "begin": "(<\\/?)((?i:defs))\\b(?![\\w-])(:)?([\\w\\-\\_$]+)?\\b", + "comment": "This refers only for the defs element and it's attributes when within a SVG element", "end": "(\\/?>)", "beginCaptures": { "0": { - "name": "meta.tag.structure.menu.start.html" + "name": "meta.tag.structure.svg.$2.start.html" }, "1": { "name": "punctuation.definition.tag.begin.html" }, "2": { - "name": "entity.name.tag.html html-template.tag.html" + "name": "entity.name.tag.html html-template.tag.svg" }, "3": { "name": "entity.name.tag.html html-template.ng.tag.colon" @@ -7563,9 +7504,10 @@ "name": "entity.name.tag.html html-template.ng.tag.suffix" } }, + "name": "meta.element.structure.svg.html", "endCaptures": { "0": { - "name": "meta.tag.structure.menu.end.html" + "name": "meta.tag.structure.svg.$2.end.html" }, "1": { "name": "punctuation.definition.tag.end.html" @@ -7573,34 +7515,38 @@ }, "patterns": [ { - "name": "meta.attribute.$1.html", - "match": "[\\s\\n\\r\\t]*(\\b(compact)\\b)(=)?", + "name": "meta.attribute.$1.svg", + "match": "[\\s\\n\\r\\t]*(\\b(requiredFeatures|enable-background|xml:space|xml:lang|xml:base)\\b)(=)?", "captures": { "2": { - "name": "invalid.deprecated.entity.other.attribute-name.html invalid.deprecated.menu.$1" + "name": "invalid.deprecated.entity.other.attribute-name.html invalid.deprecated.defs.$1" }, "3": { "name": "punctuation.separator.key-value.html punctuation.separator.key-value.html-template.ng" } } }, + { + "include": "#svg-non-string-attributes" + }, { "include": "#tag-stuff" } ] }, - "tag-deprecated-attribute-ol": { - "begin": "(<\\/?)(ol)(?!-)\\b(:)?([\\w\\-\\_$]+)?", + "tag-deprecated-svg-attribute-feDiffuseLighting": { + "begin": "(<\\/?)((?i:feDiffuseLighting))\\b(?![\\w-])(:)?([\\w\\-\\_$]+)?\\b", + "comment": "This refers only for the feDiffuseLighting element and it's attributes when within a SVG element", "end": "(\\/?>)", "beginCaptures": { "0": { - "name": "meta.tag.structure.ol.start.html" + "name": "meta.tag.structure.svg.$2.start.html" }, "1": { "name": "punctuation.definition.tag.begin.html" }, "2": { - "name": "entity.name.tag.html html-template.tag.html" + "name": "entity.name.tag.html html-template.tag.svg" }, "3": { "name": "entity.name.tag.html html-template.ng.tag.colon" @@ -7609,9 +7555,10 @@ "name": "entity.name.tag.html html-template.ng.tag.suffix" } }, + "name": "meta.element.structure.svg.html", "endCaptures": { "0": { - "name": "meta.tag.structure.ol.end.html" + "name": "meta.tag.structure.svg.$2.end.html" }, "1": { "name": "punctuation.definition.tag.end.html" @@ -7619,34 +7566,38 @@ }, "patterns": [ { - "name": "meta.attribute.$1.html", - "match": "[\\s\\n\\r\\t]*(\\b(compact|type)\\b)(=)?", + "name": "meta.attribute.$1.svg", + "match": "[\\s\\n\\r\\t]*(\\b(kernelUnitLength|xml:space|xml:lang|xml:base)\\b)(=)?", "captures": { "2": { - "name": "invalid.deprecated.entity.other.attribute-name.html invalid.deprecated.ol.$1" + "name": "invalid.deprecated.entity.other.attribute-name.html invalid.deprecated.feDiffuseLighting.$1" }, "3": { "name": "punctuation.separator.key-value.html punctuation.separator.key-value.html-template.ng" } } }, + { + "include": "#svg-non-string-attributes" + }, { "include": "#tag-stuff" } ] }, - "tag-deprecated-attribute-p": { - "begin": "(<\\/?)(p)(?!-)\\b(:)?([\\w\\-\\_$]+)?", + "tag-deprecated-svg-attribute-feSpecularLighting": { + "begin": "(<\\/?)((?i:feSpecularLighting))\\b(?![\\w-])(:)?([\\w\\-\\_$]+)?\\b", + "comment": "This refers only for the feSpecularLighting element and it's attributes when within a SVG element", "end": "(\\/?>)", "beginCaptures": { "0": { - "name": "meta.tag.structure.p.start.html" + "name": "meta.tag.structure.svg.$2.start.html" }, "1": { "name": "punctuation.definition.tag.begin.html" }, "2": { - "name": "entity.name.tag.html html-template.tag.html" + "name": "entity.name.tag.html html-template.tag.svg" }, "3": { "name": "entity.name.tag.html html-template.ng.tag.colon" @@ -7655,9 +7606,10 @@ "name": "entity.name.tag.html html-template.ng.tag.suffix" } }, + "name": "meta.element.structure.svg.html", "endCaptures": { "0": { - "name": "meta.tag.structure.p.end.html" + "name": "meta.tag.structure.svg.$2.end.html" }, "1": { "name": "punctuation.definition.tag.end.html" @@ -7665,34 +7617,38 @@ }, "patterns": [ { - "name": "meta.attribute.$1.html", - "match": "[\\s\\n\\r\\t]*(\\b(align)\\b)(=)?", + "name": "meta.attribute.$1.svg", + "match": "[\\s\\n\\r\\t]*(\\b(kernelUnitLength|xml:space|xml:lang|xml:base)\\b)(=)?", "captures": { "2": { - "name": "invalid.deprecated.entity.other.attribute-name.html invalid.deprecated.p.$1" + "name": "invalid.deprecated.entity.other.attribute-name.html invalid.deprecated.feSpecularLighting.$1" }, "3": { "name": "punctuation.separator.key-value.html punctuation.separator.key-value.html-template.ng" } } }, + { + "include": "#svg-non-string-attributes" + }, { "include": "#tag-stuff" } ] }, - "tag-deprecated-attribute-pre": { - "begin": "(<\\/?)(pre)(?!-)\\b(:)?([\\w\\-\\_$]+)?", + "tag-deprecated-svg-attribute-filter": { + "begin": "(<\\/?)((?i:filter))\\b(?![\\w-])(:)?([\\w\\-\\_$]+)?\\b", + "comment": "This refers only for the filter element and it's attributes when within a SVG element", "end": "(\\/?>)", "beginCaptures": { "0": { - "name": "meta.tag.structure.pre.start.html" + "name": "meta.tag.structure.svg.$2.start.html" }, "1": { "name": "punctuation.definition.tag.begin.html" }, "2": { - "name": "entity.name.tag.html html-template.tag.html" + "name": "entity.name.tag.html html-template.tag.svg" }, "3": { "name": "entity.name.tag.html html-template.ng.tag.colon" @@ -7701,9 +7657,10 @@ "name": "entity.name.tag.html html-template.ng.tag.suffix" } }, + "name": "meta.element.structure.svg.html", "endCaptures": { "0": { - "name": "meta.tag.structure.pre.end.html" + "name": "meta.tag.structure.svg.$2.end.html" }, "1": { "name": "punctuation.definition.tag.end.html" @@ -7711,34 +7668,38 @@ }, "patterns": [ { - "name": "meta.attribute.$1.html", - "match": "[\\s\\n\\r\\t]*(\\b(width)\\b)(=)?", + "name": "meta.attribute.$1.svg", + "match": "[\\s\\n\\r\\t]*(\\b(filterRes|xlink:arcrole|xlink:href|xlink:title|xlink:type|xml:space|xml:lang|xml:base)\\b)(=)?", "captures": { "2": { - "name": "invalid.deprecated.entity.other.attribute-name.html invalid.deprecated.pre.$1" + "name": "invalid.deprecated.entity.other.attribute-name.html invalid.deprecated.filter.$1" }, "3": { "name": "punctuation.separator.key-value.html punctuation.separator.key-value.html-template.ng" } } }, + { + "include": "#svg-non-string-attributes" + }, { "include": "#tag-stuff" } ] }, - "tag-deprecated-attribute-table": { - "begin": "(<\\/?)(table)(?!-)\\b(:)?([\\w\\-\\_$]+)?", + "tag-deprecated-svg-attribute-g": { + "begin": "(<\\/?)((?i:g))\\b(?![\\w-])(:)?([\\w\\-\\_$]+)?\\b", + "comment": "This refers only for the g element and it's attributes when within a SVG element", "end": "(\\/?>)", "beginCaptures": { "0": { - "name": "meta.tag.structure.table.start.html" + "name": "meta.tag.structure.svg.$2.start.html" }, "1": { "name": "punctuation.definition.tag.begin.html" }, "2": { - "name": "entity.name.tag.html html-template.tag.html" + "name": "entity.name.tag.html html-template.tag.svg" }, "3": { "name": "entity.name.tag.html html-template.ng.tag.colon" @@ -7747,9 +7708,10 @@ "name": "entity.name.tag.html html-template.ng.tag.suffix" } }, + "name": "meta.element.structure.svg.html", "endCaptures": { "0": { - "name": "meta.tag.structure.table.end.html" + "name": "meta.tag.structure.svg.$2.end.html" }, "1": { "name": "punctuation.definition.tag.end.html" @@ -7757,34 +7719,38 @@ }, "patterns": [ { - "name": "meta.attribute.$1.html", - "match": "[\\s\\n\\r\\t]*(\\b(bgcolor|border|cellpadding|cellspacing|frame|rules|scheme|width)\\b)(=)?", + "name": "meta.attribute.$1.svg", + "match": "[\\s\\n\\r\\t]*(\\b(requiredFeatures|enable-background|xml:space|xml:lang|xml:base)\\b)(=)?", "captures": { "2": { - "name": "invalid.deprecated.entity.other.attribute-name.html invalid.deprecated.table.$1" + "name": "invalid.deprecated.entity.other.attribute-name.html invalid.deprecated.g.$1" }, "3": { "name": "punctuation.separator.key-value.html punctuation.separator.key-value.html-template.ng" } } }, + { + "include": "#svg-non-string-attributes" + }, { "include": "#tag-stuff" } ] }, - "tag-deprecated-attribute-tbody": { - "begin": "(<\\/?)(tbody)(?!-)\\b(:)?([\\w\\-\\_$]+)?", + "tag-deprecated-svg-attribute-linearGradient": { + "begin": "(<\\/?)((?i:linearGradient))\\b(?![\\w-])(:)?([\\w\\-\\_$]+)?\\b", + "comment": "This refers only for the linearGradient element and it's attributes when within a SVG element", "end": "(\\/?>)", "beginCaptures": { "0": { - "name": "meta.tag.structure.tbody.start.html" + "name": "meta.tag.structure.svg.$2.start.html" }, "1": { "name": "punctuation.definition.tag.begin.html" }, "2": { - "name": "entity.name.tag.html html-template.tag.html" + "name": "entity.name.tag.html html-template.tag.svg" }, "3": { "name": "entity.name.tag.html html-template.ng.tag.colon" @@ -7793,9 +7759,10 @@ "name": "entity.name.tag.html html-template.ng.tag.suffix" } }, + "name": "meta.element.structure.svg.html", "endCaptures": { "0": { - "name": "meta.tag.structure.tbody.end.html" + "name": "meta.tag.structure.svg.$2.end.html" }, "1": { "name": "punctuation.definition.tag.end.html" @@ -7803,34 +7770,38 @@ }, "patterns": [ { - "name": "meta.attribute.$1.html", - "match": "[\\s\\n\\r\\t]*(\\b(align|char|charoff|valign)\\b)(=)?", + "name": "meta.attribute.$1.svg", + "match": "[\\s\\n\\r\\t]*(\\b(xlink:arcrole|xlink:href|xlink:title|xlink:type|xml:space|xml:lang|xml:base)\\b)(=)?", "captures": { "2": { - "name": "invalid.deprecated.entity.other.attribute-name.html invalid.deprecated.tbody.$1" + "name": "invalid.deprecated.entity.other.attribute-name.html invalid.deprecated.linearGradient.$1" }, "3": { "name": "punctuation.separator.key-value.html punctuation.separator.key-value.html-template.ng" } } }, + { + "include": "#svg-non-string-attributes" + }, { "include": "#tag-stuff" } ] }, - "tag-deprecated-attribute-td": { - "begin": "(<\\/?)(td)(?!-)\\b(:)?([\\w\\-\\_$]+)?", + "tag-deprecated-svg-attribute-marker": { + "begin": "(<\\/?)((?i:marker))\\b(?![\\w-])(:)?([\\w\\-\\_$]+)?\\b", + "comment": "This refers only for the a element and it's attributes when within a SVG element", "end": "(\\/?>)", "beginCaptures": { "0": { - "name": "meta.tag.structure.td.start.html" + "name": "meta.tag.structure.svg.$2.start.html" }, "1": { "name": "punctuation.definition.tag.begin.html" }, "2": { - "name": "entity.name.tag.html html-template.tag.html" + "name": "entity.name.tag.html html-template.tag.svg" }, "3": { "name": "entity.name.tag.html html-template.ng.tag.colon" @@ -7839,9 +7810,10 @@ "name": "entity.name.tag.html html-template.ng.tag.suffix" } }, + "name": "meta.element.structure.svg.html", "endCaptures": { "0": { - "name": "meta.tag.structure.td.end.html" + "name": "meta.tag.structure.svg.$2.end.html" }, "1": { "name": "punctuation.definition.tag.end.html" @@ -7849,34 +7821,38 @@ }, "patterns": [ { - "name": "meta.attribute.$1.html", - "match": "[\\s\\n\\r\\t]*(\\b(abbr|align|axis|bgcolor|char|charoff|nowrap|scope|valign|width)\\b)(=)?", + "name": "meta.attribute.$1.svg", + "match": "[\\s\\n\\r\\t]*(\\b(enable-background|clip|xml:space|xml:lang|xml:base)\\b)(=)?", "captures": { "2": { - "name": "invalid.deprecated.entity.other.attribute-name.html invalid.deprecated.td.$1" + "name": "invalid.deprecated.entity.other.attribute-name.html invalid.deprecated.marker.$1" }, "3": { "name": "punctuation.separator.key-value.html punctuation.separator.key-value.html-template.ng" } } }, + { + "include": "#svg-non-string-attributes" + }, { "include": "#tag-stuff" } ] }, - "tag-deprecated-attribute-tfoot": { - "begin": "(<\\/?)(tfoot)(?!-)\\b(:)?([\\w\\-\\_$]+)?", + "tag-deprecated-svg-attribute-mask": { + "begin": "(<\\/?)((?i:mask))\\b(?![\\w-])(:)?([\\w\\-\\_$]+)?\\b", + "comment": "This refers only for the mask element and it's attributes when within a SVG element", "end": "(\\/?>)", "beginCaptures": { "0": { - "name": "meta.tag.structure.tfoot.start.html" + "name": "meta.tag.structure.svg.$2.start.html" }, "1": { "name": "punctuation.definition.tag.begin.html" }, "2": { - "name": "entity.name.tag.html html-template.tag.html" + "name": "entity.name.tag.html html-template.tag.svg" }, "3": { "name": "entity.name.tag.html html-template.ng.tag.colon" @@ -7885,9 +7861,10 @@ "name": "entity.name.tag.html html-template.ng.tag.suffix" } }, + "name": "meta.element.structure.svg.html", "endCaptures": { "0": { - "name": "meta.tag.structure.tfoot.end.html" + "name": "meta.tag.structure.svg.$2.end.html" }, "1": { "name": "punctuation.definition.tag.end.html" @@ -7895,34 +7872,38 @@ }, "patterns": [ { - "name": "meta.attribute.$1.html", - "match": "[\\s\\n\\r\\t]*(\\b(align|char|charoff|valign)\\b)(=)?", + "name": "meta.attribute.$1.svg", + "match": "[\\s\\n\\r\\t]*(\\b(requiredFeatures|enable-background|xml:space|xml:lang|xml:base)\\b)(=)?", "captures": { "2": { - "name": "invalid.deprecated.entity.other.attribute-name.html invalid.deprecated.tfoot.$1" + "name": "invalid.deprecated.entity.other.attribute-name.html invalid.deprecated.mask.$1" }, "3": { "name": "punctuation.separator.key-value.html punctuation.separator.key-value.html-template.ng" } } }, + { + "include": "#svg-non-string-attributes" + }, { "include": "#tag-stuff" } ] }, - "tag-deprecated-attribute-th": { - "begin": "(<\\/?)(th)(?!-)\\b(:)?([\\w\\-\\_$]+)?", + "tag-deprecated-svg-attribute-pattern": { + "begin": "(<\\/?)((?i:pattern))\\b(?![\\w-])(:)?([\\w\\-\\_$]+)?\\b", + "comment": "This refers only for the pattern element and it's attributes when within a SVG element", "end": "(\\/?>)", "beginCaptures": { "0": { - "name": "meta.tag.structure.th.start.html" + "name": "meta.tag.structure.svg.$2.start.html" }, "1": { "name": "punctuation.definition.tag.begin.html" }, "2": { - "name": "entity.name.tag.html html-template.tag.html" + "name": "entity.name.tag.html html-template.tag.svg" }, "3": { "name": "entity.name.tag.html html-template.ng.tag.colon" @@ -7931,9 +7912,10 @@ "name": "entity.name.tag.html html-template.ng.tag.suffix" } }, + "name": "meta.element.structure.svg.html", "endCaptures": { "0": { - "name": "meta.tag.structure.th.end.html" + "name": "meta.tag.structure.svg.$2.end.html" }, "1": { "name": "punctuation.definition.tag.end.html" @@ -7941,34 +7923,38 @@ }, "patterns": [ { - "name": "meta.attribute.$1.html", - "match": "[\\s\\n\\r\\t]*(\\b(align|bgcolor|char|charoff|nowrap|valign|width)\\b)(=)?", + "name": "meta.attribute.$1.svg", + "match": "[\\s\\n\\r\\t]*(\\b(clip|enable-background|requiredFeatures|xlink:arcrole|xlink:href|xlink:title|xlink:type|xml:space|xml:lang|xml:base)\\b)(=)?", "captures": { "2": { - "name": "invalid.deprecated.entity.other.attribute-name.html invalid.deprecated.th.$1" + "name": "invalid.deprecated.entity.other.attribute-name.html invalid.deprecated.pattern.$1" }, "3": { "name": "punctuation.separator.key-value.html punctuation.separator.key-value.html-template.ng" } } }, + { + "include": "#svg-non-string-attributes" + }, { "include": "#tag-stuff" } ] }, - "tag-deprecated-attribute-thead": { - "begin": "(<\\/?)(thead)(?!-)\\b(:)?([\\w\\-\\_$]+)?", + "tag-deprecated-svg-attribute-switch": { + "begin": "(<\\/?)((?i:switch))\\b(?![\\w-])(:)?([\\w\\-\\_$]+)?\\b", + "comment": "This refers only for the switch element and it's attributes when within a SVG element", "end": "(\\/?>)", "beginCaptures": { "0": { - "name": "meta.tag.structure.thead.start.html" + "name": "meta.tag.structure.svg.$2.start.html" }, "1": { "name": "punctuation.definition.tag.begin.html" }, "2": { - "name": "entity.name.tag.html html-template.tag.html" + "name": "entity.name.tag.html html-template.tag.svg" }, "3": { "name": "entity.name.tag.html html-template.ng.tag.colon" @@ -7977,9 +7963,10 @@ "name": "entity.name.tag.html html-template.ng.tag.suffix" } }, + "name": "meta.element.structure.svg.html", "endCaptures": { "0": { - "name": "meta.tag.structure.thead.end.html" + "name": "meta.tag.structure.svg.$2.end.html" }, "1": { "name": "punctuation.definition.tag.end.html" @@ -7987,34 +7974,38 @@ }, "patterns": [ { - "name": "meta.attribute.$1.html", - "match": "[\\s\\n\\r\\t]*(\\b(align|char|charoff|valign)\\b)(=)?", + "name": "meta.attribute.$1.svg", + "match": "[\\s\\n\\r\\t]*(\\b(enable-background|requiredFeatures|xml:space|xml:lang|xml:base)\\b)(=)?", "captures": { "2": { - "name": "invalid.deprecated.entity.other.attribute-name.html invalid.deprecated.thead.$1" + "name": "invalid.deprecated.entity.other.attribute-name.html invalid.deprecated.switch.$1" }, "3": { "name": "punctuation.separator.key-value.html punctuation.separator.key-value.html-template.ng" } } }, + { + "include": "#svg-non-string-attributes" + }, { "include": "#tag-stuff" } ] }, - "tag-deprecated-attribute-tr": { - "begin": "(<\\/?)(tr)(?!-)\\b(:)?([\\w\\-\\_$]+)?", + "tag-deprecated-svg-attribute-text": { + "begin": "(<\\/?)((?i:text))\\b(?![\\w-])(:)?([\\w\\-\\_$]+)?\\b", + "comment": "This refers only for the text element and it's attributes when within a SVG element", "end": "(\\/?>)", "beginCaptures": { "0": { - "name": "meta.tag.structure.tr.start.html" + "name": "meta.tag.structure.svg.$2.start.html" }, "1": { "name": "punctuation.definition.tag.begin.html" }, "2": { - "name": "entity.name.tag.html html-template.tag.html" + "name": "entity.name.tag.html html-template.tag.svg" }, "3": { "name": "entity.name.tag.html html-template.ng.tag.colon" @@ -8023,9 +8014,10 @@ "name": "entity.name.tag.html html-template.ng.tag.suffix" } }, + "name": "meta.element.structure.svg.html", "endCaptures": { "0": { - "name": "meta.tag.structure.tr.end.html" + "name": "meta.tag.structure.svg.$2.end.html" }, "1": { "name": "punctuation.definition.tag.end.html" @@ -8033,34 +8025,38 @@ }, "patterns": [ { - "name": "meta.attribute.$1.html", - "match": "[\\s\\n\\r\\t]*(\\b(align|bgcolor|char|charoff|valign)\\b)(=)?", + "name": "meta.attribute.$1.svg", + "match": "[\\s\\n\\r\\t]*(\\b(requiredFeatures|kerning|glyph-orientation-vertical|glyph-orientation-horizontal|xml:space|xml:lang|xml:base)\\b)(=)?", "captures": { "2": { - "name": "invalid.deprecated.entity.other.attribute-name.html invalid.deprecated.tr.$1" + "name": "invalid.deprecated.entity.other.attribute-name.html invalid.deprecated.text.$1" }, "3": { "name": "punctuation.separator.key-value.html punctuation.separator.key-value.html-template.ng" } } }, + { + "include": "#svg-non-string-attributes" + }, { "include": "#tag-stuff" } ] }, - "tag-deprecated-attribute-ul": { - "begin": "(<\\/?)(ul)(?!-)\\b(:)?([\\w\\-\\_$]+)?", + "tag-deprecated-svg-attribute-textPath": { + "begin": "(<\\/?)((?i:textPath))\\b(?![\\w-])(:)?([\\w\\-\\_$]+)?\\b", + "comment": "This refers only for the textPath element and it's attributes when within a SVG element", "end": "(\\/?>)", "beginCaptures": { "0": { - "name": "meta.tag.structure.ul.start.html" + "name": "meta.tag.structure.svg.$2.start.html" }, "1": { "name": "punctuation.definition.tag.begin.html" }, "2": { - "name": "entity.name.tag.html html-template.tag.html" + "name": "entity.name.tag.html html-template.tag.svg" }, "3": { "name": "entity.name.tag.html html-template.ng.tag.colon" @@ -8069,9 +8065,10 @@ "name": "entity.name.tag.html html-template.ng.tag.suffix" } }, + "name": "meta.element.structure.svg.html", "endCaptures": { "0": { - "name": "meta.tag.structure.ul.end.html" + "name": "meta.tag.structure.svg.$2.end.html" }, "1": { "name": "punctuation.definition.tag.end.html" @@ -8079,17 +8076,20 @@ }, "patterns": [ { - "name": "meta.attribute.$1.html", - "match": "[\\s\\n\\r\\t]*(\\b(compact|type)\\b)(=)?", + "name": "meta.attribute.$1.svg", + "match": "[\\s\\n\\r\\t]*(\\b(glyph-orientation-horizontal|glyph-orientation-vertical|requiredFeatures|kerning|xlink:arcrole|xlink:href|xlink:title|xlink:type|xml:space|xml:lang|xml:base)\\b)(=)?", "captures": { "2": { - "name": "invalid.deprecated.entity.other.attribute-name.html invalid.deprecated.ul.$1" + "name": "invalid.deprecated.entity.other.attribute-name.html invalid.deprecated.textPath.$1" }, "3": { "name": "punctuation.separator.key-value.html punctuation.separator.key-value.html-template.ng" } } }, + { + "include": "#svg-non-string-attributes" + }, { "include": "#tag-stuff" } diff --git a/test/test.component.html b/test/test.component.html index 6c02caa..8127e19 100644 --- a/test/test.component.html +++ b/test/test.component.html @@ -1,24 +1,25 @@ -'keyword.operator.punctuation': # -'constant.character.entity.html': ## -'support.type.object.html-attribute': #81A1C1 + + + -'entity.name.tag.other.html': #81A1C1 -'constant.numeric.angular-directive': #B48EAD -'keyword.operator.entity.html': #B48EAD + + +
  -'string.regexp': #EBCB8B + {{ test }} -'keyword.operator.expression.let.js': #81A1C1 +
+/test/ DOCTYPE