Rust到底能不能成?2021年用什么IDE开发Rust?(rust做什么开发)

出品|开源中国

文|大东

随着 Rust 基金会的成立,“Rust 到底能不能成?”再次成为社区里的热门话题。

此次由微软、谷歌、AWS、华为四大全球顶级科技厂商与 Rust 的创造者 Mozilla 联合创立开源基金会,无疑也给国内那些想要上 Rust 车的开发者朋友打了一剂强心针。不少朋友表示自己要第 n 次开始学习 Rust 了。

我们结合此前的内容,整理更新了一份比较有代表性的 Rust 可用 IDE 与相关插件等工具的列表,希望对想学习 Rust 的开发者有所帮助。

Rust语言服务器:Rust Language Server

Rust 语言服务器(RLS)基于 LSP(Language Server Protocol),即语言服务器协议,LSP 由红帽、微软和 Codenvy 联合推出,可以让不同的程序编辑器与集成开发环境(IDE)方便地嵌入各种编程语言,允许开发人员在最喜爱的工具中使用各种语言来编写程序。

它通过用于开发工具和语言服务器间通信的 JSON-RPC 标准,能够让编程工具提供实时反馈的详细信息并以此实现多种强大功能,比如符号搜寻、语法分析、代码自动补全、移至定义、描绘轮廓与重构等。Rust 语言服务器集成了这些逻辑作为后端,并通过标准的 LSP 提供给前端工具,它被设计为与前端无关,可以被不同的编辑器和 IDE 广泛采用,但目前项目团队仅在 VS Code 中进行测试。用户可以在 VS Code 扩展商店中找到基于 RLS 实现的 Rust 官方插件。

Rust到底能不能成?2021年用什么IDE开发Rust?(rust做什么开发)

这个就是 Rust 官方为 Visual Studio Code 提供的 Rust 插件,该插件最初是 Rust 官方语言服务器(RSL)的前端参考实现,现在也支持另一个来自社区维护的 Rust 服务器 rust-analyzer(RA),用户可根据个人偏好在 RSL 或者 RA 之间选择安装一个。该插件支持:

  • 代码补全

  • jump to definition、peek definition、find all references 与 symbol search

  • 类型和文档悬停提示

  • 代码格式化

  • 重构

  • 错误纠正并应用建议

  • snippets

  • 构建任务

值得一提的是 snippets(代码片段)和构建任务这两个特性。

snippets 是扩展为通用样板的代码模板。输入时,Intellisense 会将代码段名称包括在内作为选项,可供快捷键选中。提供了以下 snippets:

  • for – 创建循环

  • unimplemented

  • unreachable

  • print(ln)

  • assert(_eq)

  • macro_rules – 声明宏

  • if let Option – 在某些情况下执行 if let 语句

  • spawn – 创建线程

  • extern crate – 插入 extern crate 语句

此 Rust 插件提供了使用相关的 cargo 命令进行构建、运行和测试的任务,可以使用 ctrl shift b 进行构建,可通过命令面板中的“运行任务”查看其它任务。这些任务内容写在 task.json 中,插件不会覆盖现有任务,因此可以自定义任务。

社区驱动的Rust语言服务器rust-analyzer

rust-anlyzer(RA)是除了 RSL 以外的另一个 Rust 语言服务器,由社区驱动开发。自 2019 年末发布第一个预编译 Release 以来,RA 都会在每周二稳定发布新版本并保持至今。经过快速的迭代,目前 RA 各方面的优化和提升已经超越 RSL,所以也被官方纳入 RSL 2.0 计划的一部分。Rust 的 VS Code 官方插件也已经增加了对 RA 的支持。

RA 目前已经支持 Vim、Emac、Sublime Text 3 和 VSCode 等编辑器,可通过官方文档获取详细的安装指导。

Rust代码补全程序:Racer

前面提到 RSL 和 RA 都是 Rust 语言服务器,作为 IDE 与编辑器的后端提供通用能力。而 Racer 是 Rust 语言服务器中的一个静态库,它提供了代码自动补全功能。

