Please welcome our new documentation 🥳
It covers almost everything about the plugin, from basic how-to-s to detailed feature descriptions ✍️. And we’ll do our best to keep it up-to-date as the plugin evolves! Hope you find it helpful!

Also, this is the last release that supports the 2020.2 platform. To receive plugin updates further, please upgrade your IDE to 2020.3.

New Features

  • Add Change Signature refactoring (Refactor | Change Signature or Ctrl+F6) for functions and methods (by @Kobzol)

  • Introduce Share in Playground action to share your code on You can invoke it via Tools | Rust | Share in Playground or via context menu

  • Annotate wrong return type of an empty function (by @Kobzol)

    empty function screenshot

  • Support Build tool window for cargo check and clippy commands
  • Add an inspection to check whether a Cargo feature has a cyclic dependency on itself
  • Create Function intention now supports associated functions (by @Kobzol)

Performance Improvements

  • Slightly speed up name resolution & type inference


  • Show type names in inlay parameter hints for generic enum variants (by @Kobzol)
  • Show all re-exports of the same item in completion list. Previously, the plugin showed only one suggestion per item which led to hiding alternative ways of importing the item
  • Import quick-fix sorts items now: workspace items go first, then stdlib ones, and then the rest (by @gfreezy)
  • Adjust type inference to infer type of allocator type parameter for Box and Vec items. See the corresponding RFC about allocator API
  • Take into account cfg_attr attribute during experimental compiler features annotation like #![cfg_attr(feature = "nightly", feature(generators))]
  • Improve dependency completion in Cargo.toml (by @Pzixel)
  • Fix Join Lines action (Ctrl+Shift+J) in case there is no whitespace between parameters (by @t-kameyama)
  • Extract only selected statements in Extract function refactoring (by @Kobzol)
  • Download stdlib dependencies into IDE system directory instead of src directory in toolchain location to avoid unexpected behavior like read-only directory. Note, stdlib dependencies are downloaded by the plugin only when org.rust.cargo.fetch.actual.stdlib.metadata experimental feature is enabled, otherwise the plugin uses hardcoded stdlib structure
  • Do not suggest Change item visibility intention in trait impl blocks (by @Kobzol)
  • Correctly resolve method calls (private method in inherent impl vs public trait impl)
  • Fix working directory when run cargo test in debug mode
  • Don’t activate Build tool window if Activate tool window option of the corresponding run configuration is disabled
  • Allow building different Cargo projects simultaneously
  • Fix Build action in CLion 2020.3.2
  • Fix endless Go To Declaration for invalid self-containing structs

Internal Improvements

  • Add proc-macro-expander source (see #6658)
  • Unify TOML key parsing (see #6623)

Full set of changes can be found here