BT

如何利用碎片时间提升技术认知与能力? 点击获取答案

Atom 1.9 Beta发布,性能更好,支持拖拽式标签布局,还有更多改进

| 作者 Sergio De Simone 关注 17 他的粉丝 ,译者 大愚若智 关注 9 他的粉丝 发布于 2016年6月14日. 估计阅读时间: 4 分钟 | QCon上海2018 关注大数据平台技术选型、搭建、系统迁移和优化的经验。

GitHub的Atom文本编辑器在发布Atom 1.8的同时,也发布1.9 beta0测试版。Atom 1.9测试版重新设计了缓冲显示层,为标签提供了拖拽式布局管理功能,并提供了新版Electron。

根据GitHub工程师Antonio Scandurra介绍,将Electron(用于构建Atom的框架)升级至0.37.8版后,渲染速度和性能有了显著提高,包括冷启动速度和常规响应速度也有所提高。此外Scandurra还称,重新设计Atom“显示层”后,在启用软换行或某些文本区域被折叠等情况下编辑和页面滚动速度也大幅加快。新的显示层设计还可实现更自由的折叠,现在已经可以将文本中任意选中的一块区域折叠,而非只能折叠整行文字。

GitHub工程师Nathan Sobo解释说,新的显示层功能源自text-buffer库,有效解决了缓冲区中原始内容以及最终所要渲染的结果之间无法一一对应的问题。例如,由于硬制表符、软换行符,以及开头处空格的存在,最终眼睛看到的结果可能包含文件中不存在的内容,而折叠通常意味着文件中包含的内容不应显示在屏幕上。这些问题还会影响到语法高亮和文字的修饰,以前为了解决这些问题需要给解析器提供更多本不存在的信息。Sobo最后总结说,显示层提供了简单易用的API,可供开发者顺利应对这些麻烦,例如:

let layer = buffer.addDisplayLayer({
  tabLength: 1,
  invisibles: {space: '•', cr: '¤', eol: '¬'},
  softWrapColumn: 80,
  foldCharacter: '⋯'
})
// Fold arbitrary ranges
layer.foldBufferRange([[1, 2], [3, 4]])
// Translate and clip points
layer.translateScreenPosition([3, 4])
layer.clipScreenPosition([3, 4])
layer.translateBufferPosition([1, 2])
// Get transformed text
layer.getText()
// Get line objects for a row range to render on screen.
// These are represented in an "interesting" format for storage efficiency.
layer.getScreenLines(0, 5)

在UI方面,Atom 1.9测试版使得用户能够通过随意拖拽的方式调整标签页布局。在将一个标签页拖拽到另一个标签页上方后,便可水平或垂直拆分成下图所示的布局。

Windows平台的Atom 1.9测试版还改进了对CygwinMsys的兼容性,并通过新增的文件恢复服务改善了存储文件时的可靠性。

除了Atom 1.9测试版,GitHub还发布了Atom 1.8稳定版,其中也包含少量细节方面的改进,例如改进的环境变量处理,新增的逐列向左或向右替换文本命令,以及在上次关闭时有窗口未关闭的情况下,Atom是否还原所有窗口等控制选项。

查看英文原文:Atom 1.9 Beta Brings Better Performance, Drag and Drop Tab Layout, and More

评价本文

专业度
风格

您好,朋友!

您需要 注册一个InfoQ账号 或者 才能进行评论。在您完成注册后还需要进行一些设置。

获得来自InfoQ的更多体验。

告诉我们您的想法

允许的HTML标签: a,b,br,blockquote,i,li,pre,u,ul,p

当有人回复此评论时请E-mail通知我
社区评论

允许的HTML标签: a,b,br,blockquote,i,li,pre,u,ul,p

当有人回复此评论时请E-mail通知我

允许的HTML标签: a,b,br,blockquote,i,li,pre,u,ul,p

当有人回复此评论时请E-mail通知我

讨论

登陆InfoQ,与你最关心的话题互动。


找回密码....

Follow

关注你最喜爱的话题和作者

快速浏览网站内你所感兴趣话题的精选内容。

Like

内容自由定制

选择想要阅读的主题和喜爱的作者定制自己的新闻源。

Notifications

获取更新

设置通知机制以获取内容更新对您而言是否重要

BT