我可以扩展 VS Code TextMate 语言语法吗?



有没有办法用一些额外的规则来扩展默认csharp.tmLanguage?引用现有范围?

您可以包含语法,如下所示:

{ "include": "source.cs" }

但是,如果将语法替换为自己的语法(定义自己的source.cs范围),则无法再将原始source.cs范围包含在其中(VS Code 报告它未能标记文件)。

Visual Studio Code支持语法注入,例如:

"grammars": [
{
"scopeName": "source.todo",
"path": "./syntaxes/todo.json",
"injectTo": [  "source.js", "source.ts" ]
},

令人惊讶的是,记录不足。它可以工作,但您可以注入到现有作用域中,但顶级作用域除外source作用域除外。另外,在我看来,您只能注入添加,而不是覆盖规则。所以再说一次,我不能以这种方式扩展语法。


现在我采用一种解决方法,其中我贡献了 2 种语法。一个是带有假名称的原始 C# 语法,第二个是覆盖 C# 语法,包括通过假范围的所有原始规则。我希望有没有这个的方法。

这样,我可以在"包含原始语法之前"添加一些规则。但是,这些仍然是补充,我无法真正扩展现有规则。

相关内容

  • 没有找到相关文章

最新更新