【问题标题】:Fix color highlighting on Solarized in Sublime修复 Sublime 中 Solarized 的颜色突出显示
【发布时间】:2015-02-02 20:23:34
【问题描述】:

现在,如果格式如下,solarized 主题将突出显示 JavaScript 中的变量:

var foo = function (arg1, arg2) {...}

但不是这样:

var foo = function(arg1, arg2) {...}

一些行业标准的风格指南(例如 AirBnB)在 function 关键字后没有空格,所以我想修改我的配色方案。这可能吗?

【问题讨论】:

  • 你使用什么语言 - JavaScript?
  • 更新了帖子。我正在使用 JavaScript。
  • 你是在使用专门的 JavaScript 语法,还是仅仅使用 Sublime 自带的语法?这是在.js 文件中,还是嵌入在<script> 标签中?您可以提供的信息越多越好。一些截图也不错。
  • 恐怕我完全无法复制这个。我使用了许多不同的配色方案,许多不同的 Javascript 语法定义,以及 ST2 和 ST3 的最新版本,function 之后是否存在空格对语法突出显示没有任何影响。 ..
  • 没有特殊的 JS 语法,只有 Sublime 提供的一种。在.js 文件中。我从网站上安装了 Solarized 主题。这是sample screenshot。此外,仔细观察后,它会专门针对匿名函数。真的很抱歉,我第一次没有注意到这种细微差别。感谢您帮助我解决这个问题,我衷心感谢!

标签: sublimetext2 syntax-highlighting sublimetext color-scheme


【解决方案1】:

这实际上是对语法定义中正则表达式的单字符修复。选择 Preferences -> Browse Packages... 在操作系统的文件浏览器中打开 Packages 文件夹。转到JavaScript 目录并使用XML 语法在Sublime 中打开JavaScript.tmLanguage。向下滚动到第 260 行,应该是这样的:

<string>\b(function)\s+([a-zA-Z_$]\w*)?\s*(\()(.*?)(\))</string>

改成这样:

<string>\b(function)\s*([a-zA-Z_$]\w*)?\s*(\()(.*?)(\))</string>
<!--                  ^ -->

(function) 之后的 \s+ 变为 \s*\s 是任何空白字符,+ 后面的意思是 match one or more。将+ 更改为* 意味着match zero or more,这就是我们想要的。

保存文件,重新启动 Sublime(以防万一),一切准备就绪。


Sublime Text 3 用户注意事项:

ST3 中的包现在存储在压缩的.sublime-package 文件中,因此您需要一个额外的步骤。从 Package Control 安装 PackageResourceViewer,然后打开命令面板并选择 PackageResourceViewer: Open Resource。向下滚动到JavaScript,选择它,然后向下滚动到JavaScript.tmLanguage 并选择它。您现在可以像上面一样编辑文件,当您保存它时,它会自动在Packages 中创建一个JavaScript 文件夹,其中包含.tmLanguage 文件。

【讨论】:

  • 你。是。所以。惊人的。谢谢你!!!这个怪癖在我的脚上已经有很长时间了——烦人,但可以忍受。我感到如释重负。衷心感谢您耐心和彻底地回答我的问题。
  • 非常感谢。
猜你喜欢
  • 2015-12-09
  • 2017-01-08
  • 1970-01-01
  • 2013-03-11
  • 2021-12-13
  • 2017-02-08
  • 2012-04-06
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多