新闻

IntelliJ Rust有什么新功能

在这篇文章中,我们将着眼于IntelliJ Rust在2020.1发行周期中所收到的更新。

但在我们开始之前,我们有一个激动人心的消息要宣布。现在可以在除CLion之外的ide中调试Rust代码了!以下是更多细节:

  • 从2020.1版开始,IntelliJ IDEA Ultimate、AppCode和RubyMine中都提供了该版本。
  • 它在macOS和Linux上与LLDB一起工作。
  • 它要求nativeDebug插件工作在IntelliJ IDEA Ultimate。
  • 它要求您下载未捆绑的调试器二进制文件。IDE将提示您这样做。

现在,让我们回到插件更新:

对LLDB支持的改进

如果您在macOS或Linux上工作,您可以选择使用LLDB作为Rust调试器。LLDB本机不支持Rust,默认情况下将其视为C代码,因此该插件必须尽其所能使您的调试体验更加方便。您可以在此过程中跟踪这项正在进行的工作的进度伞票.

作为改进LLDB支持的基础,我们采用了“支持生锈的LLDB”补丁开发人汤姆特罗米,对它们进行了微调以适应调试器的最新版本,并将其应用于CLion的捆绑LLDB。

这个修补版本的LLDB在类型表示方面带来了期待已久的改进。现在调试器可以正确地显示枚举和基本类型,如i32,以前显示为C样式int.

经过修补的LLDB版本还能够要求提供函数名,这允许插件在调用堆栈中以人类可读的格式显示它们(请注意框架窗格在下面的截图)。此外,demanged名字现在可以用求值表达式. 简单的函数调用,比如fn foo()->i32可以包含在表达式中,我们正在处理更复杂的案件。

LLDB类型渲染

锈菌应答

这个版本的一个主要的新奇之处是REPL控制台,这是一个交互式的读取-计算-打印-循环环境,用于原型化和测试代码。这个方便的工具是一个笔记本,一个计算器,一个Rust解释器。

evcxr_repl实用程序Rust REPL为您键入的代码行提供语法高亮显示和完成。它还显示一个窗格,其中列出了当前正在使用的变量、函数和结构。

要打开控制台,请调用工具| Rust REPL或在“查找操作”对话框中搜索REPL(Ctrl + Shift +一个在Windows/Linux上,转移⌘A.在macOS上)。该插件将要求您安装适当版本的evcxr_repl,然后您就可以开始了。

锈菌应答

语言支持的更新

这里要注意的第一个变化是引入了针对恳求具有类型别名的块。出于性能原因,仅对别名数小于预定义值的类型启用此选项(此时阈值设置为10)。

带有类型别名的impl块的完成

另一个重要的改进涉及类型推断。现在包括子层模式在某些情况下,const泛型:
常量泛型的类型推断

编辑器的改进

代码洞察也得到了一些改进。如果一些局部变量或参数从未被使用过,你会看到它们用灰色高亮显示:

未使用的局部变量

返回类型不匹配检查现在配备了快速修复:
返回类型不匹配的快速修复

一个新的检查,电梯返回,识别F匹配表达式,回来可以安全地从树枝上拔起:

电梯返回意图

重构意图的列表也得到了丰富。您现在可以提取枚举变种进入单独的结构和编辑他们,同时影响所有的用法:
提取枚举变量

____________

这些是我们对IntelliJ Rust在2020.1版本中所做的最显著的更改。请与我们分享您的反馈,如果您遇到任何问题,请毫不犹豫地在插件的跟踪器. 非常感谢。

下载CLION 2020.1

你的铁锈队
喷气式飞机
发展的动力

下面的评论不能再编辑了。

2对IntelliJ Rust新功能的回应

  1. 《阿凡达》

    西蒙说:

    2020年5月30日

    下载CLion 2020.1.1后,我会看到一个小对话框,上面写着“*.rs文件受IntelliJ IDEA Ultimate支持”。

    IntelliJ Ult现在是优于CLion的首选IDE吗?或者我该如何理解这个消息?
    我有整套房间,所以我可以随便用。我只是想知道Rust团队对此的官方立场,我有点糊涂了。

    • 《阿凡达》

      阿塞尼·潘德里亚克说:

      2020年6月1日

      请您具体说明以下事项:

      • 有些东西对生锈有效吗?
      • 如果没有,请检查是否安装并更新了Rust插件(首选项|插件)

      IntelliJ Ult现在比CLion更受欢迎吗

      不,Rust插件仍然只在CLion中提供其所有功能。您可以在不同的IDE中检查Rust插件功能在这里

发现更多