是否有一种方法可以使用其他规则扩展默认的 csharp.tmLanguage?引用现有的作用域?
发布于 2017-03-31 12:25:21
您可以在中包含语法,如下所示:
{ "include": "source.cs" }
但是,如果用自己的语法替换语法(定义自己的source.cs
作用域),那么就不能再将原始的source.cs
作用域包含在其中了(VS代码报告它无法标记文件)。
Visual代码支持语法注入,类似于:
"grammars": [
{
"scopeName": "source.todo",
"path": "./syntaxes/todo.json",
"injectTo": [ "source.js", "source.ts" ]
},
令人惊讶的是记录在案。它可以工作,但您可以注入到现有的作用域,除了顶级的source
作用域。而且,在我看来,您只可以注入添加的,而不是重写规则。所以,我同样不能用这种方式扩展语法。
现在,我使用作为解决方案,在这里我贡献了2克。第二种是覆盖C#语法,包括所有通过假作用域的原始规则。我真希望没有这个办法。
通过这种方式,我可以在“我”之前添加一些规则,包括原来的语法。不过,这些都是新增的,我不能真正扩展现有的规则。
https://stackoverflow.com/questions/43125093
复制