写点什么

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

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

关注

评论

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

推荐一个好用的设计师导航网址

小炮

新思科技助力以色列Visuality Systems推进安全“左移”

InfoQ_434670063458

软件开发 代码 新思科技 安全测试 安全左移

新思科技在《 2022 年 Gartner® 应用安全测试关键能力报告》中表现优异 在五个常见用例中荣获最高分

InfoQ_434670063458

新思科技 Gartner 应用安全测试

2022第十四届南京国际人工智能产品展会

InfoQ_caf7dbb9aa8a

2022第十四届南京国际人工智能产品展会

InfoQ_caf7dbb9aa8a

人工智能

2022南京智博会 第十四届南京国际智慧城市、物联网、大数据博览会

InfoQ_caf7dbb9aa8a

项目那么多为何要选择自助洗车

共享电单车厂家

自助洗车加盟

自助洗车加盟前要准备些什么吗

共享电单车厂家

自助洗车加盟 自助洗车品牌

产品开发的早期阶段,是选择开发app还是小程序?

开源直播系统源码

软件开发 APP开发 小程序开发 直播源码

企业如何提升文档管理水平

小炮

Cube 技术解读 | Cube 渲染设计的前世今生

阿里巴巴终端技术

ios android 渲染 跨端

传统企业在进行信息化升级的过程中,如何做好信息化顶层设计

WorkPlus

2022第十五届南京国际工业自动化展览会

InfoQ_caf7dbb9aa8a

2022第十五届南京国际数字化工业博览会

InfoQ_caf7dbb9aa8a

如何用Pygame制作简单的贪吃蛇游戏

行者AI

想加盟自助洗车不知道一般啥流程

共享电单车厂家

自助洗车加盟

图像搜索是什么

Geek_e369a5

图像搜索 图像搜索是什么

2022南京国际智慧工地装备展览会

InfoQ_caf7dbb9aa8a

音视频处理三剑客之 AEC:回声产生原因及回声消除原理

ZEGO即构

回声消除 3A算法 音视频课程

这几个垂直类小众导航网站,你绝对不会想错过

小炮

顺应医改,积极布局——集采背景下的高值医用耗材发展洞察2022

易观分析

医用耗材

Linux 之父亮相,OpenCloudOS 社区开放日来了

腾讯安全云鼎实验室

Flutter在数字生活的发展与天翼云盘落地实践

flutter 架构 混合应用开发 移动开发 客户端

乘风破浪,探索数据可视化开发平台FlyFish开源背后的秘密!

云智慧AIOps社区

前端开发 低代码 数据可视化 大屏可视化 优秀开源项目

统一认证中心 Oauth2 认证坑

Damon

6月月更

自助洗车加盟具体都有哪些优势

共享电单车厂家

自助洗车加盟

仅需三步学会使用低代码ThingJS与森数据DIX数据对接

ThingJS数字孪生引擎

可视化 数字孪生

李飞飞:我更像物理学界的科学家,而不是工程师|深度学习崛起十年

OneFlow

人工智能 深度学习 李飞飞 ImageNet

掌握高性能计算前,我们先了解一下它的历史

华为云开发者联盟

华为云 高性能计算 处理器

第二届征文大赛开奖啦!速来领奖!

InfoQ写作社区官方

热门活动 初夏征文

直播预告 | 解构OLAP!新型多维分析架构范式全公开!Apache Doris 将带来五个重磅议题!

SelectDB

数据库 OLAP MPP Apaache Doris 直播活动

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