许多 IDE 等工具可以轻松集成这样的底层功能,目前包括以下工具都有集成 Racer 的相关实现:

  • Eclipse

  • Emacs

  • Gedit

  • Gnome Builder

  • Kate

  • Sublime Text

  • Vim

  • VS Code

  • Atom

  • Kakoune

IntelliJ的Rust插件:IntelliJ Rust 和 intellij-toml

IntelliJ Rust 是 IntelliJ 的 Rust 插件,采用 Kotlin 开发,功能特性包括:

  • 支持原生代码提示

  • 支持强大的快捷键功能

  • 代码快速格式化

  • snippets

IntelliJ Rust 和 intellij-toml 为 IDEA,CLion,PyCharm 和其他 JetBrains IDE 带来了 Rust 和 TOML 支持。

语言支持包括语法突出显示,完成,导航和其他代码洞察功能。可以使用 Cargo 命令并运行 Clippy 或 Rustfmt,而无需离开 IDE。CLion 和 IntelliJ IDEA Ultimate 中提供了调试器和分析器。CLion 的集成还支持 CPU 分析。对于所有其他 IDE,可以使用本机调试插件进行调试。

C/C 跨平台集成开发环境:CLion

Rust到底能不能成?2021年用什么IDE开发Rust?(rust做什么开发)

CLion 是专门用于 C/C 开发的 IDE,它的特性包括:

  • 智能 C/C 编辑:原生 C/C 支持,包括现代 C 标准、libc 和 Boost。

  • 导航能力:即时导航到字符的声明或上下文用法,在整个项目中按名称搜索类、文件与字符,并且提供具有结构和层次结构视图的代码库。

  • 代码生成:通过简单的快捷键就可以完成一些代码生成操作,包括:添加类成员、重写/实现函数、生成构造函数/析构函数、getter/setter,判断等式、关系运算和流输出运算、使用语句封装代码块与根据实际用法生成声明。

  • 重构:提供重命名符号、在层次结构中上/下移动成员与更改函数签名等功能。

通过 IntelliJ Rust 插件,CLion 提供了对 Rust 的高度支持,除了基本的功能,它还为 Rust 提供了完善的调试器、CPU Profiler 和 Valgrind 内存检查等能力。

Eclipse IDE的Rust插件:Eclipse Corrosion

Rust到底能不能成?2021年用什么IDE开发Rust?(rust做什么开发)

Eclipse Corrosion 是 Eclipse IDE 中的 Rust 版本,本质上是一个 Eclipse IDE 的 Rust 插件,通过与 Rust 语言服务器和 Cargo 集成提供了丰富的开发与调试功能。它可以作为完整的 Eclipse 软件包下载。

除了 Rust 语言服务器提供的功能外,Corrosion 还可以帮助用户更好地调试 Rust 程序,比如提供了查看变量、GDB 控制台与断点等功能。另一方面,由于基于 Eclipse,所以像项目大纲、暗黑主题、问题查看与 Git 集成等特性也支持,Eclipse 用户可以轻松适应。

Vim的Rust插件:rust.vim

Rust 官方实现了一个 Vim 插件 rust.vim,爱折腾的开发者可以用来配置 Vim 下的 Rust 开发环境。rust.vim 提供了 Rust 文件检测、语法高亮、格式设置与语法检测工具 Syntastic 集成等功能。特性包括:

  • Syntastic 错误检测:rust.vim 默认将自动将 cargo 作为语法检查器注册到 Syntastic。

  • 可集成 Tagbar 查看源码

  • rustfmt 格式化代码:安装了 rustfmt 的话,可以使用 :RustFmt 命令格式化代码。

  • Playpen 集成::RustPlay 命令会将当前选择内容发送给 Rust playpen,如果未选择任何内容则将当前缓冲区发送给 Rust playpen。

  • 测试:在 cargo 项目中,:RustTest 命令将即时运行测试。

