写点什么

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

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

关注

评论

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

直播回顾 | 根因分析助力AIOps走得更远!

博睿数据

可观测性 智能运维 博睿数据

为有状态应用而生,云原生本地存储Carina正式进入CNCF沙箱

BoCloud博云

云原生 本地存储 Carina

如何在等待页面制作加载动画

Towify

理解iOS端的WebView同层组件

珲少

一文讲清「敏捷路线图」| Liga译文

LigaAI

Scrum 产品经理 敏捷开发 软件开发 12 月 PK 榜

时序数据库 TDengine 签约新奥新智

TDengine

数据库 tdengine 时序数据库

重磅!XTransfer荣登InfoQ【十大开发者最向往的高价值技术团队】榜单

XTransfer技术

工业数据分析为什么要用FusionInsight MRS IoTDB?

华为云开发者联盟

大数据 后端 华为云 工业数据 12 月 PK 榜

Liga妙谈 | 找准「话事人」,高效甄别和响应用户反馈

LigaAI

产品经理 敏捷开发 PO 产品负责人 12 月 PK 榜

【web 开发基础】如何删除数组中的重复元素(52)

迷彩

数组 数组操作 PHP基础 唯一性

跳槽一次能涨多少?总算是见识到跳槽天花板了

程序知音

Java java面试 后端开发 八股文 Java面试题

Mysql索引覆盖

京东科技开发者

MySQL 数据库 sql 搜索引擎 优化

华为云大数据BI,企业数字化运营得力助手

爱尚科技

接口自动化测试不想写代码?这款工具强烈推荐

不想敲代码

自动化测试 API 自动化测试平台

华为云大数据BI,助力电商企业打赢“年货节”攻坚战

秃头也爱科技

openEuler委员会主席江大勇:跨越生态拐点 欧拉逐梦新征程

科技热闻

聚焦电商场景数字化转型升级,华为云大数据解决方案高效赋能

爱尚科技

共创精彩游戏未来,华为云大数据解决方案助力游戏企业成功转型!

秃头也爱科技

华为云大数据BI,如何助力智慧医院数字化升级

秃头也爱科技

浅谈华为云大数据BI对企业数字化转型的助力

秃头也爱科技

HarmonyOS多媒体框架介绍

HarmonyOS开发者

HarmonyOS

据+AI赋能教育智能化转型,华为云技术优势明显!

爱尚科技

有了华为云大数据BI,企业数字化转型该如何做?

爱尚科技

华为云大数据BI平台,助力电商企业破除数据孤岛,轻松备战双十一

秃头也爱科技

着眼全局提升决策质量,华为云大数据BI让企业看见未来

爱尚科技

捷报频传 | Bonree ONE获2022科技赋能金融业场景金融建设突出贡献奖

博睿数据

可观测性 智能运维 博睿数据 ONE平台 荣誉奖项

Apache APISIX 3.1.0 版本正式发布

API7.ai 技术团队

开源 api 网关 APISIX apache 社区

如何正确使用网格设置制作卡片类型展示页面

Towify

云网络运维必备神器:全链路故障诊断与分析

华为云开发者联盟

云计算 后端 华为云 12 月 PK 榜

“一粒米”的故事:哈工程昇智识米团队基于昇腾AI创新提出水稻适度加工智能化解决方案

Geek_2d6073

跳板攻击原理及如何追踪定位攻击者主机(下)

郑州埃文科技

IP地址 跳板攻击 攻击溯源

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