从上周的平静中恢复过来,我们完成了许多期待已久的功能和修复!我们也在继续开发我们的 AI 集成和整体稳定性。
Max
本周,我修复了 Zed 在 ERB 和 HEEx 等语言中解析代码时的一些问题,在这些语言中,多个不相交的代码范围需要组合成一个文档。
对于这两种模板语言,底层编程语言(分别是 Ruby 和 Elixir)对换行符有特殊的含义。但是在外部模板中,换行符通常不会出现在代码片段范围内。因此,以前在下面的 ERB 文件中,Ruby 代码片段将被解析为它们之间没有换行符,这可能导致错误的语法树。现在,当解析出现在不同行上的不相交范围时,Zed 将在它们之间包含一个换行符,这更接近于代码的实际解释方式。
<head><% statement_1() %></head>
<div><% statement_2() %></div>
除了这个解析问题之外,在使用这些模板语言时,Zed 如何选择特定于语言的编辑行为也存在问题。以前,在这些语言中,即使光标未位于该语言的代码片段内部,切换注释和自动关闭括号等命令有时也会使用“内部”语言的设置。
Piotr
本周,我专注于完善分支和项目选择器,改进 PHP 语法高亮显示,改进 tree-sitter 的代码生成。分支列表获得了一个新的“创建分支”按钮和一个模态版本(键盘爱好者欢欣鼓舞),而项目选择器修复了它的结果高亮显示。我真的很想在下周的预览版本中发布 PHP;语法高亮显示已经完成,现在我正在设置与 LSP 的集成。我正在做的 Tree-sitter 工作与 C 代码的生成方式有关。我一开始尝试改进 tree-sitter-rust
的编译时间,并且在此过程中,我加快了其他解析器的速度,同时将 tree-sitter-rust 的编译时间从 30 秒缩短到 6 秒。耶!下周我计划继续开发 PHP 集成并向上游推送 tree-sitter 的更改。
Mikayla
我一直在努力寻找直播项目的灵感,所以本周我决定休息一下,专注于我们遇到的一堆小 UI 问题。我添加了一个用于调整中心窗格中拆分大小的系统,添加了文件图标,添加了 svelte 语言,并思考了我们如何将 Zed 集成到更广泛的编码即内容的世界中。关注这个空间,下周会有更多内容!
Nathan
对我来说是短暂的一周,因为我刚从假期回来。主要是在赶进度,并与大家讨论一切的进展和下一步的计划。
我的个人贡献继续集中在一个新的通用 Cell
元素上,该元素将我们所有现有元素组合成一个,以便于样式设置。我花了一些时间与 Zed 的新设计师 Derek 合作,为该组件设计理想的样式设置界面。我还探索了在开发中热重载我们的样式,以便我们可以在 Rust 而不是 TypeScript 中制作它们。让我们看看这会带来什么。
Derek
我从周三开始,只工作了半周。我已经开始迭代一些关于缓冲区内联代码和 ai 编辑的想法。我正在支持 Max 和 Kyle 提供一些更新的搜索 ui 设计,以适应他们正在开发的自然语言搜索功能。我还花了很多时间与 Nathan 讨论他在 GPUI 中一直在做的新的 Cell
工作。我尽可能多地提供帮助,特别是影响样式/布局 api。
Nate
多么棒的一周!很高兴 Derek 加入我们,在接下来的一个月左右的时间里,帮助探索一些设计工作,所以我们花了很多时间讨论关于设计、主题、助手等一系列事情。
我一直在开发新的 Channels 面板,您可以在其中看到您所在的组织/群组中的所有频道,并加入它们。最初,这将用于加入您所在的组织中发生的直播,但稍后这将成为您进入讨论的方式之一。频道可以托管讨论和直播。这个面板是目前实现我们在公开场合构建 Zed 的愿景的障碍之一,所以我很高兴能尽快将其放入应用程序中。它还将使加入活跃的通话和直播更加容易,因为我们目前在这方面在 Zed 和 Slack 之间进行拆分。
自从我们推出语音以来,主要在 Zed 中见面真是太酷了!
否则,我一直在为一些新语言添加一些语法高亮显示,进行一些主题工作,对助手进行设计调整等等。忙碌的一周! :)
Joseph
一段时间以来,团队一直在讨论是否有一种方法可以查看 Zed 用户是否正在使用协作功能,所以我决定加入并在本周添加调用事件。我在 Metabase 中构建了一个调用仪表板,其中包含对调用数据的各种视图。 对于启用遥测的用户,我们可以看到调用何时开始、何时结束、调用中的用户数量等。提醒一下,代码永远不会存储在我们的遥测数据中,所有数据都是匿名的 - 它无法链接到特定用户。
Kirill
我对上周的希望成真了,这周也相对平静。
我完成了提示博文的第一个版本,收到了初步反馈,现在需要重写 - 我尝试了几次,但最终放弃了新的草稿。我想我现在厌倦了提示话题,不得不暂时把它放在一边。很高兴到目前为止实现没有问题,只剩下博文了。
我继续了我的征程,以解决错误和常见问题:修复了 LSP 重启问题(并第一次自己发布了修复程序),支持后缀完成和编辑器中的“全选”操作。目前我正在改进终端选择和导航,但似乎很难正确实现一些极端情况 - 我唯一的希望是 Mikayla 惊人的工作热情来帮助我。
Kyle
我的所有工作都分为两个大类:完善语义索引和 AI 路线图。
这是重要的一周,因为语义索引的第一个版本已在内部发布以供测试。总的来说,我对从索引中获得的搜索结果相当满意,但我们已经做了大量工作来完善我们嵌入的上下文信息,并将其扩展到其他语言。这项工作可能会持续到下周。除了语言方面的工作,我们还规划了一个相当重要的 UI 更改,以使此功能更易于访问,对用户更直观,并且这项新 UI 的工作才刚刚开始。虽然我们推出此功能的时间可能比最初预期的要晚,但新的 UI 更进一步,将为与这项工作进行交互提供更好的体验。
除了索引方面的工作,本周我花了一些时间来了解最近的 AI 研究。 这种发展的速度让人难以跟上,但随着语义索引的成熟,我越来越多的注意力开始转向 Zed 的 AI 未来。 围绕着未来可能的形态有很多很棒的讨论,我对我们可以在这个领域做的所有有趣的工作感到兴奋。
Julia
本周我花了不少时间深入研究我们在 Zed 中处理 panic 的方式。 Zed 的内部运作是高度并行和异步的,具有多种机制来执行非阻塞和可能耗时的后台工作。 根据具体情况,其中一项任务中的 panic 可能会导致不正确的崩溃报告,或者只是使应用程序处于不一致的、损坏的状态。 鉴于线程交互方式的根本限制,我们仍然没有 100% 的解决方案,但我们对情况的理解有所提高,有时这就是你能做的全部。