写点什么

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

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

关注

评论

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

IDEA 异常退出 解决方法

任广印

IDEA

Elasticsearch 批量查询 mget

escray

elastic 七日更 28天写作 死磕Elasticsearch 60天通过Elastic认证考试

不明白线程池?那看看这篇,附10道面试题

田维常

线程池

高阶段位机房管理:3D集装箱数据中心,触发科技“火苗”的燃烧

一只数据鲸鱼

数据可视化 3D可视化 机房管理 数据中心可视化 集装箱式数据中心

即构SDK新增焦点语音功能,可实现特定用户语音的聚焦

ZEGO即构

Volcano 监控设计解读,一看就懂

华为云开发者联盟

Kubernetes 云原生 监控 Volcano 计算

灵雀云Kube-OVN进入CNCF沙箱,成为CNCF首个容器网络项目

York

灵雀云 Kubernetes Kube-OVN

阿里巴巴正式推出2021年金三银四1000道Java工程师面试题手册(含答案)

Java架构追梦

Java 阿里巴巴 面试 架构师 金三银四

安卓驱动开发!系统盘点Android开发者必须掌握的知识点,搞懂这些直接来阿里入职

欢喜学安卓

android 程序员 面试 移动开发

【Mysql-InnoDB 系列】幻读、死锁与事务调度

程序员架构进阶

MySQL 架构 innodb 事务 28天写作

AI、IoT、区块链、自主系统、下一代计算五大技术引领未来供应链发展

京东科技开发者

区块链 AI IoT 供应链

漫谈HTTP协议

架构精进之路

HTTP 七日更 28天写作

《论雨伞道德》- 不要和自己的良心捉迷藏

石云升

读书笔记 28天写作 雨伞道德

前端知识总结输出文章目录大全

梁龙先森

JavaScript 大前端 编程语言 28天写作

[高并发]高并发分布式锁架构大解密,不是所有的锁都是分布式锁!!

for

【CSS】不规则阴影

德育处主任

css3 html/css CSS小技巧 28天写作 纯CSS

android开发面试准备!Android高级工程师进阶学习,已开源

欢喜学安卓

android 程序员 面试 移动开发

区块链作用之数字货币的影响

v16629866266

数据中台:建立在数据网络效应之上的赛道

奇点云

大数据 数据中台 云原生 数据

甲方日常 91

句子

工作 随笔杂谈 日常

【CSS】波纹效果

德育处主任

CSS小技巧 28天写作 纯CSS

Flink + Iceberg 全场景实时数仓的建设实践

Apache Flink

flink

美国大选期间美股迎来大涨,舆情到底有何魔力?

星环科技

人工智能 大数据

Vue 3自定义指令开发

葡萄城技术团队

百度信息流和搜索业务中的弹性近线计算探索与应用 | 文末送福利

百度Geek说

Java 大前端 算法工程师 技术宅

Maintainer 聚光灯:KubeEdge 和 Volcano 的王泽锋

华为云原生团队

开源 边缘计算 华为云 批量计算

代码 or 指令,浅析ARM架构下的函数的调用过程

华为云开发者联盟

函数 任务栈 arm架构

微服务容错时,这些技术你要立刻想到

华为云开发者联盟

微服务 线程 服务雪崩 断路器 服务降级

CSS实现数据统计

德育处主任

大前端 CSS小技巧 28天写作 纯CSS

【Android Tips】小厂的扫码还能怎么做?

李小四

机器学习 二维码 扫码 微信扫码

十年运维经验总结出的智能运维系统落地方案

小术晓术

人工智能 运维 企业信息化 运维自动化 信息化

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