RLS 废弃

2022 年 7 月 1 日 · Rust 开发工具团队

Rust Language Server (RLS) 正在被 rust-analyzer 替代,并已标记为废弃。RLS 的现有用户应迁移到使用 rust-analyzer。RLS 的构建版本将至少持续发布到 Rust 1.64 版本(2022 年 9 月 22 日),之后将不再发布新版本。如果出现任何问题,此时间表可能会有所调整。

RLS 是 Language Server Protocol (LSP) 的一个实现,它为任何支持该协议的编辑器提供增强功能,例如代码检查和重构。RLS 由 RFC 1317 引入,并在 2016 年到 2019 年期间开发非常活跃。然而,RLS 的架构存在一些限制,这使得难以提供交互式环境所需的低延迟和高质量响应。

rust-analyzer 的开发始于 2018 年初,旨在为 Rust 提供一个替代的 LSP 实现。rust-analyzer 采用了一种根本不同的方法,不依赖于使用 rustc。在 RFC 2912 中,rust-analyzer 被采纳为 RLS 的官方替代品。

如何迁移到 rust-analyzer 取决于您使用的编辑器。如果您使用 VSCode,您应该卸载 rust-lang.rust 扩展并安装官方的 rust-lang.rust-analyzer 扩展。对于其他编辑器,请查阅 rust-analyzer 手册 获取安装说明。

如果您在迁移到 rust-analyzer 时遇到任何问题,可以在 Rust 用户论坛的 编辑器和 IDE 类别 中寻求安装和使用方面的帮助。

我们将很快把官方的 rust-lang.rust VSCode 扩展标记为废弃,并会实现通知以告知用户此过渡。在 RLS 的发布构建结束后,我们计划在官方 Rust 版本中用一个小的 LSP 实现来替换 rls 可执行文件,该实现将告知用户 RLS 不再可用。

我们要感谢所有为 RLS 和 rust-analyzer 做出贡献的人。如果没有所有这些项目的贡献者的巨大努力,这些选项就不会存在。