1161 lines
28 KiB
JSON
1161 lines
28 KiB
JSON
{
|
|
"name": "svelte",
|
|
"scopeName": "source.svelte",
|
|
"fileTypes": ["svelte"],
|
|
"uuid": "7582b62f-51d9-4a84-8c8d-fc189530faf6",
|
|
"injections": {
|
|
"L:(meta.script.svelte | meta.style.svelte) (meta.lang.js | meta.lang.javascript) - (meta source)": {
|
|
"patterns": [
|
|
{
|
|
"begin": "(?<=>)(?!</)",
|
|
"end": "(?=</)",
|
|
"name": "meta.embedded.block.svelte",
|
|
"contentName": "source.js",
|
|
"patterns": [
|
|
{
|
|
"include": "source.js"
|
|
}
|
|
]
|
|
}
|
|
]
|
|
},
|
|
"L:(meta.script.svelte | meta.style.svelte) (meta.lang.ts | meta.lang.typescript) - (meta source)": {
|
|
"patterns": [
|
|
{
|
|
"begin": "(?<=>)(?!</)",
|
|
"end": "(?=</)",
|
|
"name": "meta.embedded.block.svelte",
|
|
"contentName": "source.ts",
|
|
"patterns": [
|
|
{
|
|
"include": "source.ts"
|
|
}
|
|
]
|
|
}
|
|
]
|
|
},
|
|
"L:(meta.script.svelte | meta.style.svelte) meta.lang.coffee - (meta source)": {
|
|
"patterns": [
|
|
{
|
|
"begin": "(?<=>)(?!</)",
|
|
"end": "(?=</)",
|
|
"name": "meta.embedded.block.svelte",
|
|
"contentName": "source.coffee",
|
|
"patterns": [
|
|
{
|
|
"include": "source.coffee"
|
|
}
|
|
]
|
|
}
|
|
]
|
|
},
|
|
"L:meta.script.svelte - meta.lang - (meta source)": {
|
|
"patterns": [
|
|
{
|
|
"begin": "(?<=>)(?!</)",
|
|
"end": "(?=</)",
|
|
"name": "meta.embedded.block.svelte",
|
|
"contentName": "source.js",
|
|
"patterns": [
|
|
{
|
|
"include": "source.js"
|
|
}
|
|
]
|
|
}
|
|
]
|
|
},
|
|
"L:meta.style.svelte meta.lang.stylus - (meta source)": {
|
|
"patterns": [
|
|
{
|
|
"begin": "(?<=>)(?!</)",
|
|
"end": "(?=</)",
|
|
"name": "meta.embedded.block.svelte",
|
|
"contentName": "source.stylus",
|
|
"patterns": [
|
|
{
|
|
"include": "source.stylus"
|
|
}
|
|
]
|
|
}
|
|
]
|
|
},
|
|
"L:meta.style.svelte meta.lang.sass - (meta source)": {
|
|
"patterns": [
|
|
{
|
|
"begin": "(?<=>)(?!</)",
|
|
"end": "(?=</)",
|
|
"name": "meta.embedded.block.svelte",
|
|
"contentName": "source.sass",
|
|
"patterns": [
|
|
{
|
|
"include": "source.sass"
|
|
}
|
|
]
|
|
}
|
|
]
|
|
},
|
|
"L:meta.style.svelte meta.lang.css - (meta source)": {
|
|
"patterns": [
|
|
{
|
|
"begin": "(?<=>)(?!</)",
|
|
"end": "(?=</)",
|
|
"name": "meta.embedded.block.svelte",
|
|
"contentName": "source.css",
|
|
"patterns": [
|
|
{
|
|
"include": "source.css"
|
|
}
|
|
]
|
|
}
|
|
]
|
|
},
|
|
"L:meta.style.svelte meta.lang.scss - (meta source)": {
|
|
"patterns": [
|
|
{
|
|
"begin": "(?<=>)(?!</)",
|
|
"end": "(?=</)",
|
|
"name": "meta.embedded.block.svelte",
|
|
"contentName": "source.css.scss",
|
|
"patterns": [
|
|
{
|
|
"include": "source.css.scss"
|
|
}
|
|
]
|
|
}
|
|
]
|
|
},
|
|
"L:meta.style.svelte meta.lang.less - (meta source)": {
|
|
"patterns": [
|
|
{
|
|
"begin": "(?<=>)(?!</)",
|
|
"end": "(?=</)",
|
|
"name": "meta.embedded.block.svelte",
|
|
"contentName": "source.css.less",
|
|
"patterns": [
|
|
{
|
|
"include": "source.css.less"
|
|
}
|
|
]
|
|
}
|
|
]
|
|
},
|
|
"L:meta.style.svelte meta.lang.postcss - (meta source)": {
|
|
"patterns": [
|
|
{
|
|
"begin": "(?<=>)(?!</)",
|
|
"end": "(?=</)",
|
|
"name": "meta.embedded.block.svelte",
|
|
"contentName": "source.css.postcss",
|
|
"patterns": [
|
|
{
|
|
"include": "source.css.postcss"
|
|
}
|
|
]
|
|
}
|
|
]
|
|
},
|
|
"L:meta.style.svelte - meta.lang - (meta source)": {
|
|
"patterns": [
|
|
{
|
|
"begin": "(?<=>)(?!</)",
|
|
"end": "(?=</)",
|
|
"name": "meta.embedded.block.svelte",
|
|
"contentName": "source.css",
|
|
"patterns": [
|
|
{
|
|
"include": "source.css"
|
|
}
|
|
]
|
|
}
|
|
]
|
|
},
|
|
"L:meta.template.svelte meta.lang.pug - (meta source)": {
|
|
"patterns": [
|
|
{
|
|
"begin": "(?<=>)(?!</)",
|
|
"end": "(?=</)",
|
|
"name": "meta.embedded.block.svelte",
|
|
"contentName": "text.pug",
|
|
"patterns": [
|
|
{
|
|
"include": "text.pug"
|
|
}
|
|
]
|
|
}
|
|
]
|
|
},
|
|
"L:meta.template.svelte - meta.lang - (meta source)": {
|
|
"patterns": [
|
|
{
|
|
"begin": "(?<=>)\\s",
|
|
"end": "(?=</template)",
|
|
"patterns": [
|
|
{
|
|
"include": "#scope"
|
|
}
|
|
]
|
|
}
|
|
]
|
|
},
|
|
"L:(source.ts, source.js, source.coffee)": {
|
|
"patterns": [
|
|
{
|
|
"match": "(?<![_$./'\"[:alnum:]])\\$(?=[_[:alpha:]][_$[:alnum:]]*)",
|
|
"name": "punctuation.definition.variable.svelte"
|
|
},
|
|
{
|
|
"match": "(?<![_$./'\"[:alnum:]])(\\$\\$)(?=props|restProps|slots)",
|
|
"name": "punctuation.definition.variable.svelte"
|
|
}
|
|
]
|
|
}
|
|
},
|
|
"patterns": [
|
|
{
|
|
"include": "#scope"
|
|
}
|
|
],
|
|
"repository": {
|
|
"scope": {
|
|
"patterns": [
|
|
{
|
|
"include": "#comments"
|
|
},
|
|
{
|
|
"include": "#special-tags"
|
|
},
|
|
{
|
|
"include": "#tags"
|
|
},
|
|
{
|
|
"include": "#interpolation"
|
|
},
|
|
{
|
|
"begin": "(?<=>|})",
|
|
"end": "(?=<|{)",
|
|
"name": "text.svelte"
|
|
}
|
|
]
|
|
},
|
|
"comments": {
|
|
"begin": "<!--",
|
|
"end": "-->",
|
|
"captures": {
|
|
"0": {
|
|
"name": "punctuation.definition.comment.svelte"
|
|
}
|
|
},
|
|
"name": "comment.block.svelte",
|
|
"patterns": [
|
|
{
|
|
"begin": "(@)(component)",
|
|
"beginCaptures": {
|
|
"1": {
|
|
"name": "punctuation.definition.keyword.svelte"
|
|
},
|
|
"2": {
|
|
"name": "storage.type.class.component.svelte keyword.declaration.class.component.svelte"
|
|
}
|
|
},
|
|
"end": "(?=-->)",
|
|
"contentName": "comment.block.documentation.svelte",
|
|
"patterns": [
|
|
{
|
|
"match": ".*?(?=-->)",
|
|
"captures": {
|
|
"0": {
|
|
"patterns": [
|
|
{
|
|
"include": "text.html.markdown"
|
|
}
|
|
]
|
|
}
|
|
}
|
|
},
|
|
{
|
|
"include": "text.html.markdown"
|
|
}
|
|
]
|
|
},
|
|
{
|
|
"match": "\\G-?>|<!--(?!>)|<!-(?=-->)|--!>",
|
|
"name": "invalid.illegal.characters-not-allowed-here.svelte"
|
|
}
|
|
]
|
|
},
|
|
"destructuring": {
|
|
"patterns": [
|
|
{
|
|
"begin": "(?={)",
|
|
"end": "(?<=})",
|
|
"name": "meta.embedded.expression.svelte source.ts",
|
|
"patterns": [
|
|
{
|
|
"include": "source.ts#object-binding-pattern"
|
|
}
|
|
]
|
|
},
|
|
{
|
|
"begin": "(?=\\[)",
|
|
"end": "(?<=\\])",
|
|
"name": "meta.embedded.expression.svelte source.ts",
|
|
"patterns": [
|
|
{
|
|
"include": "source.ts#array-binding-pattern"
|
|
}
|
|
]
|
|
}
|
|
]
|
|
},
|
|
"destructuring-const": {
|
|
"patterns": [
|
|
{
|
|
"begin": "(?={)",
|
|
"end": "(?<=})",
|
|
"name": "meta.embedded.expression.svelte source.ts",
|
|
"patterns": [
|
|
{
|
|
"include": "source.ts#object-binding-pattern-const"
|
|
}
|
|
]
|
|
},
|
|
{
|
|
"begin": "(?=\\[)",
|
|
"end": "(?<=\\])",
|
|
"name": "meta.embedded.expression.svelte source.ts",
|
|
"patterns": [
|
|
{
|
|
"include": "source.ts#array-binding-pattern-const"
|
|
}
|
|
]
|
|
}
|
|
]
|
|
},
|
|
"interpolation": {
|
|
"patterns": [
|
|
{
|
|
"begin": "\\{",
|
|
"end": "\\}",
|
|
"beginCaptures": {
|
|
"0": {
|
|
"name": "punctuation.section.embedded.begin.svelte"
|
|
}
|
|
},
|
|
"endCaptures": {
|
|
"0": {
|
|
"name": "punctuation.section.embedded.end.svelte"
|
|
}
|
|
},
|
|
"contentName": "meta.embedded.expression.svelte source.ts",
|
|
"patterns": [
|
|
{
|
|
"begin": "\\G\\s*(?={)",
|
|
"end": "(?<=})",
|
|
"patterns": [
|
|
{
|
|
"include": "source.ts#object-literal"
|
|
}
|
|
]
|
|
},
|
|
{
|
|
"include": "source.ts"
|
|
}
|
|
]
|
|
}
|
|
]
|
|
},
|
|
"special-tags": {
|
|
"patterns": [
|
|
{
|
|
"include": "#special-tags-void"
|
|
},
|
|
{
|
|
"include": "#special-tags-block-begin"
|
|
},
|
|
{
|
|
"include": "#special-tags-block-end"
|
|
}
|
|
]
|
|
},
|
|
"special-tags-keywords": {
|
|
"match": "([#@/:])(else\\s+if|[a-z]*)",
|
|
"captures": {
|
|
"1": {
|
|
"name": "punctuation.definition.keyword.svelte"
|
|
},
|
|
"2": {
|
|
"patterns": [
|
|
{
|
|
"match": "if|else\\s+if|else",
|
|
"name": "keyword.control.conditional.svelte"
|
|
},
|
|
{
|
|
"match": "each|key",
|
|
"name": "keyword.control.svelte"
|
|
},
|
|
{
|
|
"match": "await|then|catch",
|
|
"name": "keyword.control.flow.svelte"
|
|
},
|
|
{
|
|
"match": "html",
|
|
"name": "keyword.other.svelte"
|
|
},
|
|
{
|
|
"match": "debug",
|
|
"name": "keyword.other.debugger.svelte"
|
|
},
|
|
{
|
|
"match": "const",
|
|
"name": "storage.type.svelte"
|
|
}
|
|
]
|
|
}
|
|
}
|
|
},
|
|
"special-tags-modes": {
|
|
"patterns": [
|
|
{
|
|
"begin": "(?<=(if|key|then|catch|html).*?)\\G",
|
|
"end": "(?=})",
|
|
"name": "meta.embedded.expression.svelte source.ts",
|
|
"patterns": [
|
|
{
|
|
"include": "source.ts"
|
|
}
|
|
]
|
|
},
|
|
{
|
|
"begin": "(?<=const.*?)\\G",
|
|
"end": "(?=})",
|
|
"patterns": [
|
|
{
|
|
"include": "#destructuring-const"
|
|
},
|
|
{
|
|
"begin": "\\G\\s*([_$[:alpha:]][_$[:alnum:]]+)\\s*",
|
|
"end": "(?=\\=)",
|
|
"beginCaptures": {
|
|
"1": {
|
|
"name": "variable.other.constant.svelte"
|
|
}
|
|
}
|
|
},
|
|
{
|
|
"begin": "(?=\\=)",
|
|
"name": "meta.embedded.expression.svelte source.ts",
|
|
"end": "(?=})",
|
|
"patterns": [
|
|
{
|
|
"include": "source.ts"
|
|
}
|
|
]
|
|
}
|
|
]
|
|
},
|
|
{
|
|
"begin": "(?<=each.*?)\\G",
|
|
"end": "(?=})",
|
|
"patterns": [
|
|
{
|
|
"begin": "\\G\\s*?(?=\\S)",
|
|
"end": "(?=(?:^\\s*|\\s+)(as))",
|
|
"contentName": "meta.embedded.expression.svelte source.ts",
|
|
"patterns": [
|
|
{
|
|
"include": "source.ts"
|
|
}
|
|
]
|
|
},
|
|
{
|
|
"begin": "(as)",
|
|
"beginCaptures": {
|
|
"1": {
|
|
"name": "keyword.control.as.svelte"
|
|
}
|
|
},
|
|
"end": "(?=})",
|
|
"patterns": [
|
|
{
|
|
"include": "#destructuring"
|
|
},
|
|
{
|
|
"begin": "\\(",
|
|
"end": "\\)|(?=})",
|
|
"captures": {
|
|
"0": {
|
|
"name": "meta.brace.round.svelte"
|
|
}
|
|
},
|
|
"contentName": "meta.embedded.expression.svelte source.ts",
|
|
"patterns": [
|
|
{
|
|
"include": "source.ts"
|
|
}
|
|
]
|
|
},
|
|
{
|
|
"match": "(\\s*([_$[:alpha:]][_$[:alnum:]]*)\\s*)",
|
|
"captures": {
|
|
"1": {
|
|
"name": "meta.embedded.expression.svelte source.ts",
|
|
"patterns": [
|
|
{
|
|
"include": "source.ts"
|
|
}
|
|
]
|
|
}
|
|
}
|
|
},
|
|
{
|
|
"match": ",",
|
|
"name": "punctuation.separator.svelte"
|
|
}
|
|
]
|
|
}
|
|
]
|
|
},
|
|
{
|
|
"begin": "(?<=await.*?)\\G",
|
|
"end": "(?=})",
|
|
"patterns": [
|
|
{
|
|
"begin": "\\G\\s*?(?=\\S)",
|
|
"end": "\\s+(then)|(?=})",
|
|
"endCaptures": {
|
|
"1": {
|
|
"name": "keyword.control.flow.svelte"
|
|
}
|
|
},
|
|
"contentName": "meta.embedded.expression.svelte source.ts",
|
|
"patterns": [
|
|
{
|
|
"include": "source.ts"
|
|
}
|
|
]
|
|
},
|
|
{
|
|
"begin": "(?<=then\\b)",
|
|
"end": "(?=})",
|
|
"contentName": "meta.embedded.expression.svelte source.ts",
|
|
"patterns": [
|
|
{
|
|
"include": "source.ts"
|
|
}
|
|
]
|
|
}
|
|
]
|
|
},
|
|
{
|
|
"begin": "(?<=debug.*?)\\G",
|
|
"end": "(?=})",
|
|
"patterns": [
|
|
{
|
|
"match": "[_$[:alpha:]][_$[:alnum:]]*",
|
|
"captures": {
|
|
"0": {
|
|
"name": "meta.embedded.expression.svelte source.ts",
|
|
"patterns": [
|
|
{
|
|
"include": "source.ts"
|
|
}
|
|
]
|
|
}
|
|
}
|
|
},
|
|
{
|
|
"match": ",",
|
|
"name": "punctuation.separator.svelte"
|
|
}
|
|
]
|
|
}
|
|
]
|
|
},
|
|
"special-tags-void": {
|
|
"begin": "({)\\s*((?:[@:])(else\\s+if|[a-z]*))",
|
|
"beginCaptures": {
|
|
"1": {
|
|
"name": "punctuation.definition.block.begin.svelte"
|
|
},
|
|
"2": {
|
|
"patterns": [
|
|
{
|
|
"include": "#special-tags-keywords"
|
|
}
|
|
]
|
|
}
|
|
},
|
|
"end": "\\}",
|
|
"endCaptures": {
|
|
"0": {
|
|
"name": "punctuation.definition.block.end.svelte"
|
|
}
|
|
},
|
|
"name": "meta.special.$3.svelte",
|
|
"patterns": [
|
|
{
|
|
"include": "#special-tags-modes"
|
|
}
|
|
]
|
|
},
|
|
"special-tags-block-begin": {
|
|
"begin": "({)\\s*(#([a-z]*))",
|
|
"end": "(})",
|
|
"name": "meta.special.$3.svelte meta.special.start.svelte",
|
|
"beginCaptures": {
|
|
"1": {
|
|
"name": "punctuation.definition.block.begin.svelte"
|
|
},
|
|
"2": {
|
|
"patterns": [
|
|
{
|
|
"include": "#special-tags-keywords"
|
|
}
|
|
]
|
|
}
|
|
},
|
|
"endCaptures": {
|
|
"0": {
|
|
"name": "punctuation.definition.block.end.svelte"
|
|
}
|
|
},
|
|
"patterns": [
|
|
{
|
|
"include": "#special-tags-modes"
|
|
}
|
|
]
|
|
},
|
|
"special-tags-block-end": {
|
|
"begin": "({)\\s*(/([a-z]*))",
|
|
"end": "(})",
|
|
"name": "meta.special.$3.svelte meta.special.end.svelte",
|
|
"beginCaptures": {
|
|
"1": {
|
|
"name": "punctuation.definition.block.begin.svelte"
|
|
},
|
|
"2": {
|
|
"patterns": [
|
|
{
|
|
"include": "#special-tags-keywords"
|
|
}
|
|
]
|
|
}
|
|
},
|
|
"endCaptures": {
|
|
"1": {
|
|
"name": "punctuation.definition.block.end.svelte"
|
|
}
|
|
}
|
|
},
|
|
"attributes": {
|
|
"patterns": [
|
|
{
|
|
"include": "#attributes-directives"
|
|
},
|
|
{
|
|
"include": "#attributes-keyvalue"
|
|
},
|
|
{
|
|
"include": "#attributes-interpolated"
|
|
}
|
|
]
|
|
},
|
|
"attributes-interpolated": {
|
|
"begin": "(?<!:|=)\\s*({)",
|
|
"end": "(\\})",
|
|
"captures": {
|
|
"1": {
|
|
"name": "entity.other.attribute-name.svelte"
|
|
}
|
|
},
|
|
"contentName": "meta.embedded.expression.svelte source.ts",
|
|
"patterns": [
|
|
{
|
|
"include": "source.ts"
|
|
}
|
|
]
|
|
},
|
|
"attributes-keyvalue": {
|
|
"begin": "((?:--)?[_$[:alpha:]][_\\-$[:alnum:]]*)",
|
|
"beginCaptures": {
|
|
"0": {
|
|
"patterns": [
|
|
{
|
|
"match": "--.*",
|
|
"name": "support.type.property-name.svelte"
|
|
},
|
|
{
|
|
"match": ".*",
|
|
"name": "entity.other.attribute-name.svelte"
|
|
}
|
|
]
|
|
}
|
|
},
|
|
"end": "(?=\\s*+[^=\\s])",
|
|
"name": "meta.attribute.$1.svelte",
|
|
"patterns": [
|
|
{
|
|
"begin": "=",
|
|
"beginCaptures": {
|
|
"0": {
|
|
"name": "punctuation.separator.key-value.svelte"
|
|
}
|
|
},
|
|
"end": "(?<=[^\\s=])(?!\\s*=)|(?=/?>)",
|
|
"patterns": [
|
|
{
|
|
"include": "#attributes-value"
|
|
}
|
|
]
|
|
}
|
|
]
|
|
},
|
|
"attributes-value": {
|
|
"patterns": [
|
|
{
|
|
"include": "#interpolation"
|
|
},
|
|
{
|
|
"match": "(?:(['\"])([0-9._]+[\\w%]{,4})(\\1))|(?:([0-9._]+[\\w%]{,4})(?=\\s|/?>))",
|
|
"captures": {
|
|
"1": {
|
|
"name": "punctuation.definition.string.begin.svelte"
|
|
},
|
|
"2": {
|
|
"name": "constant.numeric.decimal.svelte"
|
|
},
|
|
"3": {
|
|
"name": "punctuation.definition.string.end.svelte"
|
|
},
|
|
"4": {
|
|
"name": "constant.numeric.decimal.svelte"
|
|
}
|
|
}
|
|
},
|
|
{
|
|
"match": "([^\\s\"'=<>`/]|/(?!>))+",
|
|
"name": "string.unquoted.svelte",
|
|
"patterns": [
|
|
{
|
|
"include": "#interpolation"
|
|
}
|
|
]
|
|
},
|
|
{
|
|
"begin": "(['\"])",
|
|
"end": "\\1",
|
|
"beginCaptures": {
|
|
"0": {
|
|
"name": "punctuation.definition.string.begin.svelte"
|
|
}
|
|
},
|
|
"endCaptures": {
|
|
"0": {
|
|
"name": "punctuation.definition.string.end.svelte"
|
|
}
|
|
},
|
|
"name": "string.quoted.svelte",
|
|
"patterns": [
|
|
{
|
|
"include": "#interpolation"
|
|
}
|
|
]
|
|
}
|
|
]
|
|
},
|
|
"attributes-directives-keywords": {
|
|
"patterns": [
|
|
{
|
|
"match": "on|use|bind",
|
|
"name": "keyword.control.svelte"
|
|
},
|
|
{
|
|
"match": "transition|in|out|animate",
|
|
"name": "keyword.other.animation.svelte"
|
|
},
|
|
{
|
|
"match": "let",
|
|
"name": "storage.type.svelte"
|
|
},
|
|
{
|
|
"match": "class|style",
|
|
"name": "entity.other.attribute-name.svelte"
|
|
}
|
|
]
|
|
},
|
|
"attributes-directives-types": {
|
|
"patterns": [
|
|
{
|
|
"match": "(?<=(on):).*$",
|
|
"name": "entity.name.type.svelte"
|
|
},
|
|
{
|
|
"match": "(?<=(bind):).*$",
|
|
"name": "variable.parameter.svelte"
|
|
},
|
|
{
|
|
"match": "(?<=(use|transition|in|out|animate):).*$",
|
|
"name": "variable.function.svelte"
|
|
},
|
|
{
|
|
"match": "(?<=(let|class|style):).*$",
|
|
"name": "variable.parameter.svelte"
|
|
}
|
|
]
|
|
},
|
|
"attributes-directives-types-assigned": {
|
|
"patterns": [
|
|
{
|
|
"match": "(?<=(bind):)this$",
|
|
"name": "variable.language.svelte"
|
|
},
|
|
{
|
|
"match": "(?<=(bind):).*$",
|
|
"name": "entity.name.type.svelte"
|
|
},
|
|
{
|
|
"match": "(?<=(class):).*$",
|
|
"name": "entity.other.attribute-name.class.svelte"
|
|
},
|
|
{
|
|
"match": "(?<=(style):).*$",
|
|
"name": "support.type.property-name.svelte"
|
|
},
|
|
{
|
|
"include": "#attributes-directives-types"
|
|
}
|
|
]
|
|
},
|
|
"attributes-directives": {
|
|
"begin": "(?<!<)(on|use|bind|transition|in|out|animate|let|class|style)(:)(?:((?:--)?[_$[:alpha:]][_\\-$[:alnum:]]*(?=\\s*=))|((?:--)?[_$[:alpha:]][_\\-$[:alnum:]]*))((\\|\\w+)*)",
|
|
"beginCaptures": {
|
|
"1": {
|
|
"patterns": [
|
|
{
|
|
"include": "#attributes-directives-keywords"
|
|
}
|
|
]
|
|
},
|
|
"2": {
|
|
"name": "punctuation.definition.keyword.svelte"
|
|
},
|
|
"3": {
|
|
"patterns": [
|
|
{
|
|
"include": "#attributes-directives-types-assigned"
|
|
}
|
|
]
|
|
},
|
|
"4": {
|
|
"patterns": [
|
|
{
|
|
"include": "#attributes-directives-types"
|
|
}
|
|
]
|
|
},
|
|
"5": {
|
|
"patterns": [
|
|
{
|
|
"match": "\\w+",
|
|
"name": "support.function.svelte"
|
|
},
|
|
{
|
|
"match": "\\|",
|
|
"name": "punctuation.separator.svelte"
|
|
}
|
|
]
|
|
}
|
|
},
|
|
"end": "(?=\\s*+[^=\\s])",
|
|
"name": "meta.directive.$1.svelte",
|
|
"patterns": [
|
|
{
|
|
"begin": "=",
|
|
"beginCaptures": {
|
|
"0": {
|
|
"name": "punctuation.separator.key-value.svelte"
|
|
}
|
|
},
|
|
"end": "(?<=[^\\s=])(?!\\s*=)|(?=/?>)",
|
|
"patterns": [
|
|
{
|
|
"include": "#attributes-value"
|
|
}
|
|
]
|
|
}
|
|
]
|
|
},
|
|
"attributes-generics": {
|
|
"begin": "(generics)(=)([\"'])",
|
|
"beginCaptures": {
|
|
"1": {
|
|
"name": "entity.other.attribute-name.svelte"
|
|
},
|
|
"2": {
|
|
"name": "punctuation.separator.key-value.svelte"
|
|
},
|
|
"3": {
|
|
"name": "punctuation.definition.string.begin.svelte"
|
|
}
|
|
},
|
|
"end": "(\\3)",
|
|
"endCaptures": {
|
|
"1": {
|
|
"name": "punctuation.definition.string.end.svelte"
|
|
}
|
|
},
|
|
"contentName": "meta.embedded.expression.svelte source.ts",
|
|
"patterns": [
|
|
{
|
|
"include": "#type-parameters"
|
|
}
|
|
]
|
|
},
|
|
"type-parameters": {
|
|
"name": "meta.type.parameters.ts",
|
|
"patterns": [
|
|
{
|
|
"include": "source.ts#comment"
|
|
},
|
|
{
|
|
"name": "storage.modifier.ts",
|
|
"match": "(?<![_$[:alnum:]])(?:(?<=\\.\\.\\.)|(?<!\\.))(extends|in|out|const)(?![_$[:alnum:]])(?:(?=\\.\\.\\.)|(?!\\.))"
|
|
},
|
|
{
|
|
"include": "source.ts#type"
|
|
},
|
|
{
|
|
"include": "source.ts#punctuation-comma"
|
|
},
|
|
{
|
|
"name": "keyword.operator.assignment.ts",
|
|
"match": "(=)(?!>)"
|
|
}
|
|
]
|
|
},
|
|
"tags": {
|
|
"patterns": [
|
|
{
|
|
"include": "#tags-lang"
|
|
},
|
|
{
|
|
"include": "#tags-void"
|
|
},
|
|
{
|
|
"include": "#tags-general-end"
|
|
},
|
|
{
|
|
"include": "#tags-general-start"
|
|
}
|
|
]
|
|
},
|
|
"tags-name": {
|
|
"patterns": [
|
|
{
|
|
"match": "(svelte)(:)([a-z][\\w0-9:-]*)",
|
|
"captures": {
|
|
"1": {
|
|
"name": "keyword.control.svelte"
|
|
},
|
|
"2": {
|
|
"name": "punctuation.definition.keyword.svelte"
|
|
},
|
|
"3": {
|
|
"name": "entity.name.tag.svelte"
|
|
}
|
|
}
|
|
},
|
|
{
|
|
"match": "slot",
|
|
"name": "keyword.control.svelte"
|
|
},
|
|
{
|
|
"match": "[A-Z][a-zA-Z0-9_]*",
|
|
"name": "support.class.component.svelte"
|
|
},
|
|
{
|
|
"match": "[a-z][\\w0-9:]*-[\\w0-9:-]*",
|
|
"name": "meta.tag.custom.svelte entity.name.tag.svelte"
|
|
},
|
|
{
|
|
"match": "[a-z][\\w0-9:-]*",
|
|
"name": "entity.name.tag.svelte"
|
|
}
|
|
]
|
|
},
|
|
"tags-start-attributes": {
|
|
"begin": "\\G",
|
|
"end": "(?=/?>)",
|
|
"name": "meta.tag.start.svelte",
|
|
"patterns": [
|
|
{
|
|
"include": "#attributes"
|
|
}
|
|
]
|
|
},
|
|
"tags-lang-start-attributes": {
|
|
"begin": "\\G",
|
|
"end": "(?=/>)|>",
|
|
"endCaptures": {
|
|
"0": {
|
|
"name": "punctuation.definition.tag.end.svelte"
|
|
}
|
|
},
|
|
"name": "meta.tag.start.svelte",
|
|
"patterns": [
|
|
{
|
|
"include": "#attributes-generics"
|
|
},
|
|
{
|
|
"include": "#attributes"
|
|
}
|
|
]
|
|
},
|
|
"tags-start-node": {
|
|
"match": "(<)([^/\\s>/]*)",
|
|
"captures": {
|
|
"1": {
|
|
"name": "punctuation.definition.tag.begin.svelte"
|
|
},
|
|
"2": {
|
|
"patterns": [
|
|
{
|
|
"include": "#tags-name"
|
|
}
|
|
]
|
|
}
|
|
},
|
|
"name": "meta.tag.start.svelte"
|
|
},
|
|
"tags-end-node": {
|
|
"match": "(</)(.*?)\\s*(>)|(/>)",
|
|
"captures": {
|
|
"1": {
|
|
"name": "meta.tag.end.svelte punctuation.definition.tag.begin.svelte"
|
|
},
|
|
"2": {
|
|
"name": "meta.tag.end.svelte",
|
|
"patterns": [
|
|
{
|
|
"include": "#tags-name"
|
|
}
|
|
]
|
|
},
|
|
"3": {
|
|
"name": "meta.tag.end.svelte punctuation.definition.tag.end.svelte"
|
|
},
|
|
"4": {
|
|
"name": "meta.tag.start.svelte punctuation.definition.tag.end.svelte"
|
|
}
|
|
}
|
|
},
|
|
"tags-lang": {
|
|
"begin": "<(script|style|template)",
|
|
"end": "</\\1\\s*>|/>",
|
|
"beginCaptures": {
|
|
"0": {
|
|
"patterns": [
|
|
{
|
|
"include": "#tags-start-node"
|
|
}
|
|
]
|
|
}
|
|
},
|
|
"endCaptures": {
|
|
"0": {
|
|
"patterns": [
|
|
{
|
|
"include": "#tags-end-node"
|
|
}
|
|
]
|
|
}
|
|
},
|
|
"name": "meta.$1.svelte",
|
|
"patterns": [
|
|
{
|
|
"begin": "\\G(?=\\s*[^>]*?(type|lang)\\s*=\\s*(['\"]|)(?:text/)?(\\w+)\\2)",
|
|
"end": "(?=</|/>)",
|
|
"name": "meta.lang.$3.svelte",
|
|
"patterns": [
|
|
{
|
|
"include": "#tags-lang-start-attributes"
|
|
}
|
|
]
|
|
},
|
|
{
|
|
"include": "#tags-lang-start-attributes"
|
|
}
|
|
]
|
|
},
|
|
"tags-void": {
|
|
"begin": "(<)(area|base|br|col|embed|hr|img|input|link|meta|param|source|track|wbr)(?=\\s|/?>)",
|
|
"beginCaptures": {
|
|
"1": {
|
|
"name": "punctuation.definition.tag.begin.svelte"
|
|
},
|
|
"2": {
|
|
"name": "entity.name.tag.svelte"
|
|
}
|
|
},
|
|
"end": "/?>",
|
|
"endCaptures": {
|
|
"0": {
|
|
"name": "punctuation.definition.tag.begin.svelte"
|
|
}
|
|
},
|
|
"name": "meta.tag.void.svelte",
|
|
"patterns": [
|
|
{
|
|
"include": "#attributes"
|
|
}
|
|
]
|
|
},
|
|
"tags-general-start": {
|
|
"begin": "(<)([^/\\s>/]*)",
|
|
"end": "(/?>)",
|
|
"beginCaptures": {
|
|
"0": {
|
|
"patterns": [
|
|
{
|
|
"include": "#tags-start-node"
|
|
}
|
|
]
|
|
}
|
|
},
|
|
"endCaptures": {
|
|
"1": {
|
|
"name": "meta.tag.start.svelte punctuation.definition.tag.end.svelte"
|
|
}
|
|
},
|
|
"name": "meta.scope.tag.$2.svelte",
|
|
"patterns": [
|
|
{
|
|
"include": "#tags-start-attributes"
|
|
}
|
|
]
|
|
},
|
|
"tags-general-end": {
|
|
"begin": "(</)([^/\\s>]*)",
|
|
"end": "(>)",
|
|
"beginCaptures": {
|
|
"1": {
|
|
"name": "meta.tag.end.svelte punctuation.definition.tag.begin.svelte"
|
|
},
|
|
"2": {
|
|
"name": "meta.tag.end.svelte",
|
|
"patterns": [
|
|
{
|
|
"include": "#tags-name"
|
|
}
|
|
]
|
|
}
|
|
},
|
|
"endCaptures": {
|
|
"1": {
|
|
"name": "meta.tag.end.svelte punctuation.definition.tag.end.svelte"
|
|
}
|
|
},
|
|
"name": "meta.scope.tag.$2.svelte"
|
|
}
|
|
}
|
|
}
|