这是一个一知半解的尝试。

Atom 编辑器在我的 MacBook Pro with Retina Display 上存在一个问题:打开一些压缩过的大串 JS,或者粘贴很长很大一行文本,稍做一些鼠标选择等操作,Atom 就会失去响应一段时间,甚至崩溃。

比如我想简单了解一下 GrowingIO 的 JavaScript SDK,浏览器打开 http://dn-growing.qbox.me/vds.js,复制粘贴至 Atom,鼠标稍微在字符上动一动,Atom 就挂起了,直至程序崩溃,而放进 Sublime Text 就不会出现这样的问题。

会不会是两者的配置差异呢?

两个编辑器的字体都是 Fira Code,但是 Atom 支持 programming ligatures,所以我在其 styles.less 内开启了text-rendering: optimizeLegibility;,于是我尝试将 optimizeLegibility 改为 auto,发现挂起问题消失了……

有没有办法既使用 optimizeLegibility,保留 programming ligatures,又解决挂起问题呢?答案是:有。

因为我发现,通过 Sublime Text 对上文压缩过的 vds.js 文件做 JavaScript Beautify,然后保存,再通过 Atom 打开编辑,是没有明显的挂起问题的,似乎是跟某些个 buffer 有关。所以尝试在 Atom Settings 内又勾选了Soft Wrap,做软换行,让 Atom 自动把大段的长行文件展开,惊奇发现:问题解决了,既不失去漂亮的 programming ligatures,又没有性能问题,两全其美……

总结:Atom 开启了text-rendering: optimizeLegibility;之后,如遇「长行文件失去响应」问题,可以再开启Soft Wrap