В языке шаблонов, таком как Yeoman, разметка нарушает синтаксис основного языка. Я хотел бы распознать и пометить код шаблона как комментарии, чтобы он игнорировался при разборе файла. Возможно ли это с помощью tmlanguage в VS Code?
Задание «комментария» в tokenTypes
, похоже, ничего не делает. Шаблон по-прежнему полон синтаксических ошибок, поскольку он пытается проанализировать TypeScript.
Package. json
"contributes": {
"grammars": [
{
"scopeName": "source.yeoman.injection",
"path": "./syntaxes/yeoman.tmLanguage.json",
"injectTo": [
"source.js",
"source.jsx",
"source.ts",
"source.tsx"
],
"embeddedLanguages": {
"meta.embedded.template.yeoman": "javascript"
},
"tokenTypes": {
"meta.embedded.template.yeoman": "comment"
}
}
]
}
yeoman.tmLanguage. json
{
"$schema": "https://raw.githubusercontent.com/martinring/tmlanguage/master/tmlanguage.json",
"scopeName": "source.yeoman.injection",
"fileTypes": ["js", "jsx", "ts", "tsx"],
"injectionSelector": "L:source.js, L:source.jsx, L:source.ts, L:source.tsx, R:meta.type.parameters.tsx",
"patterns": [
{
"include": "#template-block"
}
],
"repository": {
"template-block": {
"begin": "<%=?",
"end": "%>",
"beginCaptures": {
"0": { "name": "punctuation.template.begin.yeoman" }
},
"endCaptures": {
"0": { "name": "punctuation.template.close.yeoman" }
},
"name": "meta.embedded.template.yeoman",
"comment": "Code to be injected by Yeoman script."
}
}
}