Answers:
语法突出显示由您使用的主题控制,可通过访问Preferences -> Color Scheme
。主题通过使用范围来突出显示不同的关键字,函数,变量等,这些范围由.tmLanguage
语言目录/包中文件中包含的一系列正则表达式定义。例如,JavaScript.tmLanguage
文件分配范围source.js
和variable.language.js
到this
关键字。由于Sublime Text 3使用.sublime-package
zip文件格式存储所有默认设置,因此编辑单个文件不是很简单。
不幸的是,并非所有主题都包含所有范围,因此您需要尝试不同的主题才能找到看起来不错的主题,并为您提供所需的突出显示。Sublime Text包含许多主题,而Package Control提供了更多主题,如果您还没有的话,我强烈建议安装。确保遵循ST3指示。
碰巧的是,我已经开发了Neon Color Scheme
可通过Package Control使用的,您可能想看看。除了试图使多种语言看起来尽可能好外,我的主要目标是要确定尽可能多的不同范围-超出标准主题中的范围。例如,虽然JavaScript语言定义不如Python完整,Neon
但与某些默认值(如Monokai
或)相比,其多样性仍然要大得多Solarized
。
我应该注意,我Better JavaScript
为该图像使用了@ int3h的语言定义,而不是Sublime 附带的语言定义。可以通过Package Control安装。
更新
最近,我发现了另一个JavaScript替代语言定义- JavaScriptNext - ES6 Syntax
。它具有比基本JavaScript甚至更好的JavaScript更大的作用域。在相同的代码上看起来像这样:
另外,自从我最初编写此答案以来,@ skuroda已PackageResourceViewer
通过Package Control 发布。它使您可以无缝地查看,编辑和/或提取部分或整个.sublime-package
软件包。因此,如果您选择,则可以直接编辑Sublime随附的配色方案。
另一个更新
随着Github上几乎所有默认软件包的发布,变化迅速而疯狂。旧的JS语法已被完全重写,以包括JavaScript Next ES6语法的最佳部分,现在已尽可能与ES6完全兼容。一吨的其他变化已对盖边角的情况下,提高一致性,只是整体变得更好。新语法已包含在(当前)最新的dev build 3111中。
如果您想在当前的beta版本 3103中使用任何新语法,只需在某个位置克隆Github存储库,然后将JavaScript
(或您想要的任何一种或多种语言)链接到Packages
目录中-选择即可在系统上找到它Preferences -> Browse Packages...
。然后,只需git pull
不时在原始repo目录中执行a 即可刷新所有更改,您就可以享受到最新,最精彩的内容!我应该注意,仓库使用的是新.sublime-syntax
格式,而不是旧格式.tmLanguage
,因此它们不适用于3084之前的ST3版本或ST2(无论如何,您都应该升级到最新的Beta或dev版本)。
我目前正在调整霓虹灯配色方案,以处理新JS语法中的所有新范围,但大多数内容应该已经涵盖。
Preferences -> Color Scheme -> Neon Theme
并选择Neon
。
%APPDATA%\Sublime Text 3\Installed Packages\Neon Theme.sublime-package
。选择上面的菜单选项也会Packages\User\Preferences.sublime-settings
自动更新文件。
.sublime-syntax
文件,则只需下载并将其复制到~/.config/sublime-text-3/Packages/User
。然后,可以在Sublime窗口右下角的语法菜单中使用该菜单,它可以单独使用(将显示为“ SystemVerilog”),也可以位于User
子菜单下,具体取决于您的设置。如果需要整个软件包,请确保已正确安装软件包控制,打开命令面板,键入pci,按Enter键,搜索SystemVerilog
并按Enter键。您不必重命名任何文件或任何东西-为什么这样做?
我终于找到了一种自定义给定主题的方法。
转到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
)。
然后,您可以使用任何文本编辑器将其打开,然后更改/添加一些内容,例如this
在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>
这会将this
JavaScript文件标记为红色。您可以在下选择主题Preferences -> Color Scheme -> User -> <Your Name>
。
.sublime-package
编辑……
PackageResourceViewer
,可以通过Package Control安装。它使处理Sublime Text 3 .sublime-package
文件变得更加容易,如果您打算对ST3进行任何类型的自定义,强烈建议您使用它。
使用通过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文件的替代副本。
可以使用相同的方法来编辑系统中任何语言的语言定义。
“ this”已在Javascript中着色。
查看->语法->,然后选择要突出显示的语言。
View -> Syntax -> Open all with current extension as...
设置*.stan
文件。
注意:这并不是OP的要求。这些说明将帮助您更改已定义语法匹配规则的项目(注释,关键字等)的颜色。例如,使用这些指令进行更改,以便所有代码注释都用蓝色而不是绿色着色。
我相信OP正在询问如何this
在JavaScript源文件中找到时将其定义为要着色的项目。
安装软件包:PackageResourceViewer
Ctrl+Shift+P
> [ PackageResourceViewer: Open Resource
]> [ Color Scheme - Default
]> [ Marina.sublime-color-scheme
](或您使用的任何配色方案)
上面的命令将打开“ Marina.sublime-color-scheme
” 文件的新标签。
%appdata%
(C:\Users\walter\AppData\Roaming\Sublime Text 3\Packages\Color Scheme - Default\
)中。Color Scheme - Default
]不是[ Packages
] dir的子目录。我怀疑PackageResourceViewer
正在做一些虚拟化。可选步骤:在新的颜色方案选项卡上:Ctrl+Shift+P
> [ Set Syntax: JSON
]
搜索您要更改的规则。我想使评论可见,所以我搜索了“ Comment
”
"rules"
节中找到了它 "rules":
[
{
"name": "Comment",
"scope": "comment, punctuation.definition.comment",
"foreground": "var(blue6)"
},
搜索字符串"blue6":
以找到颜色变量定义部分。我在本"variables"
节中找到了它。
使用http://hslpicker.com/之类的工具选择新颜色。
定义新的颜色变量,或覆盖的颜色设置blue6
。
blue6
将影响该颜色方案中的所有其他文本元素,这些颜色元素也使用blue6(“标点符号”“访问器”)。保存文件后,更改将立即应用于所有打开的文件/选项卡。
Sublime将处理所有这些颜色样式。可能更多。
hsla =色相,饱和度,亮度,阿尔法rgba =红色,绿色,蓝色,阿尔法
hsla(151,100%,41%,1)-最后一个参数是Alpha级别(透明度)1 =不透明,0.5 =半透明,0 =全透明
hsl(151,100%,41%)-无Alpha通道
rgba(0,209,108,1)-具有Alpha通道的rgb
rgb(0,209,108)-无Alpha通道