写点什么

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:002884
用户头像

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

关注

评论

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

长沙等保测评公司有哪些?现在有新增吗?

行云管家

等保 等级保护 等保测评 长沙

chatGPT接入微信公众号方法总结(纯聊技术)

特立独行的猫

微信 ChatGPT 公众号接入

Zebec官方辟谣“我们与Protradex没有任何关系”

鳄鱼视界

免费领取丨精算与金融建模行业解决方案白皮书,不要错过!

葡萄城技术团队

共铸国云智领未来| 装上“数智”引擎,助力汽车生产跑出“加速度”

天翼云开发者社区

HTML性能优化-Prerender2.0机制解读

百度Geek说

html API 企业号 2 月 PK 榜

DevData Talks | 对谈谷歌云 DORA 布道师,像谷歌一样度量 DevOps 表现

思码逸研发效能

研发效能

从人工测量转向计算机视觉,基于PaddleSeg实现自动测量心胸比

飞桨PaddlePaddle

深度学习 开发者 开发工具 飞桨

移动应用程序开发新趋势

没有用户名丶

天翼云iBox边缘盒子四大优势,让人工智能在边缘侧“狂飙”

天翼云开发者社区

火热报名 | DockQuery 1.2 beta版本体验官开启招募!

BinTools图尔兹

数据库 协作 研发 体验官

跨越声音障碍,虚拟数字人「手语翻译官」开发落地实践

阿里技术

人工智能 数字人 虚拟人 技术温度

LeetCode题解:633. 平方数之和,枚举,JavaScript,详细注释

Lee Chen

JavaScript 算法 LeetCode

更轻量的百度百舸,CCE Stack 智算版发布

百度开发者中心

云计算平台 百度百舸

云管理行业标杆产品有哪些品牌?大家重点推荐哪家?

行云管家

云计算 云服务 云管理 云管

全球首个云渗透测试认证专家课程发布!腾讯安全领衔编制

腾讯安全云鼎实验室

云安全

PostgreSQL:进程结构

天翼云开发者社区

MQTT遗嘱消息(Will Message)的使用

EMQ映云科技

物联网 IoT mqtt 企业号 2 月 PK 榜 遗嘱消息

深入理解跳表及其在Redis中的应用

京东科技开发者

redis 数据结构 算法 跳表 链接

职场IT老手教你3步教你玩转可视化大屏设计,让领导眼前一亮!

葡萄城技术团队

微服务架构中的多级缓存设计还有人不懂?

小小怪下士

Java 程序员 架构 微服务

JS语法让人困惑的点 “==与===”

葡萄城技术团队

10 分钟搭建自己的专属 ChatGPT

FinClip

打造合规数据闭环,加速自动驾驶技术研发

百度开发者中心

自动驾驶 人工智能’

MQTT协议Keep Alive详解

EMQ映云科技

物联网 IoT mqtt 企业号 2 月 PK 榜 半连接

有奖调研!第五期(2022-2023)传统行业云原生技术落地调研——金融篇

York

容器 微服务 云原生 问卷调研

这个只要三步就能实现ins图片下载的方法!我直接就是一个疯狂点赞的大动作!

frank

ins图片下载

云原生 + AI 时代已至,大数据底座何去何从?

Kyligence

hadoop 云原生

领跑政务云市场!天翼云持续深耕政务云建设

天翼云开发者社区

基于鲲鹏DevKit原生开发光伏智能巡检平台,性能提升44%

极客天地

使用element-ui 的上传组件upload完成自定义上传到天翼云oss云服务器

天翼云开发者社区

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