New Features

  • #6530 Enable Build tool window by default. The Build tool window provides structured output for build, run and test commands. Note, this feature requires Cargo 1.48.0 or higher

    You can disable it via org.rust.cargo.build.window option in Experimental Features dialog (Help | Find Action and type Experimental features to open the dialog)

  • #6419 Provide experimental code completion ranking for Rust based on machine learning. It applies rules learned from data we have gathered anonymously during our EAPs, which results in better suggestions. Note that we have not collected any source code, only information about your interactions with the code completion UI. The ranking model is disabled by default for now. You can enable it via Editor | General | Code Completion | Machine Learning-Assisted Completion settings.

  • #6443 Update obsolete references in use groups via Move refactoring (F6). Now, when moving foo from mod1 to mod2, the outdated group import use mod1::{foo, bar}; will be replaced with the proper use mod2::foo; use mod1::bar;.

  • #5644 Add Fill missing arguments quick-fix to complete a function call arguments with default values (by @Kobzol)

  • #5771 Add the intention to change item visibility (by @Kobzol)

  • #6390 Introduce experimental Cargo.toml dependency completion based on the new local Cargo registry index. Note, the corresponding feature is disabled by default for now. You can enable it via org.rust.crates.local.index option in Experimental Features dialog (Help | Find Action and type Experimental features to open the dialog)

  • #6492 Show quick documentation for keyword-like elements, e.g. fn, enum, async, etc

  • #6273 Provide highlighting of string-formatting macros from log crate, in addition to already supported macros from stdlib like println, format, etc. (by @Kobzol)

Performance Improvements

  • #6526 Speedup name resolution, especially in large Rust modules

Fixes

  • #6498 Resolve derive procedural macros with new name resolution engine. Note, you can enable the new engine via Use experimental name resolution engine option in Preferences | Languages & Frameworks | Rust settings

  • #4254 Proper support for ANSI escape codes in Build tool window

  • #6536 Fix rendering of generic types in E0277 error message

  • #6533 Improve popup of Has implementations gutter icon by items sorting and allowing to open results in Find tool window

  • #6506 Fix false-positive warnings about wrong naming convention for non-ASCII identifiers (by @Stzx)

  • #6491 Do not annotate cfg-disabled trait items as missing (E0046) and do not offer them via Generate members action (by @Kobzol)

  • #6404 Parse fully qualified macro calls at top-level properly (by @msmorgan)

  • #6004 Fix inlining of function arguments (by @SaarYogev)

Full set of changes can be found here