← 返回博客

Zed 周报:#18

本周在 Zed,我们提升了语义索引的吞吐量和一致性,并在 AI 方面引入了一个出色的内联助手。在完善频道备注和搜索功能的同时,我们正在为重大的 UI 基础设施变更做准备。

凯尔

本周,我们一直在改进语义索引,这是将用户上下文集成到 Antonio 的内联助手项目的关键。值得注意的是,我们调整了批处理函数,使其基于令牌数量而不是跨度数量进行批处理。这使得我们可以在异步批处理文件片段的同时,保持语义索引中原子文件写入的完整性。这大大减少了 OpenAI 请求的数量,提高了吞吐量并增强了引擎的一致性。

我们还实现了一个嵌入缓存,以避免每次保存文件时都重新嵌入所有 treesitter 跨度这一耗时的过程。这个过程为未更改的跨度发送了冗余的 OpenAI 请求,浪费了计算资源,从而减慢了引擎。我们新的缓存消除了这种冗余,并在增量索引期间将令牌数量减少了大约 75%。这项重要的改进是我们计划在扩展应用程序中的语义功能之前要实现的关键项目之一。我们可能会在接下来的一周内完成索引功能,然后专注于在整个 Zed 中利用此引擎的用例。

米凯拉

我一直忙于研究额外的频道功能,目前还没有太多可以报告的。不过,这周我又开始致力于将我们的频道树转换为 DAG,所以下周应该会有更多内容 :D

内特

我们本周将推出 Tailwind(非常感谢 Julia 和 Kirill),所以我这周花了很多时间对其进行测试,指出瑕疵,并试图找出问题。我们发现了一些问题,将在接下来的几周内解决。

除此之外,我一直在幕后进行一些 UI 工作,为即将到来的一些重大 UI 基础设施变更做准备。未来几周你们可能会看到视觉变化暂停,因为我们正在进行一些重大的幕后更改,这些更改将使我们能够更快地编写 UI。

马克斯

本周,我继续致力于“频道备注”——托管在云端、可协同编辑的 Markdown 文件,它们与每个 Zed 频道关联。具体来说,我一直在研究如何在您暂时失去互联网连接时无缝地重新连接到频道备注缓冲区。

Antonio

Zed 中的 AI 集成令人兴奋:我们已经合并了内联助手的第一个迭代版本,它将于明天发布稳定版。正如 Kyle 所说,我们现在正在研究语义索引,以便在生成代码时提供更相关的上下文。

约瑟夫

除了日常的社区职责,我这周花更多时间在 Python 领域。我发现我们生成键绑定文档的脚本存在一些问题,所以我花了一些时间来纠正它。我还花了一些时间研究我的反馈工具副项目,feedback_commander

Feedback Commander
反馈指挥官

这个东西还处于初期阶段,显然需要大量的关注;UI 需要构建起来,之后还需要添加 AI 功能。当前的 UI 基本上是调试后端所需的最低限度。

在 Python 中工作让我对 Zed 中这个世界存在的摩擦有了更多的认识。一个很快变得麻烦的事情是每次启动终端时都必须手动激活虚拟环境,所以我与团队合作,在 Zed 中实现了自动虚拟环境激活的初步支持(在 v0.102 中可用)。Zed 将在项目的根目录中检查虚拟环境目录并激活它。已提供设置,允许自定义检查虚拟环境的可能路径以及要运行的激活脚本。这些可以全局配置为一种方式,然后在需要时按项目覆盖。

在这个领域还有很多工作要做,但我认为我的下一次 Zed-Python 冒险将是添加一些初步的Poetry 支持。

基里尔

本周的主要工作是 Tailwind 补全:我和 Julia 将其推向可交付状态,多个语言服务器(包括 Tailwind)可以在不同的 Web 上下文(HTML 文件的 CSS 部分、纯 JS 文件等)中提供补全。这似乎是 Web 开发领域更大工作的开始,让我们拭目以待它会带我们走多远。

总的来说,同时试验多个语言服务器带来了一些生活质量上的改进

  • rust-analyzer 又收到了几个 PR,其中一个应该通过删除过多的服务器/刷新请求来改善内联提示的加载
  • Zed 的语言服务器日志面板现在显示服务器的 stderr,很快将允许清除日志
  • 失去焦点的 Zed 窗口中的光标不再闪烁,屏幕上多个打开的 LSP 项目现在干扰更小,占用资源也更少
  • 在后台,我正在缓慢地开发用本地副本覆盖现有语言服务器的功能

下周,我计划与 Julia 合作,在 Zed 中更多地关注 Web 工具,支持 prettier。我真希望这项工作能为 Zed 的插件铺平道路。

Piotr

本周我完成了搜索改进。但我并没有就此止步;在本周的后半段,我一直在研究“缓冲区内替换”功能。事实上,它已经基本就绪,除了样式和确定 UI 之外。我认为它应该会在九月份的某个时候发布。我计划将其与项目内替换分开发布,我还没有研究后者。


正在寻找更好的编辑器吗?

您今天就可以在 macOS、Windows 或 Linux 上试用 Zed。立即下载


我们正在招聘!

如果您对我们博客中涵盖的主题充满热情,请考虑加入我们的团队,帮助我们实现软件开发的未来。