Lobsters | 原文链接 | 2026-09-17 收录

为什么写一个 Rust 语言服务器这么难

来源: rust-glancer.github.io — 2026-09-15

概述

作者在开发实验性的 Rust 语言服务器「Rust Glancer」,文章从架构层面讲述难点:语言服务器必须在只有部分信息的情况下给出有用的答案。initialize 请求到来时服务器还一无所知,却要立即决定是否阻塞等待索引;索引一旦缺失,文档符号这类请求就没有答案,而 inlay hint 依赖语义分析与定义映射,需要先解析文件、构建 item tree、解析模块并生成「从哪儿能看到什么」的映射,才能回答光标下的符号来自哪里。

核心要点

金句

构建 LSP 的本质,就是从部分信息里挤出有用的答案。
返回 Lobsters 首页