所以今天早上在Sublime Text 3中更新并安装了一些东西后,这真的让我失望了。无法找出适合该问题的正确Google关键字。基本上,突出显示现在处理没有封装在引号中的对象键,就好像它们是字符串一样。我不确定这是我做过的事情还是改变了什么?有没有一种快速的方法可以在JavaScript.sublime-package中解决这个问题?此外,我已经尝试安装一些ES6软件包,但它也没有解决这个问题。
答案 0 :(得分:2)
Sublime附带的语言定义发生了很多变化,因为它们现在已经正式开源并且hosted on Github。特别是,JavaScript语法(非常需要维护)补充了JavaScriptNext ES6项目的一些变化,以及其他个人贡献,实际上变化很快。
这意味着旧JavaScript语法中的许多scopes已经发生了变化,因此一个前面看过的程序或关键字现在看起来可能与使用相同的颜色方案不同。顺便说一下,这里有一个快速解释语法高亮在Sublime中的工作方式:.sublime-syntax
或.tmLanguage
语法定义文件包含一系列定义视图范围的正则表达式。因此,对于JavaScript,一切都开始为source.js
,关键字 var
为storage.type.js
, this
为{现在,颜色方案(variable.language.this.js
文件)包含范围选择器列表(有点类似于CSS选择器,但更简单)并将颜色和文本效果分配给匹配的任何范围。
Monokai,Sublime的默认配色方案,以及您似乎使用的配色方案,是一个非常简单的主题。它具有非常广泛的范围选择器,并且仅使用大约七种颜色。因此,许多不同类型的语法可以着色相同,并且JavaScript的一些更改已经影响了使用此配色方案显示代码的方式。
另一方面,当使用更复杂的配色方案,如Neon(完全披露:我及其维护者),您的代码使用Build 3103看起来像这样:
我设计了Neon来区分尽可能多的不同范围,它目前在约260个范围和颜色定义附近,是Aziz优秀TmTheme Editor中最高的范围之一。它是浏览不同配色方案并查看您可能喜欢的内容的绝佳工具。不幸的是,由于Sublime的语法突出显示正则表达式引擎和TmTheme编辑器中的差异,网站上的代码预览并不总是看起来与Sublime完全相同,但您可以获得一般性的想法。
有趣的是,在过去的两天里又发布了两个dev builds,而且JavaScript已经发生了更大变化!使用3105,代码现在看起来像这样:
对象键的范围已更改为当前不在霓虹灯中的内容,因此它们现在显示为白色。
因此,就您的问题而言,我肯定会浏览更复杂的配色方案,以便您可以区分各种语言结构。 是一种从Build 3083返回旧语法定义的方法,但它非常复杂,我不推荐它,主要是因为JavaScript目前正在通过一些随着ES6的广泛采用而发生了相当迅速的变化,并且某些浏览器已经支持ES7的某些部分,因此当您对代码进行现代化时,使用现代化的语法高亮系统是有意义的。