写点什么

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

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

关注

评论

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

GuitarPro2024免费版吉他打谱工具

茶色酒

GuitarPro

我不想再传递 nameof 了

newbe36524

C# Docker Kubernetes

使用了瓴羊Quick BI,数据分析的效率有效提升

夏日星河

CleanMyMacX4.12.5中文版苹果电脑管家

茶色酒

CleanMyMacX4.12.5

Maven Shade插件relocation修改类常量的问题

Laughing

Java 后端 Maven-Shade-Plugin RelocationClass

EasyRecovery2023新版本有哪些新功能?

茶色酒

EasyRecovery EasyRecovery15 easyrecovery2023

ChatGPT这波热潮会不会让我失业?

eng八戒

人工智能 AI 聊天机器人 openai ChatGPT

MASA Stack 1.0 发布会 —— 社区问题解答

MASA技术团队

.net stack 应用现代化 MASA

ChatGPT入门案例|商务智能对话客服(二)| 社区征文

TiAmo

openai ChatGPT

QCon演讲实录(下):多云管理关键能力实现与解析-AppManager

阿里云大数据AI技术

大数据 运维 多云服务 多云管理

更专业、安全、可控!政企都选择WorkPlus私有化部署

WorkPlus

多款社交黑马海外霸榜,融云全球通信服务护航登顶

融云 RongCloud

什么是网关型堡垒机?与运维审计堡垒机有什么区别?

行云管家

堡垒机 堡垒机网络安全

2023-02-15:商场中有一展柜A,其大小固定,现已被不同的商品摆满, 商家提供了一些新商品B,需要对A中的部分商品进行更新替换, B中的商品可以自由使用,也就是可以用B中的任何商品替换A中的任何

福大大架构师每日一题

算法 rust 福大大

黑龙江哈尔滨市等保测评机构有五家啦!名单看这里!

行云管家

等保 机构 等保测评 哈尔滨

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

9527

Python 内置界面开发框架 Tkinter入门篇 丁

eng八戒

Python GUI tkinter

利用DUCC配置平台实现一个动态化线程池

京东科技开发者

spring 多线程 代码 动态线程池 ducc

大规模即时云渲染技术,追求体验与成本的最佳均衡

阿里云视频云

云计算 云渲染 云庙会

Python 内置界面开发框架 Tkinter入门篇 丙

eng八戒

Python GUI tkinter

飞桨特色产业级模型库助力AI开发与落地更简单

飞桨PaddlePaddle

paddle 开源 模型 飞桨

炸了!3年图片都没了

艾小仙

拥有了瓴羊Quick BI,企业的数据分析变得更好

巷子

电阻为什么都是4.7kΩ、5.1kΩ,而不是整数5kΩ?

元器件秋姐

科普 元器件 元器件知识 电阻 电阻值

WorkPlus即时通讯集成工作平台,提效企业一体化管控

WorkPlus

国际财务系统基于ShardingSphere的数据分片和一主多从实践

京东科技开发者

数据库 数据分片 ShardingSphere 企业号 2 月 PK 榜 一主多从

自媒体营销或已死,内容营销为何越来越难做?

石头IT视角

有了瓴羊Quick BI,企业再也不必担心可视化分析情况

小偏执o

使用自定义的初始化方法宏(OC)

刿刀

飞桨框架v2.4 API新升级!全面支持稀疏计算、图学习、语音处理等任务

百度Geek说

API 框架 3D点云 企业号 2 月 PK 榜 Sparse Transformer

面试必问:JVM 如何确定死亡对象?

王磊

java面试

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