写点什么

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

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

关注

评论

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

华为云大数据解决方案赋能金融行业发展,打造5G智慧银行营业厅

路过的憨憨

低成本、高效率!华为云桌面助力企业数字化转型

IT科技苏辞

华为云CDN多场景加速,“火速”留住用户

秃头也爱科技

敏捷转型下测试团队该如何安放?

QE_LAB

测试 敏捷转型

架构实战营 2-1 可扩展随堂练习

西山薄凉

「架构实战营」

cleanmymac有用吗?2023最新版本值不值得下载

茶色酒

CleanMyMac CleanMyMac X CleanMyMac X2023

第一周作业

不爱学习的程序猿

拒绝等待,华为云CDN下载加速就是要快人一步

路过的憨憨

华为云大数据BI赋能企业数字化发展

秃头也爱科技

与Web3支付赛道主要项目相比,Zebec生态潜力相当大

BlockChain先知

极客时间架构实战营第10期模块1作业

刘博

架构

SQLMAP _DNS注入配置方法

网络安全学海

网络安全 安全 信息安全 渗透测试 漏洞挖掘

【es】elasticsearch/es搜索服务器介绍

No8g攻城狮

elastic ES Elastic Search #java

ELK-logstash使用总结

忙着长大#

ELK

流畅高清,华为云桌面Workspace助力设计师高效办公!

秃头也爱科技

小游戏与h5游戏开发技术分析

Onegun

小游戏 小程序游戏 H5小游戏

模块一作业

许你丶

#架构实战营

架构实战营第 10 期:模块一作业

kaizen

「架构实战营」

小游戏开发游戏引擎指南

Onegun

小游戏 小游戏开发 小程序游戏

非常好用的Mac系统清理工具CleanMyMac X2023版本

茶色酒

CleanMyMacX CleanMyMac X CleanMyMac X2023

架构实战营模块7作业

冷夫冲

架构设计 #架构实战营

Linux apt 命令

芯动大师

linux 文件权限控制

模块一作业

飞天的卢

作业

金金

职场沟通术语

J.Smile

沟通技巧

nginx学习总结

@下一站

nginx 程序设计 11月日更 web 容器 11月月更

极客时间运维进阶训练营第六周作业

Starry

2022-12-06:定义一个概念叫“变序最大和“ “变序最大和“是说一个数组中,每个值都可以减小或者不变, 在必须把整体变成严格升序的情况下,得到的最大累加和 比如,[1,100,7]变成[1,6,

福大大架构师每日一题

算法 rust 福大大

极客时间运维进阶训练营第六周作业

忙着长大#

极客时间

架构实战营10期-作业1

炮仗

前端食堂技术周刊第 62 期:11 月登陆浏览器的新特性、VueConf 2022、第 93 次 TC39 会议、TS 挑战

童欧巴

CSS JavaScript

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