New Features

  • Show project loading steps in the Sync tool window. Now it’s more convenient to see errors of project loading

    Sync tool window

  • Support Go to Declaration for Cargo features in Cargo.toml

  • Check if struct fields are not bound multiple times in struct patterns (see E0025) (by @Kobzol)
  • Move refactoring (Refactor | Move or F6) improvements:
    • Support move multiple files/directories
    • Support move a file to another crate
  • Clear variables view on :clear command in REPL (Tools | Rust REPL)

Fixes

  • Cargo features support improvements:

    • Take into account workspace features in external linter integration (Languages & Frameworks | Rust | Cargo)

    • Refresh inlay hints (Preferences | Editor | Inlay Hints | Rust) on enabling / disabling Cargo features in Cargo.toml
  • Fix rendering of NonZero types in Rust 1.48+ while debugging (by @Kobzol)
  • Don’t suggest Create function intention inside parentheses (by @Kobzol)

  • Parser improvements:

    • Fix float literal parsing

    • Allow using bool literals as ident fragments or metavar names in macros

    • Improve the parser recovering in several cases
  • Correctly parse pre-release suffix of rustc version
  • Improve newline handling in Move items refactoring
  • Now Setup toolchain action shows Rust settings dialog
  • Allow only left mouse button double-click to run a target in the Cargo tool window

Full set of changes can be found here