周三,我们发布了 Zed 0.89,它支持语言服务器协议中的 OnTypeFormatting 请求。对于支持它的语言服务器,例如 rust-analyzer,这将使编辑体验更好,例如在插入开括号时,适当地自动插入闭括号。
以下是我们每个人本周的工作
Antonio
本周我一直在打磨一个新功能,它将在下一个版本的 Zed 中推出:助手面板。此面板与 OpenAI 集成,提供类似于 ChatGPT 的体验,但使用多缓冲区,其中每条消息都可以编辑或删除。我们一直在内部使用它,我们认为这是一种与 AI 交互的绝佳方式,我个人很期待在下周发布时将其开放给其他人。
约瑟夫
本周,我完成了一些与恐慌遥测相关的剩余工作。在收集了一周的数据后,图表开始显示其价值。拥有多种视角来查看我们的崩溃并能够快速响应是游戏规则的改变者。此外,我在周末恢复了我们的反馈分析工具的工作,该工具将把我们的应用内反馈汇总成更易于理解的报告。
Piotr
我本周致力于添加对两个功能的支持:选择上一个编辑器命令和注释续写。这两个都相对简单(我的同事们很快就帮助解决了棘手的部分——向他们致敬!)。我还对我们的构建配置进行了一些小的调整,涉及到 LTO 和工具链管理。在某个时候,我还想研究如何让我们的构建速度更快一些。下周我计划与 Mikayla 合作进行 Zed 的协作部分(显然)。
马克斯
我本周花了一些时间改进了 Zed 对 Elixir 的支持。我纠正了语法高亮的一些问题,并在 Elixir 的大纲视图中添加了一些信息。以前,大纲视图只显示函数的名称,但在 Elixir 中,有许多同名函数定义是很常见的,所以我们现在也显示参数。
语法高亮和轮廓视图都使用 Tree-sitter 查询进行控制,因此这主要涉及到更改这些查询。在进行这些更改的过程中,我还为 Zed 添加了一个功能,即在开发过程中,一旦您更改了查询,查询就会动态重新加载。这将使未来迭代 Zed 的语言支持速度更快。
我还调查了用户报告的一些与 Elixir 语言服务器 elixir-ls 相关的问题。在修复这些问题的过程中,我提高了 Zed 中语言服务器日志的可见性。语言服务器日志视图现在除了显示与该服务器交换的协议消息外,还显示每个语言服务器的日志。
米凯拉
终于发布了我们 Git 状态系统的重写版本,恰好发现了我们的预览服务器上与旧系统工作方式相关的崩溃!既然这项工作已经完成,我将开始一个新项目,该项目将 Soon™ 宣布。
基里尔
本周,我开始研究内联提示功能,这个功能耗费了我整整一周的时间,我感觉下周也会类似。好的一面是,在 Julia、Antonio 和 Zed 出色的协作能力的帮助下,原型正在接近完成——当我在编辑器的黑暗深处陷入困境时,我总能得到一些帮助。
茱莉亚 (Julia)
正如我上周讨论的,我们一直面临的一个主要问题是,当我们在用户设备上下载的语言服务器副本损坏时。这可能以多种方式发生,尽管最常见的原因似乎是下载和解压操作的某种中断。我本周的大部分精力都花在改进我们的语言服务器处理上,以检测服务器何时启动失败或在使用过程中崩溃,然后测试安装是否有效。一旦我们能够检测到损坏的安装,我们就可以将其删除并重新下载服务器,从而防止用户看到烦人的“语言服务器更新失败”消息以及其他问题。