New Features

  • Now rustfmt can be used instead of built-in formatter. To turn this feature on, enable Use rustfmt instead of built-in formatter option in Preferences | Languages & Frameworks | Rust | Rustfmt settings. Note, only whole file can be formatted with rustfmt for now. If you select some range inside Rust file, it will be formatted with built-in formatter regardless if the option is enabled or not
  • Support 2020.3 EAPs
  • Implicit trait objects are deprecated inspection supports lint attributes now. I.e. the inspection takes these attributes into account while highlighting and #[allow(bare_trait_objects)] attribute can be inserted by suppression quick fix

  • Now Un-elide lifetimes intention supports generic types (by @Kobzol)


  • Properly update debugger binaries after Native Debugging Support plugin update. Note, Native Debugging Support plugin provides debugging support in IntelliJ IDEA Ultimate
  • Fix Run with Coverage with the latest nightly toolchain
  • Add missing options of Cargo commands in completion while run configuration editing and in Run Anything (double Ctrl) dialog
  • Fix exception after variable inlining
  • Use fully qualified names for types to avoid ambiguity in some cases (by @Kobzol)
  • Now the plugin tries to find stdlib sources in $(rustc --print sysroot)/lib/rustlib/src/rust directory even if a user doesn’t use rustup
  • Get rid of Don't reformat child modules option in Preferences | Languages & Frameworks | Rust | Rustfmt settings
  • Don’t rename src directory while Rename (Shift + F6) refactoring
  • Fix “Incorrect CachedValue use” exception
  • Fix exception while initialization of the Cargo tool window

Internal Improvements

  • Use Java 11 to build and develop the plugin
  • Provide updateCargoOptions gradle task to update options of Cargo commands automatically. These options are used to provide proper completion while run configuration editing and inside Run Anything (double Ctrl) dialog

Full set of changes can be found here