Sublime Text 3 多语言代码高亮

Sublime Text 3 Multiple Language code highlight

我刚升级到 Sublime Text 3。

我正在使用 Sublime Text 2 中现有的配色方案。但现在多语言代码突出显示不再有效。

崇高文本 3

崇高文本 2

谁能帮我想出我的 tmTheme 的自定义范围。

恭喜升级,不错的选择。我正在使用 ST3 Build 3120, the latest development build, so the language definitions may have changed somewhat, but not significantly, if you're using the public beta Build 3114. I also use the Neon Color Scheme (full disclosure: I'm the developer), which has a very large number of specific scopes compared to some other color schemes like Monokai or Solarized which reuse the same colors for a variety of different language features. Finally, since I'm a color scheme designer, I use tools like ScopeHunter and ScopeAlways 来确定哪些范围和主题元素在文本中的任何位置处于活动状态。

因此,这是您的代码的屏幕截图以及使用 Sublime 的 HTML 语法的其他几行测试:

这里是相同的代码,片刻之后,使用 PHP 语法捕获:

我们可以看到,在左下角,ScopeAlways表示在光标所在的位置,HTML文件的基本作用域是text.html.basic,而PHP一个是embedding.php text.html.basic。到目前为止,一切顺利 - 这是正常的。然而,更重要的是,我们可以看到 HTML 和 PHP 之间突出显示的明显差异,包括 id 属性的内容与其他属性相比,以及着色(或缺少其中)嵌入的 PHP 代码(是的,我知道我在底部的隔离 PHP 代码的末尾缺少一个 ; - 添加一个不会改变任何东西).

因此,如果您还没有使用它,我的第一个建议是将文件的语法设置为 PHP。您可以从底部栏最右侧的菜单中 select,或者通过 selecting View → Syntax → 并从可用选项中进行选择.

如果你已经在使用 PHP 语法,你应该知道自今年年初以来(或多或少),许多 Sublime 的 language description syntax files have been significantly or completely rewritten, PHP and HTML among them. They were in sore need of modernization and speed-up in some cases, and with the advent of the sublime-syntax format (much more powerful than the old, but still supported, tmLanguage format), a better regex engine for .sublime-syntax files, and the hiring by Sublime HQ of Will Bond (of Package Control 名声)做了一个 很多 Jon Skinner(Sublime 的作者)没有时间或兴趣做的事情,Sublime 本身的开发过程以及语法定义(同时是开源的)时间)大幅增加。这是一个非常冗长的说法,很多东西在相对较短的时间内发生了变化,并且使用旧版本的 HTML 和 PHP 语法编写的配色方案mind 可能不适合新版本。因此,如果您是那种人,您可能想要了解新的语法并更新您的配色方案,或者您可以尝试一些其他方案,例如 Neon,它们已经完成了该过程。

回到那个奇怪的 id 突出显示 - 我将很快发布一个新版本的 Neon 来解决这个问题,并为 id 属性的内容着色,就像 class 或任何其他属性。我也会尝试找出他们这样做的原因。

希望对您有所帮助。祝你好运!