JJ LSP 后续

matklad 工具

摘要

作者描述了即将推出的 LSP 3.18 Text Document Content Request 功能如何通过提供虚拟文档,为 jj (Jujutsu VCS) 实现不那么 hacky 的 Magit 风格用户体验。

<header> <h1>JJ LSP 后续</h1> <time class="meta" datetime="2026-03-05">2026 年 3 月 5 日</time> </header> <p>在 <a href="https://matklad.github.io/2024/12/13/majjit-lsp.html"><em>Majjit LSP</em></a> 中,我描述了一个想法:利用 LSP 协议,一劳永逸地为 <a href="https://www.jj-vcs.dev">jj</a> 实现 <a href="https://magit.vc">Magit</a> 风格的用户体验。今天我了解到,即将推出的 LSP 3.18 版本包含一项功能,可以大大降低这种实现的 hacky 程度:<a href="https://microsoft.github.io/language-server-protocol/specifications/lsp/3.18/specification/#workspace_textDocumentContent" class="display"><em>Text Document Content Request</em></a></p> <p>LSP 现在可以提供虚拟文档,这些文档实际上并未在磁盘上物化。因此:</p> <figure> <img alt="" src="https://github.com/user-attachments/assets/f65cedf9-5fa8-4506-b8bb-2e55e1ee1913" width="856" height="620"> </figure> <p>现在可以是一个虚拟文档,其中高亮由语义令牌提供,诸如“签出此提交”之类的操作是代码动作,而“转到定义”则从虚拟文件中的 diff 跳转到工作树中的真实文件。</p> <p>令人兴奋!</p>
查看原文
查看缓存全文

缓存时间: 2026/05/16 03:33

# JJ LSP 后续 来源:https://matklad.github.io/2026/03/05/jj-lsp-followup.html 2026年3月5日 在《Majjit LSP》(https://matklad.github.io/2024/12/13/majjit-lsp.html)一文中,我描述了一个想法:利用 LSP 协议,一劳永逸地为 jj(https://www.jj-vcs.dev/)实现 Magit(https://magit.vc/)风格的用户体验。我今日得知,即将发布的 LSP 3.18 版本中有一个功能,可极大降低其 hackiness 程度:*文本文档内容请求*(https://microsoft.github.io/language-server-protocol/specifications/lsp/3.18/specification/#workspace_textDocumentContent) 现在,LSP 可提供虚拟文档,这些文档实际上并未在磁盘上物化。于是此: 如今可以成为这样一份虚拟文档,其中高亮由语义令牌提供,“检出此提交”等操作是代码动作,“转到定义”则从虚拟文件中的差异跳转到工作树中的实际文件。 令人兴奋!

相似文章

jj v0.41.0 发布

Lobsters Hottest

Jujutsu (jj) v0.41.0 已发布,这款实验性版本控制系统迎来了更新,旨在提升易用性和冲突处理能力。

jujutsu v0.42.0 发布

Lobsters Hottest

Jujutsu (jj) 版本控制系统发布了 v0.42.0。Jujutsu 是一款开源 VCS,以 Git 作为存储后端,同时提供更符合人体工程学的操作界面,其功能设计灵感来源于 Mercurial、Sapling 和 Darcs。

面向 LLM 的 Markdown 浏览器

Reddit r/LocalLLaMA

作者介绍了 TextWeb,这是一个开源工具,它将网页渲染为 Markdown 格式供 LLM 处理,而非使用昂贵的大视觉模型,该工具支持命令行界面 (CLI) 和 MCP 服务器。

使用 jj 生成更好的分支名称

Lobsters Hottest

本文介绍了 jj 版本控制系统的一个模板别名,通过将提交描述转换为 slug 来生成更易读的分支名称,从而改善默认基于变更 ID 的命名方式的可用性。

Jujutsu 大规模合并:为了乐趣与收益

Lobsters Hottest

本技术指南介绍 Jujutsu(一款替代 Git 的版本控制系统)中的“megamerge”工作流,讲解如何利用章鱼式合并(octopus merges,即具有 3 个及以上父提交的提交)高效管理多个并发分支与开发上下文。