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

Can I Append Custom Highlights to an Existing Syntax Without Forking It?

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

我尝试在我自己的 .sublime-syntax 文件中使用 extends: Packages/HTML/HTML.sublime-syntax,但我收到控制台错误“语法继承不允许混合版本 “我不知道那是什么意思。我也没有在 the documentation 中看到它。帮忙?

Documentation on Syntax Definitions has a section on inheritance 以及您是如何做到的;有一个关于限制的部分:

A syntax may extend a syntax that itself extends another syntax. There are no enforced limits on extending, other than that all syntaxes must share the same version.

version 是 Syntaxes 最新版本中的一个新概念;它列在 compatibility 下。总的要点是关于语法的各种事情要么是错误要么是 unexpected/undesirable 行为,但是由于已经有太多可用的语法,如果更改该行为就会被破坏,version 的概念已添加,以便更新的语法可以利用修复。

因此,如上所述,所有语法必须相同 version,从表面上看,它们的行为是一致的。 Sublime Text 4 中新 rewritten/revamped 的语法使用新版本,HTML 语法就是其中之一。

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