tm-grammars
Version:
Collecton of TextMate grammars in JSON
141 lines (140 loc) • 3 kB
JSON
{
"fileTypes": [
"js",
"jsx",
"ts",
"tsx",
"html",
"vue",
"svelte",
"php",
"res"
],
"injectTo": [
"source.ts",
"source.js"
],
"injectionSelector": "L:source.js -comment -string, L:source.js -comment -string, L:source.jsx -comment -string, L:source.js.jsx -comment -string, L:source.ts -comment -string, L:source.tsx -comment -string, L:source.rescript -comment -string",
"injections": {
"L:source": {
"patterns": [
{
"match": "<",
"name": "invalid.illegal.bad-angle-bracket.html"
}
]
}
},
"name": "es-tag-html",
"patterns": [
{
"begin": "(?i)(\\s?/\\*\\s?(html|template|inline-html|inline-template)\\s?\\*/\\s?)(`)",
"beginCaptures": {
"1": {
"name": "comment.block"
}
},
"end": "(`)",
"patterns": [
{
"include": "source.ts#template-substitution-element"
},
{
"include": "text.html.basic"
},
{
"include": "inline.es6-htmlx#template"
}
]
},
{
"begin": "(?i)(\\s*(html|template|inline-html|inline-template))(`)",
"beginCaptures": {
"1": {
"name": "comment.block"
}
},
"end": "(`)",
"patterns": [
{
"include": "source.ts#template-substitution-element"
},
{
"include": "text.html.basic"
},
{
"include": "inline.es6-htmlx#template"
},
{
"include": "string.quoted.other.template.js"
}
]
},
{
"begin": "(?i)(?<=[(,:=\\s]|\\$\\()\\s*(((/\\*)|(//))\\s?(html|template|inline-html|inline-template) {0,1000}\\*?/?) {0,1000}$",
"beginCaptures": {
"1": {
"name": "comment.line"
}
},
"end": "(`).*",
"patterns": [
{
"begin": "\\G()",
"end": "(`)"
},
{
"include": "source.ts#template-substitution-element"
},
{
"include": "text.html.basic"
}
]
},
{
"begin": "(\\$\\{)",
"beginCaptures": {
"1": {
"name": "entity.name.tag"
}
},
"end": "(})",
"endCaptures": {
"1": {
"name": "entity.name.tag"
}
},
"patterns": [
{
"include": "source.ts#template-substitution-element"
},
{
"include": "source.js"
}
]
},
{
"begin": "(\\$\\(`)",
"beginCaptures": {
"1": {
"name": "entity.name.tag"
}
},
"end": "(`\\))",
"endCaptures": {
"1": {
"name": "entity.name.tag"
}
},
"patterns": [
{
"include": "source.ts#template-substitution-element"
},
{
"include": "source.js"
}
]
}
],
"scopeName": "inline.es6-html"
}