本周在 Zed,我们提高了语义索引的吞吐量和一致性,并在我们的 AI 工作中引入了一个很棒的内联助手。 在我们完善频道笔记和搜索功能的同时,我们正在为主要的 UI 基础设施变更做准备。
Kyle
本周,我们一直在改进语义索引,这对于将用户上下文集成到 Antonio 的内联助手项目中至关重要。 值得注意的是,我们调整了批处理功能,使其基于令牌数量而不是跨度数量进行批处理。 这使我们能够异步批量处理文件片段,同时保持原子文件写入在我们语义索引中的完整性。 这大大减少了 OpenAI 请求的数量,提高了吞吐量并增强了引擎的一致性。
我们还实现了一个嵌入缓存,以避免每次保存文件时重新嵌入所有 Treesitter 跨度的昂贵过程。 此过程为未更改的跨度发送冗余的 OpenAI 请求,并浪费计算资源,从而减慢了引擎的速度。 我们的新缓存消除了这种冗余,并将增量索引期间的令牌数量减少了大约 75%。 在扩展应用程序中的语义功能之前,这项至关重要的改进是我们旨在实现的最后一项。 我们可能会在本周完成索引功能的最终确定,然后再专注于在 Zed 中利用此引擎的用例。
Mikayla
我一直很忙于研究其他频道功能,没什么可报告的。 本周我回去将我们的频道树变成 DAG,所以下周应该会有更多 :D
Nate
我们本周正在推出 Tailwind (非常感谢 Julia & Kirill),所以我花了很多时间来测试它,指出错误,并尝试破坏它。 我们发现了一些将在未来几周内出现的问题。
除此之外,我一直在从事一些幕后的 UI 工作,为即将推出的一些大型 UI 基础设施变更做准备。 在我们推出一些幕后重大变更后,在接下来的几周内,您可能会看到视觉变更暂停,这将使我们能够更快地编写 UI。
Max
本周,我继续致力于频道笔记——托管在云端的可协作编辑的 markdown 文件,它们与每个 Zed 频道相关联。 具体来说,我一直在努力允许您在暂时失去互联网连接的情况下无缝地重新连接到频道笔记缓冲区。
Antonio
Zed 中 AI 集成的激动人心的时刻:我们已经合并了内联助手的第一个迭代版本,该版本将于明天发布。 正如 Kyle 提到的,我们现在一直在研究语义索引,以便在生成代码时提供更相关的上下文。
Joseph
除了我的日常社区职责之外,本周我还在 Python 领域花费了更多时间。 我注意到我们的脚本,该脚本生成我们的键绑定文档中存在一些问题,因此我花了一些时间来纠正它。 我还花了一些时间来开发我的反馈工具副项目,feedback_commander
。

这个东西还处于起步阶段,显然需要很多关注; 需要构建 UI,之后需要添加 AI 功能。 当前的 UI 基本上是调试后端所需的最低限度。
在 Python 中工作继续让我更清楚地了解 Zed 中该领域存在的哪些摩擦。 快速成为一个麻烦的事情是每次启动终端时都必须手动激活虚拟环境,因此我与团队合作以在 Zed 中推出对自动虚拟环境激活的初始支持(在 v0.102 中可用)。 Zed 将在您的项目的根目录中检查虚拟环境目录并将其激活。 提供了设置以允许自定义要检查虚拟环境的可能路径以及要运行的激活脚本。 这些可以全局配置以一种方式工作,然后在每个项目的基础上进行覆盖(如果需要)。
在这个领域有很多工作要做,但我正在考虑我的下一个 Zed-Python 冒险将是添加一些初始的Poetry支持。
Kirill
本周的主要事情是 Tailwind 补全:我和 Julia 将其推到了可交付的状态,其中多个语言服务器(包括 Tailwind)可以在不同的 Web 上下文(html 文件的 css 部分、纯 js 文件等)中提供补全。 这似乎是 Web 开发方面更大工作的开始,让我们看看它会带我们走多远。
总的来说,一次试验多个语言服务器带来了一些生活质量方面的改进
- rust-analyzer 获得了更多 PR,其中一个应该通过删除过多的服务器 /refresh 请求来改善 inlay hints 的加载
- Zed 的语言服务器日志面板现在显示服务器的 stderr,很快将允许清除日志
- 失去焦点的 Zed 窗口中的光标不再闪烁,屏幕上多个打开的 LSP 项目现在不再那么分散注意力并且使用更少的资源
- 在后台,我正在慢慢地努力用本地副本覆盖现有语言服务器的能力
下周,我计划与 Julia 更多地合作开发 Web 工具,在 Zed 中支持prettier
。 我真的希望这项工作为 Zed 中的插件铺平道路。
Piotr
本周我完成了搜索改进。 然而,我并没有就此止步; 在本周的后半部分,我一直在研究“在缓冲区中替换”。 事实上,它已经基本准备就绪,除了样式和确定 UI 之外。 我相信可以公平地说,它应该在 9 月的某个时候推出。 我计划将其与在项目中替换分开发布,我尚未对此进行研究。