当你开发一个像 Atom 这么复杂、拥有很多个子项目的软件时,往往每个项目有其单独的进度和目标,将它们统筹到一起是一个不简单的事情。我们讨论了很多关于 Atom 要成为什么样的编辑器的宏观图景,但除非你直接地参与到了 Atom 的开发中来,否则你是不太容易知道 Atom 当前正在具体地进行哪些工作的。
我们团队中的成员通常都在其各自负责的领域进行工作,但是有一些长期的工作是大多数成员都了解并共同促进的。接下来是一些我们正在进行的、迫切需要实现的功能:
提供对超长文本的支持
@maxbrunsfeld 和 @nathansobo 正在致力于用 一个新的库 替换掉文本编辑器的数据模型(Model)层的一些组件来提供对超长文本的支持,新的实现会消耗更少的内存,并且会提高各种文本编辑操作的性能,例如使用大量的光标(Atom 支持多个光标的功能)进行编辑。新的设计使用了一种具有缓存的流,并使用一种平衡树的数据结构去将文本的修改反馈到 Model 层。
改善自动补全
@benogle 在致力于改进 autocomplete
插件,Atom 默认的自动补全插件并没有满足大家的预期,缺少足够的拓展性。因此 @benogle 正在对 autocomplete-plus 插件进行改进,然后用它 替换掉默认的 autocomplete, autocomplete-plus 具有非常好的使用体验,并且提供了可拓展性。
启动速度
Atom 包含了数以百计的需要在程序启动时读取的小文件。读取全部这些文件会在 Windows 和一些没有使用固态硬盘的设备上花费大量的时间。借助 Atom Shell 的名为 ASAR 的文件打包格式,我们可以将前面提到的文件都压缩到一个较大的文件里,这样 Atom 只需要读取一个文件即可完成启动过程,会省下很多时间。@kevinsawicki 和 @zcbenz 正在完成这项工作,实际上 这个修改几天前就已经被合并了,但是因为我们发现了一些在 Windows 下的诡异 Bug, 所以暂时回滚了这个修改。改善启动速度是一个长期的工作,我们也在探索其他的方式,例如把 JavaScript 虚拟机的内存保存成快照之类的。
迈向 1.0 版本
你可以在 这里 看到,我们在发布 1.0 版本这项工作上已经取得了一些进展,现在已经到了插件开发者们迫切地需要移除已经被弃用的 API 的时候了。当 1.0 发布了之后,这些 API 将不仅仅是像今天这样只是提示给用户一个警告了,他们将会被从 Atom 中完整地移除。如果一个插件继续使用一个被弃用的 API, 它就会直接崩溃掉。我们已经添加了一个类似 atom --one
的命令行参数去帮助你模拟这一情况,来确保你维护的插件已经对 1.0 的到来做好了准备,这个修改已经被合并到了 master 分支,预计会被包含在接下来的 0.190.0
版本中。