我可以在没有分叉的情况下将自定义高亮添加到现有语法中吗?



我希望在现有的语法中添加一些自定义语法高亮,但我不想维护我正在使用的基本语法的完整副本。是否有一种方法可以扩展现有语法(如果可能的话,通过更新继续这样做),并向其附加一些新规则?

我已经尝试在我自己的.sublime-syntax文件中使用extends: Packages/HTML/HTML.sublime-syntax,但我得到一个控制台错误">语法继承不允许混合版本";我完全不知道那是什么意思我也没有看到文档中提到它。帮助吗?

关于语法定义的文档有一节是关于继承和如何做的;有一节是关于限制的:

一个语法可以扩展一个自身扩展另一个语法的语法。除了所有语法必须共享相同的版本外,对扩展没有强制限制。

version是最近几个语法版本中的一个新概念;它列在兼容性下面。总的要点是,关于语法的各种事情要么是错误,要么是意外/不受欢迎的行为,但由于有这么多可用的语法,如果这些行为被改变,就会被破坏,所以添加了version的概念,以便更新的语法可以利用自己的修复。

因此,正如上面提到的,所有语法必须是相同的version,表面上这样它们的行为是一致的。在Sublime Text 4中新重写/修改的语法使用新版本,HTML语法是其中之一。

因此,您需要在语法中包含version: 2以便能够扩展HTML语法。

最新更新