IntelliJ Rust最新版 v2020.3 :cargo,重构模板等发生重大变化

IntelliJ IDEA 2020.3提供了许多实用的功能,例如调试时的交互式提示,Git暂存支持,对Java 15记录和密封类的扩展支持等等。它简化了端点,框架和事件探查器的日常工作。通过基于机器学习技术的更好的代码完成,更直观和有用的新的“Welcome”屏幕以及更好的拼写和语法检查,整个UX得到了改进。简而言之,一切都更好!

下载IntelliJ IDEA 2020.3

在上一篇关于IntelliJ Rust的博客文章中,描述了插件2020.3发布周期的主要更新–更多支持和新的Cargo功能UI。简而言之,您现在可以直接在Cargo.toml文件中切换工作区功能,并且整个项目中的代码洞察力将相应地进行调整。

现在,让我们看一下已经对该功能进行的改进,以及该插件在过去几个月中获得的其他更新:

  • 关于cargo功能的更多代码见解
  • Rustfmt作为默认格式化程序
  • 重构方面的改进
  • 用于名称解析的新实验引擎
  • cargo生成项目模板
  • WASM项目支持
  • 其他新闻

更多关于Cargo功能的代码见解

IntelliJ Rust现在提供完成建议,并提供Cargo.toml中所有功能的导航。您还可以从Rust代码中的cfg或 cfg_attr属性跳转到功能声明:

IntelliJ Rust最新版 v2020.3 :cargo,重构模板等发生重大变化

Rustfmt作为默认格式化程序

如果您希望Rustfmt作为代码的默认格式化程序,在“Settings / Preferences | Languages & Frameworks | Rust | Rustfmt中,选中“Use rustfmt instead of built-in formatter "复选框。

IntelliJ Rust最新版 v2020.3 :cargo,重构模板等发生重大变化

当前,此选项在重新格式化选区时不适用。如果您选择一个区域并调用Reformat Code(Ctrl+Alt+L在Linux / Windows和⌥⌘LmacOS上),则将使用IDE的格式化程序。

重构方面的改进

  • 现在,移动(F6)重构支持在移动文件时重新导出:

    IntelliJ Rust最新版 v2020.3 :cargo,重构模板等发生重大变化

     

    如果在编辑器中选择一段代码,然后调用Move,则在建议要移动的项目时,重构将考虑您的选择。

    impl现在,相关-s与项目一起移动,而与相关impl– s的项目一起分组,以便在重构对话框中更轻松地导航:

    IntelliJ Rust最新版 v2020.3 :cargo,重构模板等发生重大变化

    现在,您可以使用“移动”将文件放置到另一个板条箱中,甚至移动多个文件和目录。

    而且,Move现在能够检测可见性冲突(并在需要时公开移动的项目),以及在移动过程中可能发生的其他编译错误,例如E0116:为当前板条箱或E0117:只能为任意类型实现当前包装箱中定义的特征。

  • 除了Move外,我们还添加了一个新的Inline(Ctrl+Alt+N在Linux / Windows和⌥⌘NmacOS上),用于局部变量的重构:

    IntelliJ Rust最新版 v2020.3 :cargo,重构模板等发生重大变化

     

用于名称解析的新实验引擎

我们已经开始重新设计名称解析引擎的一部分。该算法的较新版本(也称为名称解析2.0)处于实验状态。如果您准备尝试一下,请启用“Settings / Preferences | Languages & Frameworks | Rust”复选框。

IntelliJ Rust最新版 v2020.3 :cargo,重构模板等发生重大变化

我们的新算法使用定点迭代方法,旨在为复杂的全局导入(use foo::*)和重新导出(use foo as bar)提供更好的支持。它还将允许插件正确扩展即将发布的宏2.0。

同时,新算法解决了一些现有的宏相关问题。例如,它改善了将宏扩展为另一个宏的定义的代码的解析度。它还解决了包含文件中的宏扩展问题。

以下代码片段给出了新引擎如何处理复杂解析的示例:

代码

请注意,新算法只适用于顶层项目,所以局部变量和类型推理功能不会受到影响。

如果你对新算法的实现细节感兴趣,你可以在这个票据中找到更长的解释。

这个功能还处于早期开发阶段,所以我们鼓励您尝试一下,如果您有任何问题,请告诉我们。请使用插件的问题跟踪器:只需选择一段有问题的代码,然后调用帮助|创建新问题。

Cargo生成项目模板

该插件的用于创建新项目的向导已通过另外两个模板WebAssembly Lib和Procedural Macro进行了增强,并且可以选择添加其他Git存储库作为模板来与cargo-generate一起使用。

IntelliJ Rust最新版 v2020.3 :cargo,重构模板等发生重大变化

WASM项目支持

您是否正在一起使用Rust和WebAssembly?以下是已经可用的功能:

  • WebAssembly Lib模板可帮助您基于wasm-pack-template快速创建新项目。
  • 新的wasm-pack配置使您可以在不离开IDE的情况下运行wasm-pack命令。

    使用WebAssembly Lib模板创建项目时,插件会自动添加以下类型的Build配置:

    IntelliJ Rust最新版 v2020.3 :cargo,重构模板等发生重大变化

     

    您可以以与任何其他IDE配置相同的方式使用wasm-pack配置,包括从“帮助” |“配置”中调用它。运行任何内容(按Ctrl两次)。

  • Go to generated declaration允许您从导航#[wasm_bindgen]属性对应的打字稿代码:

    IntelliJ Rust最新版 v2020.3 :cargo,重构模板等发生重大变化

     

立即下载intellij 2020.3体验吧!

上一篇:Ubuntu 上安装rust


下一篇:全栈程序员的新玩具Rust(一) IDE环境