← 返回博客

Zed Industries 本周动态:#2

2023 年 5 月 12 日


距离上次“Zed 本周动态”已经过去 4 个月了。这比 4 年好了一个数量级,所以我认为我们正在掌握它。

今天,让我们看看大家在 Slack 上都在做什么

Joseph

我们一直在通过应用程序内的反馈功能从用户那里获得大量反馈。每周,我都会阅读所有反馈,并寻找重复出现的主题,以便呈现给团队。这大部分都很好,但为了让我们能够更深入地挖掘并消除近因偏差,Nathan 和我开始构建一个新工具,这将帮助我们解析反馈并使用 AI 构建报告。我们将能够提出关于特定事情的问题,例如“Vim 用户目前想要什么?”或“Zed 最令人困惑的方面是什么?”我们很高兴看到这将如何帮助我们更有效地消化反馈。

Julia

维护 Zed 的性能和稳定性对我们来说非常重要。本周,我一直在解决项目搜索功能中的一个恼人的问题。在大型搜索中,它可能会冻结 UI 几秒钟。这是不可接受的。为了解决这个问题,Antonio 和我重新设计了我们的文件系统处理方式。这段代码非常复杂,因为它必须处理不可靠的文件系统事件、乱序查询以及协作者的远程文件系统。在非常大的项目搜索中,我们可以打开数十万个缓冲区,并且我们有一个操作会针对项目中的所有缓冲区发生。删除此操作影响了代码库的几个核心假设。值得庆幸的是,我们的随机集成测试可以在新错误发布之前捕获许多新错误。

Kirill

在 Zed 的前 2 周,我一直在尝试编辑器的各个角落,希望能找到可以完成的小任务。本周,我将基于 glob 的路径过滤添加到项目搜索面板。匹配可能会以增加误报为代价变得更加符合人体工程学,但我们应该在更多地考虑默认情况下要从项目搜索中排除/包含的文件之后再重新审视这一点。本周的其余时间更加复杂:了解 GPUI 的内部结构、事件、按键以及更多关于主题的内容是一种有趣的混合,但最终完全值得。

在与项目搜索过滤并行进行的同时,我还在努力发布一个设置来渲染空白字符,这是我一个月前在面试中提到的一个功能。这进行得非常顺利,这要归功于 Zed 的协作功能:每当我迷失在代码库中时,人们都会加入我的项目,向我展示并沿途修复我本地项目中的问题。回顾并看到由于这种支持,我的工作效率如何真是太棒了,让我们看看它从长远来看会如何运作。

在本周末,Intel Mac 给我们带来了一个意外的故障 — 我编写的模态键盘交互 PR 中的一个段错误。值得庆幸的是,这是一个快速修复。解决了所有问题后,一切恢复正常,给我留下了更多的角落可以探索:如果一切顺利,下一站将是 CLI 和文件打开模态框。

Mikayla

本月,我将来自您的 git 存储库的信息集成到 Zed 中。上周,我们重新设计了存储库状态的内存表示,以便我们可以通过网络同步它,使用分支名称检测作为一种激励用例。本周,该方法已扩展为添加项目当前每个文件的 git 状态的实时视图。这是当前实现的屏幕截图

Screenshot showing the git status for several files in Zed's project panel.
屏幕截图显示了 Zed 项目面板中几个文件的 git 状态。

下周:更多与 diff hunk 交互的方式 :D

Nate

本周我一直专注于 Zed 的主题系统(从过去几周开始)。这项工作的目标是以编程方式消除当今应用程序中的许多对比问题,更全面地考虑深色和浅色主题之间的差异,并创建一个所有主题都将使用并在其基础上构建的主题配置。这项工作涵盖了我们的文档中主题路线图中的主题 1.0 规范步骤。希望我可以在下周的更新中分享一些关于主题的正在进行的工作!

在过去的几周里,这占据了我一天的大部分时间,但在主题工作之外,本周我们一直在内部和与社区讨论项目面板、缓冲区中的诊断以及查找和替换。

我已开始在我们的社区 Discord 服务器中发布一些正在进行的工作。从人们那里获得非常早期的反馈,并听到你们所有人以与我们的团队不同的方式使用东西的许多方式真是太好了。我希望继续为某些功能做更多这种公开构建风格的工作。如果您想查看其中一些正在进行的工作,并分享您的想法,请随时加入我们。

祝大家周末愉快!

Nathan

我录制了一个播客:Whiskey Web & Whatnot,我在其中喝了一些美味的威士忌,并谈论了一系列个人和技术话题。然后我用我血液中的威士忌写了一些代码,效果出奇的好!Rust 类型系统的又一次胜利。

在代码方面,Antonio 和我一直在改进 Zed 的工作区,以使项目面板可以停靠在左侧或右侧。终端现在将分组在一个面板中,但您仍然可以将面板拖到工作区窗格中,并且这个新的终端面板可以停靠在工作区的左侧、右侧或底部。发布时,我将发布更深入的解释。

可停靠面板的预览

这一切都是为了开始将 ChatGPT 集成到 Zed 中,以助理面板的形式。我们需要一个地方来放置它!