更改/添加Sublime 2/3中语言的语法高亮显示

我想在Sublime 2/3中更改/添加语言高亮语言。

例如,我想要关键字在JavaScript中着色。

我怎样才能做到这一点?

我知道在C:\Program Files\Sublime Text 3\Packages中有一个首选JavaScript文件,但是我不知道要更改什么,或者如果必须在此文件夹中的某个位置创build新的JavaScript首选项文件%APPDATA%\Sublime Text 3

语法突出显示由您使用的主题控制,可通过Preferences -> Color Scheme 。 主题通过使用范围来突出显示不同的关键字,函数,variables等,范围由语言目录/包中的.tmLanguage文件中包含的一系列正则expression式定义。 例如, JavaScript.tmLanguage文件将范围source.jsvariable.language.js分配给this关键字。 由于Sublime Text 3使用.sublime-package zip文件格式来存储所有的默认设置,所以编辑单个文件并不是非常简单。

不幸的是,并不是所有的主题都包含所有的范围,所以你需要玩弄不同的主题,find一个看起来不错的主题,并给出你正在寻找的突出显示。 Sublime Text中包含了许多主题,还有更多的主题可以通过Package Control获得 ,如果您尚未安装,我强烈build议您进行安装。 确保你遵循ST3的方向 。

正因为如此,我已经开发了可通过包控制使用的Neon Color Scheme ,您可能需要查看一下。 我的主要目标,除了尽量使各种各样的语言看起来尽可能好以外,我的主要目标是尽可能多地确定不同的范围 – 比标准主题中包含的还要多。 虽然JavaScript语言的定义并不像Python那样全面,但是Neon仍然比MonokaiMonokai默认Monokai有更多的多样性。

jQuery突出与霓虹灯主题

我应该注意到,我使用了@ int3h的Better JavaScript语言定义,而不是Sublime附带的图像。 它可以通过包控制来安装。

UPDATE

最近我发现了另一个JavaScript替代语言定义 – JavaScriptNext - ES6 Syntax 。 它比基础JavaScript或甚至更好的JavaScript有更多的范围。 它看起来像这个相同的代码:

JavaScriptNext

此外,由于我最初写这个答案,@skuroda通过包控制发布PackageResourceViewer 。 它允许您无缝地查看,编辑和/或提取部分或整个.sublime-package软件包。 所以,如果您select,您可以直接编辑Sublime附带的配色scheme。

另一个更新

随着Github几乎所有的默认软件包的发布 ,变化已经快速而激烈地发生了。 旧的JS语法已被完全重写,包含JavaScript Next ES6语法的最佳部分,现在完全可以与ES6兼容。 已经做了很多其他的改变来覆盖angular落和边缘的情况,提高一致性,并且使整体更好。 新的语法已经包含在(目前)最新的开发版本 3111中。

如果你想使用目前beta版本 3103中的任何新语法,只需将Github repo克隆到某个地方,并将JavaScript (或任何你想要的语言)链接到你的Packages目录中 – 在你的系统上find它selectPreferences -> Browse Packages... 然后,只要在原始的repo目录中不时刷新任何更改,就可以享受最新,最好的! 我应该注意到,repo使用新的.sublime-syntax格式而不是旧的.tmLanguage格式,所以它们不能用于3084之前的ST3版本或者ST2版本(在这两种情况下,你都应该升级到最新的beta版本或开发build立)。

我目前正在调整我的霓虹颜色scheme来处理新的JS语法中的所有新的范围,但大部分应该已经被覆盖了。

我终于find了一种自定义给定主题的方法。

转到C:\Program Files\Sublime Text 3\Packages ,并将Color Scheme - Default.sublime-package复制到Color Scheme - Default.zip 。 之后解压缩并复制主题,您想要更改为%APPDATA%\Sublime Text 3\Packages\User 。 (在我的情况下, All Hallow's Eve.tmTheme )。

然后,您可以用任何文本编辑器打开它,并更改/添加一些内容,例如,在JavaScript中更改:

 <dict> <key>name</key> <string>Lang Variable</string> <key>scope</key> <string>variable.language</string> <key>settings</key> <dict> <key>foreground</key> <string>#FF0000</string> </dict> </dict> 

这将在JavaScript文件中标记为红色。 您可以在Preferences -> Color Scheme -> User -> <Your Name>下select你的主题。

使用通过包控制安装的PackageResourceViewer插件(如MattDMo所述 )。 这允许您通过在Sublime Text中打开并保存文件来覆盖压缩的资源。 它只会自动保存已编辑的资源到%APPDATA%/ Roaming / Sublime Text 3 / Packages /或〜/ .config / sublime-text-3 / Packages /。

具体到操作,一旦插件安装,执行PackageResourceViewer: Open Resource命令。 然后selectJavaScript ,然后selectJavaScript.tmLanguage 。 这将在编辑器中打开一个xml文件。 您可以编辑任何语言定义并保存文件。 这将在用户目录中写入JavaScript.tmLanguage文件的覆盖副本。

同样的方法可以用来编辑系统中任何语言的语言定义。

“this”已经在Javascript中着色了。

查看 – >语法 – >并select您的语言突出显示。