写点什么

Rust Language Server 可供率先采用者使用

  • 2017-02-06
  • 本文字数:902 字

    阅读完需:约 3 分钟

Rust Language Server (RLS)旨在更方便地设计具有诸如代码自动补全、goto 定义、重新格式化等功能的工具。RLS项目的主要贡献者之一Jonathan Turner 写道,RLS alpha 现在可供率先采用者尝试用于真实项目并给出反馈。

为收集源代码有关信息,Rust Language Server 同时使用Rust 编译器和 Racer ,Racer 是用于对 Rust 代码进行代码自动补全的工具。根据定义,编译器是该程序最权威的信息源,但是由于目前缺乏对 Rust 的增量编译的支持,可能速度会太慢。另一方面,虽然 Racer 在速度上有优势,但是如 Turner 所说,Racer 也有一些局限性,比如无法处理宏,或者说只能部分支持通用类型。因此,RLS 同时查询编译器和 Racer,以便于在预先设定的允许时间内提供最准确的信息。为使该过程尽可能高效,RLS 并不通过 shell 进程来控制编译器或 Racer,而是与两者相链接。

RLS 的当前版本支持以下功能:

  • 自动补全
  • goto 定义
  • goto 符号
  • 查找所有参考
  • 重命名 / 重构
  • 悬停类型
  • how 错误

RLS 的一个关键特征是采用了微软语言服务器协议(LSP)。LSP 在客户端(例如IDE 或文本编辑器)和语言服务器之间建立标准通信协议。这使RLS 可用于各种支持Microsoft LSP 的IDE 或编辑器,包括 Visual Studio Code、Eclipse Che 和 emacs。尤其是 RLS 可以通过安装插件用于Microsoft Visual Studio Code 。插件一旦安装,Visual Studio Code 将自动启动语言服务器,并支持 Rust 的高级编辑功能。

据 Turner 所说,虽然 RLS 目前仍处于早期阶段,还不适用于实际使用,但它应该能够应用于大多数基于 Cargo 的 Rust 项目。开发人员可以通过运行以下代码来安装:

复制代码
git clone https://github.com/jonathandturner/rls
git clone https://github.com/jonathandturner/rls_vscode.git
cd rls_vscode
npm install
export RLS_ROOT=/Source/rls

安装完之后启动 VS Code。所需软件有新版 nightly rustc/cargo 、git、python、node 和cmake。

查看英文原文 Rust Language Server Available for Early Adopters


感谢冬雨对本文的审校。

给InfoQ 中文站投稿或者参与内容翻译工作,请邮件至 editors@cn.infoq.com 。也欢迎大家通过新浪微博( @InfoQ @丁晓昀),微信(微信号: InfoQChina )关注我们。

2017-02-06 18:002509
用户头像

发布了 22 篇内容, 共 55355 次阅读, 收获喜欢 3 次。

关注

评论

发布
暂无评论
发现更多内容

【IT小知识】堡垒机支持哪些私有云平台?

行云管家

网络安全 私有云 等保 堡垒机

【深度解析】那些你不得不知的常见接口协议!

测试人

软件测试

【FAQ】HarmonyOS SDK 闭源开放能力 —Map Kit(2)

HarmonyOS SDK

HarmonyOS

实战指南:API 集成测试详解

Apifox

测试 后端 集成测试 API 测试工具

报名倒计时丨职场<火焰杯>测试开发大赛报名仅剩最后3天!

测试人

软件测试

高并发系统-使用自定义日志埋点快速排查问题

京东科技开发者

Databend 开源周报第 145 期

Databend

火焰杯测试开发大赛赛前辅导——web自动化

霍格沃兹测试开发学社

低代码赋能!让传统工业企业重新夺回数字化转型主动权!

优秀

低代码 数字化转型 工业数字化

即刻职达携手众多企业达成战略合作,共绘人力资源行业创新发展新篇章

新消费日报

融云荣获甲子光年「2024 中国 AI 出海服务创新企业」奖

融云 RongCloud

事业-最佳实践-架构-泛化建模

南山

领域驱动设计 DDD 领域建模 领域模型 泛化

AI晚报|GPT-4o最新语音交互模式即将上线,微软Build 2024开发者大会即将开幕...

可信AI进展

人工智能

LED显示屏:舞台艺术变革

Dylan

艺术 科技 LED显示屏 led显示屏厂家 舞台表演

LLM 大模型学习必知必会系列(五):数据预处理(Tokenizer分词器)、模板(Template)设计以及LLM技术选型

汀丶人工智能

人工智能 大模型

如何用ByteHouse,实现金融场景下的精准营销

极客天地

赛前辅导 | 职场<火焰杯>测试开发大赛赛前辅导-Web自动化测试

测吧(北京)科技有限公司

测试

事业-最佳实践-架构-降低系统复杂度

南山

架构设计 架构设计原则 设计原则 复杂度 系统复杂度

中间件是什么?信创中间件有哪些牌子?

行云管家

中间件 信创 堡垒机

CHIMA 回顾|图尔兹携 HySuite 亮相,新一代医疗数据安全方案更全面、更精准、更智能

BinTools图尔兹

数据安全 电子病历 数据库管理 医疗信息化 互联互通

那些你不得不知的常见接口协议!

测吧(北京)科技有限公司

测试

报名倒计时丨职场<火焰杯>测试开发大赛报名仅剩最后3天!

测吧(北京)科技有限公司

测试

Rust Language Server可供率先采用者使用_语言 & 开发_Sergio De Simone_InfoQ精选文章