Sublime Text 3 奇怪 javascript 更新后突出显示问题
Sublime Text 3 strange javascript highlighting issue after update
今天早上在 Sublime Text 3 中更新和安装了一些东西后,这真的让我很失望。也无法为该问题找出正确的 Google 关键字。基本上,突出显示现在将未封装在引号中的对象键视为字符串。我不确定这是我做的还是改变的?有没有一种快速的方法可以在 JavaScript.sublime-package 中解决这个问题?另外,我试过安装一些 ES6 包,但也没有解决这个问题。
Sublime 附带的语言定义发生了一些变化,因为它们现在是正式开源的 hosted on Github. In particular, the JavaScript syntax (which was badly in need of maintenance) has been supplemented with a number of changes from the JavaScriptNext ES6 项目,以及其他个人贡献,实际上变化非常快.
这意味着旧 JavaScript 语法上的许多 scopes 已经改变,因此以前看起来是一种方式的程序或关键字现在可能看起来与相同的配色方案不同。顺便说一句,下面是对 Sublime 中语法高亮如何工作的快速解释:.sublime-syntax
或 .tmLanguage
语法定义文件包含一系列在视图中定义范围的正则表达式。所以,对于JavaScript,一切开始都是source.js
,关键字var
是storage.type.js
,this
是 variable.language.this.js
,等等。现在,配色方案(.tmTheme
文件)包含范围选择器列表(有点类似于 CSS 选择器,但更简单)并将颜色和文本效果分配给任何匹配的范围。
Monokai,Sublime 的默认配色方案,您似乎正在使用的配色方案,是一个非常简单的主题。它有非常广泛的范围选择器,并且只使用大约七种颜色。因此,许多不同类型的语法可以使用相同的颜色,并且 JavaScript 的一些更改影响了使用此颜色方案显示代码的方式。
另一方面,当使用像 Neon 这样复杂得多的配色方案时(完全披露:我是它的维护者),使用 Build 3103 的代码看起来像这样:
我设计 Neon 是为了区分尽可能多的不同范围,目前它有大约 260 种范围和颜色定义,是 Aziz 出色的 TmTheme Editor 中最高的之一。这是一个很好的工具,可以浏览不同的配色方案并查看您可能喜欢的配色方案。不幸的是,由于 Sublime 的语法高亮正则表达式引擎与 TmTheme Editor 中的语法高亮引擎之间的差异,网站上的代码预览并不总是与 Sublime 中的完全一致,但您可以大致了解一下。
有意思的是,这两天又发布了两个dev builds,JavaScript变化更大!对于 3105,代码现在如下所示:
对象键的范围已更改为当前不在 Neon 中的内容,因此它们现在显示为白色。
因此,就您的问题而言,我肯定会四处寻找更复杂的配色方案,以便您可以区分各种语言结构。 是一种从 Build 3083 返回到旧语法定义的方法,但它非常复杂,我不推荐它,主要是因为 JavaScript 目前正在经历随着 ES6 的更广泛采用以及 ES7 的某些部分已经在某些浏览器中得到支持,一些非常快速的变化,因此当您使代码现代化时,使用现代化的语法突出显示系统是有意义的。
今天早上在 Sublime Text 3 中更新和安装了一些东西后,这真的让我很失望。也无法为该问题找出正确的 Google 关键字。基本上,突出显示现在将未封装在引号中的对象键视为字符串。我不确定这是我做的还是改变的?有没有一种快速的方法可以在 JavaScript.sublime-package 中解决这个问题?另外,我试过安装一些 ES6 包,但也没有解决这个问题。
Sublime 附带的语言定义发生了一些变化,因为它们现在是正式开源的 hosted on Github. In particular, the JavaScript syntax (which was badly in need of maintenance) has been supplemented with a number of changes from the JavaScriptNext ES6 项目,以及其他个人贡献,实际上变化非常快.
这意味着旧 JavaScript 语法上的许多 scopes 已经改变,因此以前看起来是一种方式的程序或关键字现在可能看起来与相同的配色方案不同。顺便说一句,下面是对 Sublime 中语法高亮如何工作的快速解释:.sublime-syntax
或 .tmLanguage
语法定义文件包含一系列在视图中定义范围的正则表达式。所以,对于JavaScript,一切开始都是source.js
,关键字var
是storage.type.js
,this
是 variable.language.this.js
,等等。现在,配色方案(.tmTheme
文件)包含范围选择器列表(有点类似于 CSS 选择器,但更简单)并将颜色和文本效果分配给任何匹配的范围。
Monokai,Sublime 的默认配色方案,您似乎正在使用的配色方案,是一个非常简单的主题。它有非常广泛的范围选择器,并且只使用大约七种颜色。因此,许多不同类型的语法可以使用相同的颜色,并且 JavaScript 的一些更改影响了使用此颜色方案显示代码的方式。
另一方面,当使用像 Neon 这样复杂得多的配色方案时(完全披露:我是它的维护者),使用 Build 3103 的代码看起来像这样:
我设计 Neon 是为了区分尽可能多的不同范围,目前它有大约 260 种范围和颜色定义,是 Aziz 出色的 TmTheme Editor 中最高的之一。这是一个很好的工具,可以浏览不同的配色方案并查看您可能喜欢的配色方案。不幸的是,由于 Sublime 的语法高亮正则表达式引擎与 TmTheme Editor 中的语法高亮引擎之间的差异,网站上的代码预览并不总是与 Sublime 中的完全一致,但您可以大致了解一下。
有意思的是,这两天又发布了两个dev builds,JavaScript变化更大!对于 3105,代码现在如下所示:
对象键的范围已更改为当前不在 Neon 中的内容,因此它们现在显示为白色。
因此,就您的问题而言,我肯定会四处寻找更复杂的配色方案,以便您可以区分各种语言结构。 是一种从 Build 3083 返回到旧语法定义的方法,但它非常复杂,我不推荐它,主要是因为 JavaScript 目前正在经历随着 ES6 的更广泛采用以及 ES7 的某些部分已经在某些浏览器中得到支持,一些非常快速的变化,因此当您使代码现代化时,使用现代化的语法突出显示系统是有意义的。