国外也已经有开发者整理了一份更为全面的 IDE 与插件等工具对 Rust 支持状态的概述表单,并保持实时更新:

Rust到底能不能成?2021年用什么IDE开发Rust?(rust做什么开发)

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌抄袭侵权/违法违规的内容, 请发送邮件至 举报,一经查实,本站将立刻删除。

(0)
上一篇 2023年4月27日 上午10:58
下一篇 2023年4月27日 上午11:14

相关推荐

  • 深入垂直业务场景,SaaS版供应商管理系统促企业与供应商高效协同

    作为企业供应链的源头,供应商在企业日常生产经营活动中充当着重要的角色。当前,企业的供应商数据通常与处理供应商交易、协作和计划的系统相关联,且所有供应商信息须具备可视性、可获得性、准…

    科研百科 2022年10月14日
    83
  • 到2025年,四川将基本建立职务科技成果单列管理制度

    来源:【四川日报-川观新闻】 川观新闻记者 文露敏 1月17日,川观新闻记者从科技厅获悉,日前,四川省科学技术厅等10部门印发《关于全面深化职务科技成果权属制度改革的实施方案》(以…

    科研百科 2024年6月19日
    37
  • 轻松采集,信息无忧!九款网页抓取工具推荐(网页抓取工具软件)

    轻松采集,信息无忧!九款网页抓取工具推荐(网页抓取工具软件) 在全球数字化浪潮中,信息获取显得尤为关键。然而,对于非科技人士而言,获取所需信息无疑是一项艰巨任务。幸好现今市面上涌现…

    科研百科 2024年4月1日
    43
  • 中央财政科研项目分类

    中央财政科研项目分类 随着国家财政能力的增强和科技的快速发展,中央财政科研项目分类已成为推动科技创新和科技发展的重要方式之一。本文将介绍中央财政科研项目分类的基本概念和分类体系,并…

    科研百科 2025年3月31日
    5
  • pmp 项目管理工具

    PMP项目管理工具 项目管理是一个重要的领域,对于组织的目标和成果有着至关重要的影响。在现代社会,项目管理已经成为了许多组织中不可或缺的一部分。 PMP(Project Manag…

    科研百科 2024年7月21日
    34
  • 陶勇科研项目怎么样知乎

    陶勇科研项目怎么样知乎 陶勇教授是清华大学计算机系的一名杰出教授,他一直致力于人工智能和机器学习领域的研究,取得了许多重要的成果。他的科研项目包括多个方向,其中最著名的是“智能交通…

    科研百科 2024年8月12日
    34
  • 国际学院科研项目

    国际学院科研项目 随着全球化的发展,国际学院科研项目成为了现代高等教育中不可或缺的一部分。这些项目旨在为学生提供深入的学术研究机会,并促进跨文化交流和理解。本文将介绍国际学院科研项…

    科研百科 2025年2月24日
    0
  • 深化科研经费使用管理改革 最大限度激发创新创造积极性(改革完善科研经费管理)

    广州日报讯 (全媒体记者申卉、贾政 通讯员穗府信)昨日上午,广州市委书记、市长郭永航主持召开市政府常务会议,深入贯彻习近平总书记视察广东重要讲话、重要指示精神,研究部署深化科研经费…

    科研百科 2023年10月7日
    133
  • 建岩院科研项目

    建岩院科研项目:探索地下洞穴中的古文明 近年来,随着地球物理学和地质学的不断发展,人们对地下洞穴的研究也越来越深入。在地下洞穴中,人们发现了许多神秘而古老的遗迹,这些遗迹可能是古代…

    科研百科 2025年3月21日
    2
  • 科研项目书申报

    科研项目书申报 随着科技的不断发展,科研项目书申报已经成为科学研究中不可或缺的一部分。一份好的科研项目书申报不仅能够反映出研究计划的深度和广度,还能够为研究成果提供更好的支持和展示…

    科研百科 2025年2月14日
    1