10 月 23 - 25 日,QCon 上海站即将召开,现在大会已开始正式报名,可以享受 8 折优惠 了解详情
写点什么

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

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

关注

评论

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

文心一言 VS 讯飞星火 VS chatgpt (126)-- 算法导论11.1 1题

福大大架构师每日一题

福大大架构师每日一题

跨国传输的常见问题与对应解决方案

镭速

跨国数据传输 跨国传输 跨国传输软件

低代码开发,或许是节约成本更好的选择

树上有只程序猿

软件开发 低代码

专业ER图工具大盘点,哪款是你的菜?

职场工具箱

ER图 设计数据库模型

接上回,如何用 LlamaIndex 搭建聊天机器人?

Zilliz

Milvus 向量数据库 ChatGPT LLM

LeetCode题解:993. 二叉树的堂兄弟节点,BFS,JavaScript,详细注释

Lee Chen

LeetCode

我应该删除低质量页面以提高Google排名吗?

九凌网络

你不知道的ER图秘诀,都在这篇在线教程里了!

职场工具箱

ER图 实体-关系图

测试工作的价值体现

BY林子

软件测试 软件质量 测试的价值 绩效考核

可视化流程编排(Bpmn.js)介绍及实践

ZA技术社区

众安科技 众安保险 ZA技术社区 无界山

新一代云原生可观测平台之CCE服务监控篇

华为云开发者联盟

云原生 后端 华为云 华为云开发者联盟 华为云CCE容器服

如何使用 NFTScan NFT API 在 BNB Chain 网络上开发 Web3 应用

NFT Research

NFT\ NFTScan API 接口

外贸业务员必学的外贸推广方式

九凌网络

企业服务诞生了第一座企业掘金的数据枢纽——瓴羊港

ToB行业头条

ApeCoin DAO猿岛质押游戏系统DAPP开发

薇電13242772558

NFT

亚洲专业美发行业领军企业汉高中国签约赛博威,以TPM营销费用管理推进企业业务数字化改革

赛博威科技

什么样的网站才是利于google等搜索引擎优化的营销型网站

九凌网络

今年秋招VS去年秋招!我滴娘啊

王磊

Java

TDengine 3.2.0.0 重磅发布!S3 存储 + IP 白名单正式上线

TDengine

tdengine 时序数据库

nebula-br local-store 模式,快速搭建主备集群实践

NebulaGraph

容灾备份

聊点技术|秒级根因定位可能吗?博睿数据将不可能变为可能

博睿数据

运维 监控 可观测性

第24期 | GPTSecurity周报

云起无垠

软件测试/测试开发丨UbuntuServer环境准备

测试人

软件测试

外贸建站优化外贸网站推广的四个技巧

九凌网络

Databend + lakeFS:将数据版本控制嵌入你的分析工作流

Databend

初识inBuilder内存计算模块--业务数据同步

inBuilder低代码平台

数据库

带你认识一下多模态对比语言图像预训练CLIP

华为云开发者联盟

人工智能 华为云 科技 华为云开发者联盟 多模态对比

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