写点什么

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

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

关注

评论

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

一起学习设计模式:责任链模式

宇宙之一粟

设计模式 8月月更

【算法实践】一天路走到黑--手把手带你实现坚持不懈的线性查找

迷彩

Python 数据结构 算法实践 8月月更 线性查找

区块链交易隐私如何保证?华为零知识证明技术实战解析

创意时空

创投基金黑钻资本Black3Lab Capital主投互联网3.0

股市老人

FIXP vs SSL/TLS,谁更安全?

LAXCUS分布式操作系统

网络安全 分布式系统

设计模式的艺术 第二十六章访问者模式练习(开发一套高校奖励审批系统,该系统可以实现教师奖励和学生审批。如果教师发表的论文数超过10篇或学生发表论文数超过2篇可以评选科研奖,如果教师教学反馈分大于等于90分或学生平均成绩大于等于90分可以评选成绩优秀奖。)

代廉洁

设计模式的艺术

低代码是什么?国内排名前 5 的低代码开发平台对比

蒋川

低代码 开发工具 开发平台

技术解析+代码实战,带你入门华为云政务区块链平台

创意时空

玩转KubeEdge保姆级攻略

乌龟哥哥

8月月更

TDesign 品牌价值观|视觉新基础

TDesign

腾讯 设计 开源项目

rocksdb和innodb的一些区别

趁早

这些智能合约漏洞,可能会影响你的账户安全!

创意时空

每日一R「21」Unsafe Rust

Samson

学习笔记 8月月更 ​Rust

性能提升1倍,成本直降50%!基于龙蜥指令加速的下一代云原生网关

OpenAnolis小助手

操作系统 网关 龙蜥技术 cpu加速

Network源码接口分析

长安链

iofod导入任意前端资产,以 Element UI 为例

iofod jude

小程序 前端 低代码 网页

自然语言处理--神经网络的复习

IT蜗壳-Tango

自然语言处理 nlp 9月月更

IDEA配置tomcat

楠羽

#开源

流日志轻松应对“10亿级别IP对”复杂场景,实现超大规模混合云网络流量可视化

Baidu AICLOUD

流日志 网络问题诊断 专线网络

[Go WebSocket] 为什么我选用Go重构Python版本的WebSocket服务?

HullQin

Go golang 后端 websocket 8月月更

Go 代码城市上云——KusionStack 实践

SOFAStack

开源

构建万物可信的基石:解密区块链跨链技术

创意时空

金融科技创新者的困境

木风

金融科技 数字化转型 科技创新

图解一致性模型

Databend

分布式 协议

【编程实践】认识爬虫并手把手带手实现新闻网站的爬取

迷彩

记录 Python爬虫 8月月更 网络爬虫

影视动漫制作为什么要选择云渲染农场?

Finovy Cloud

计算器 云渲染 影视渲染

电商订单全流程可观测性最佳实践

观测云

C/CPP基础练习题多维数组,矩阵转置,杨辉三角详解

CtrlX

c c++ 基础 8月月更

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