在过去两周的一系列更新之后,我们都回归到长期项目中。我们有频道、GPUI 更新,以及许多小的调整和改进。
Kirill
非常缓慢的一周:除了修复错误之外,我还在尝试理解鼠标拖放在代码中的结构,结果发现它并不简单。我有一个可以工作的文件的拖放的第一个草稿,但是将其正确地嵌入到现有系统中是另一个很大的任务。
感觉很疲惫,很高兴我下周开始休假,这应该能给我更好的关于这项大任务的想法。
Max
本周,我一直在研究 Zed 的新*频道*功能。频道将提供一个在 Zed 中进行基于文本的关于代码的对话的地方。它们还将允许我们将协作会话公开可见 - 有点像 Twitch 直播,但更具互动性,因为观众将能够自己浏览共享项目。我们已经为创建和加入频道确定了用户体验的初始版本,并且我们已经开始实施它们。
Conrad
我专注于改进 Vim 模拟。本周用户可见的主要改进是模式指示器(预览版有一个不顺利的开始,谢谢 Julia & Mikayla!)。在后台,我一直在确保 Vim 选择始终与 Zed 选择匹配。这立即修复了许多边缘情况,并为可视块模式和多光标支持铺平了道路。
Derek
本周进行了更多图标工作,并在 figma 中花费时间来研究 AI oneshot 想法。还与 Nathan 共同研究了即将到来的 GPUI 热点。我创建了一些演示布局,以便在更新更接近于通用时进行尝试。还开始记下一些关于设置 UI 以及更新的助手 UI 的想法。
Nate
频道是重中之重!我们一直在研究新频道功能的设计,该功能最初允许您流式传输到频道,添加可以直接编辑您的项目的成员,并共享一个公共链接供人们以只读模式加入。这里有很多需要考虑的事情,我们一直在努力思考人们通过流式传输所采用的所有不同路径,并找到体验中的所有角落案例。
在频道之外,我一直在研究一些较小的东西——我对我们的主题系统进行了一次更新,允许我们对在我们的 tree-sitter 查询中捕获的任何语法样式进行样式设置,这是动态构建的。现在我们不再需要手动维护我们想要支持的所有不同语法样式的列表。我们只需传入我们希望在默认主题中看起来特别的方式,其余的都使用默认样式进行样式设置。这意味着我们可以支持对任何新语法样式的覆盖,而无需更新主题。
还有很多,但这正在变成一部小说。祝你周末愉快!
Mikayla
本周正式启动了我们协作功能的重大升级。我一直在与 max 密切合作,以构建一个新的协作面板,将频道信息放入其中。频道特别有趣,因为我们将它们建模为数据库中的 DAG,以实现跨组织共享频道。但是用户主要将它们作为一棵树进行交互,该树源自一些任意节点,该节点不一定是 DAG 的根。你甚至可以将用户的视角本身视为 DAG 的另一个根。这为我们提供了一种表达许多有趣的社会结构的方式,这种方式应该感觉直观而强大。此外,这也意味着可以编写我最喜欢的代码:使用子查询和递归 with 表达式来解决整个问题的令人讨厌的 SQL 语句 :D
Nathan
Antonio 和我早上一起研究 CRDB。我们专注于为内存中的 B 树配备持久化到磁盘的能力,我们使用这些 B 树来索引文档片段和操作。下午,我继续致力于改进基于我们到目前为止对该系统的了解,在 GPUI 中设计 UI 的体验。它还不是很漂亮,但这里可以预览一下即将出现的内容。


Julia
我度过了一个相当轻松的一周,调查了各种小错误,直到我们开始注意到来自我们的预览频道的大量 panic 涌入。虽然预览的目的是在潜在的糟糕错误和我们的普通用户群之间提供一个缓冲区,但这仍然是我们需要尽快解决的问题。不幸的是,我们所拥有的回溯并不是最有用的,而且我一天的大部分时间都在徒劳地寻找。值得庆幸的是,Mikayla 来拯救了我,她预感她帮助开发的一个新的 Vim 模式功能可能存在问题。一旦我们有了明确的方向,我们很快就发现了并迅速修复了崩溃的原因。
Joseph
这周对我来说很令人兴奋。除了通常的社区运营和一些编程任务之外,我还在 Zed 中实现了一些我一直想要的小功能。第一个是workspace: close all docks
(默认绑定到 alt-cmd-y
),它只是通过一个操作关闭你可能打开的三个停靠栏。我之前经常同时打开所有停靠栏,并且需要快速执行多个命令才能全部关闭,这让我感到沮丧。我合并的第二个 pull request 是一组文本操作命令:editor: sort lines case sensitive
、editor: sort lines case insensitive
、editor: reverse lines
和 editor: shuffle lines
。能够控制文本行的重新排序感觉很好。感谢 Julia 和 Mikayla 帮助我解决了关于 Zed 代码库的一些疑问。这些命令在 v0.97 中可用。