写点什么

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

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

关注

评论

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

基础的点云转换

芯动大师

点云转换

美团VS饿了么,到底谁更胜一筹?

王中阳Go

美团 面经 饿了么 面试问题

从0到1搭建权限管理系统系列三 .net8 JWT创建Token并使用

不在线第一只蜗牛

Java .net

IoTDB 论文入选三大数据库顶会:ICDE、SIGMOD、VLDB 收录自研成果!

Apache IoTDB

第68期 | GPTSecurity周报

云起无垠

期盼已久!通义灵码 AI 程序员开启邀测,全流程开发仅用几分钟

阿里云云效

阿里云 云原生 通义灵码

实时邮政快递查询:用 Python 轻松跟踪包裹动向

幂简集成

API 快递

期盼已久!通义灵码 AI 程序员开启邀测,全流程开发仅用几分钟

阿里巴巴云原生

阿里云 AI 云原生

重磅!阿里云可观测产品家族全新升级,AI +数据双驱动,打造全栈可观测体系

阿里巴巴云原生

阿里云 云原生 可观测

2024 天池云原生编程挑战赛决赛名单出炉,冠军来自中山大学、昆仑数智战队

阿里巴巴云原生

阿里云 云原生

Rainbond 助力城建智控,从传统开发到敏捷开发转型

北京好雨科技有限公司

云原生 k8s rainbond 企业号9月PK榜

数据飞轮:驱动企业持续增长的新引擎

松子(李博源)

数据分析 增长 #大模型

望繁信科技入选中国信通院“铸基计划”,流程智能引领企业数字化变革

望繁信科技

数字化转型 流程挖掘 铸基计划 流程资产 流程智能

函数计算 FC:首发 GPU 极速模式,更弹性、更降本

阿里巴巴云原生

阿里云 云原生 函数计算

淘宝商品详情接口多线程调用,数据分析行业的效率魔法

tbapi

淘宝API接口 淘宝商品详情接口 淘宝商品数据采集 淘宝商品数据采集接口

RTE大会报名丨 重塑语音交互:音频技术和 Voice AI,RTE2024 技术专场第一弹!

声网

解锁新型旅游方式, 当代人的出游体验究竟多丝滑

最新动态

python中的小坑

SkyFire

Python 浅拷贝

降本 60%!小熊油耗使用阿里云 SAE 更加稳定可靠

阿里巴巴云原生

阿里云 云原生

DNS解析常见问题:什么是DNS泛解析?如何设置泛解析?

国科云

云栖3天,云原生+ AI 多场联动,新产品、新体验、新探索

阿里巴巴云原生

阿里云 云原生

云栖实录 | 阿里云 OpenLake 解决方案重磅发布:多模态数据统一纳管、引擎平权联合计算、数据共享统一读写

阿里云大数据AI技术

人工智能 大数据 阿里云 云栖大会 OpenLake

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