在Sublime 2/3中更改/添加语言突出显示语言

Nik*_*las 91 syntax-highlighting sublimetext3

我想在Sublime 2/3中更改/添加语言突出显示语言.

例如,我希望thisJavaScript中的关键字是彩色的.

我怎样才能做到这一点?

我知道有一个偏好JavaScript文件C:\Program Files\Sublime Text 3\Packages,但我不知道要改变什么,或者我是否必须在此文件夹中的某处创建一个新的JavaScript首选项文件%APPDATA%\Sublime Text 3.

Mat*_*DMo 93

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

不幸的是,并非所有主题都包含所有范围,因此您需要使用不同的主题来找到一个看起来不错的主题,并为您提供您正在寻找的突出显示.Sublime Text中包含许多主题,还有更多可通过Package Control获得,如果您还没有,我强烈建议您安装.确保遵循ST3指示.

正如它所发生的那样,我已经Neon Color Scheme通过Package Control 开发了您可能想要查看的内容.我的主要目标是尽量使各种语言看起来尽可能好,但是要尽可能多地确定不同的范围 - 比标准主题中包含的范围更多.虽然JavaScript语言定义不像Python那样彻底,Neon但仍然比一些默认值(如Monokai或更多)具有更多的多样性Solarized.

jQuery以Neon Theme突出显示

我应该注意到我使用@ int3h的Better JavaScript语言定义来代替Sublime 附带的语言定义.它可以通过Package Control安装.

UPDATE

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

JavaScriptNext

此外,由于我最初写这个答案,@ skuroda已PackageResourceViewer通过Package Control 发布.它允许您无缝地查看,编辑和/或提取部分或整个.sublime-package包.因此,如果您选择,您可以直接编辑Sublime附带的配色方案.

另一个更新

随着Github上几乎所有默认软件包的发布,变化越来越快.旧的JS语法已被完全重写,以包含JavaScript Next ES6语法的最佳部分,现在可以完全兼容ES6.一的其他修改过覆盖边角情况下,提高一致性,只是整体变得更好.新语法已包含在(此时)最新的dev build 3111中.

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

我目前正在调整我的Neon Color Scheme来处理新JS语法中的所有新作用域,但大多数应该已经涵盖了.


Nik*_*las 30

我终于找到了一种定制给定主题的方法.

转到C:\Program Files\Sublime Text 3\Packages并复制+重命名Color Scheme - Default.sublime-packageColor Scheme - Default.zip.然后解压缩并复制主题,您想要更改为%APPDATA%\Sublime Text 3\Packages\User.(就我而言All Hallow's Eve.tmTheme).

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

<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>
Run Code Online (Sandbox Code Playgroud)

这将this在JavaScript Files中标记为红色.您可以选择下面的主题Preferences -> Color Scheme -> User -> <Your Name>.

  • 该插件在这里 - 它被称为[`PackageResourceViewer`](https://sublime.wbond.net/packages/PackageResourceViewer),可以通过Package Control安装.它使得使用Sublime Text 3 .sublime-package`文件变得更加容易,如果您计划对ST3进行任何类型的自定义,我强烈推荐它. (9认同)
  • 他们说什么.此外,我不明白你在代码中"选择""this"关键字的时间/地点,为什么这只会为"this"关键字着色.你能解释一下吗? (2认同)

cha*_*suf 14

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

特定于op,一旦安装了插件,执行PackageResourceViewer: Open Resource命令.然后选择JavaScript后跟JavaScript.tmLanguage.这将在编辑器中打开一个xml文件.您可以编辑任何语言定义并保存文件.这将在用户目录中编写JavaScript.tmLanguage文件的覆盖副本.

可以使用相同的方法编辑系统中任何语言的语言定义.


Epi*_*cks 5

“ this”已在Javascript中着色。

查看->语法->,然后选择要突出显示的语言。