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

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

  • #6563 Introduce Share in Playground action to share your code on play.rust-lang.org. You can invoke it via Tools | Rust | Share in Playground or via context menu

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

    empty function screenshot

  • #6602 Gray out disabled cfg_attr attributes

    disabled attributes screenshot

  • #6590 Support Build tool window for cargo check and clippy commands

  • #6535 Add an inspection to check whether a Cargo feature has a cyclic dependency on itself

  • #6471 Create Function intention now supports associated functions (by @Kobzol)

  • #6324 Pass required-features implicitly to a run configuration

  • #6364 Support min_const_generics feature (will be stabilized in Rust 1.51.0)

Performance Improvements

  • #6662, #6659 Slightly speed up name resolution & type inference

Fixes

  • #5475 Show type names in inlay parameter hints for generic enum variants (by @Kobzol)

  • #6650 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

  • #6501 Import quick-fix sorts items now: workspace items go first, then stdlib ones, and then the rest (by @gfreezy)

  • #6643 Adjust type inference to infer type of allocator type parameter for Box and Vec items. See the corresponding RFC about allocator API

  • #6636 Take into account cfg_attr attribute during experimental compiler features annotation like #![cfg_attr(feature = "nightly", feature(generators))]

  • #6691 Improve dependency completion in Cargo.toml (by @Pzixel)

  • #6668 Fix Join Lines action (Ctrl+Shift+J) in case there is no whitespace between parameters (by @t-kameyama)

  • #6684, #6678 Extract only selected statements in Extract function refactoring (by @Kobzol)

  • #6609 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

  • #6580 Do not suggest Change item visibility intention in trait impl blocks (by @Kobzol)

  • #6685 Correctly resolve method calls (private method in inherent impl vs public trait impl)

  • #6504 Fix working directory when run cargo test in debug mode

  • #4550 Don’t activate Build tool window if Activate tool window option of the corresponding run configuration is disabled

  • #6702 Allow building different Cargo projects simultaneously

  • #6750 Fix Build action in CLion 2020.3.2

  • #6671 Fix endless Go To Declaration for invalid self-containing structs

Internal Improvements

Full set of changes can be found here