New Features

  • Provide Inline refactoring for local variables (Refactor | Inline or Ctrl + Alt + N) (by @Kobzol)

  • Provide Generate Getters and Generate Setters actions for struct fields. Actions can be invoked from Generate menu (Code | Generate or Alt + Insert) (by @Kobzol)

  • Improvements of Move refactoring for top-level items (Refactor | Move or F6):

    • Move related impls together with moved items

    • Handle editor selection to choose initial items in refactoring dialog

    • Support reexports

    • Check visibility conflicts
  • Provide intention to create a function from an unresolved function call (by @Kobzol)

  • Add project template for procedural macro. Recently we improved New project dialog to support cargo-generate templates. In this release we add @eupn’s template that makes it easy to create a procedural macro project.
  • Provide command completion for wasm-pack Run Configurations (that was added in the previous release) and Run Anything (double Ctrl)

Performance Improvements

  • Don’t expand macros disabled by #[cfg] attributes. This reduces overall macro expansion time

Fixes

  • Don’t unescape backslashes in Rust test output. Fixes many issues with incorrect test output
  • Properly resolve re-exports of crate-relative paths (see the corresponding bug)
  • Fix macro name resolution: macros from local import should shadow macros from crate root
  • Don’t check name conventions for statics in extern blocks
  • Exclude build directory of rustc project from IDE index
  • Don’t annotate format-like macros where format string is generated by macro to avoid false positives (by @Kobzol)
  • Show No Rust toolchain configured notification in Cargo.toml. Previously this notification was shown only for Rust files
  • Attach stdarch and backtrace stdlib parts as project dependencies properly. It fixes search inside them. Also, this improves analysis performance for code that uses stdarch
  • Fix name resolution of nested modules in modules linked to a project with a #[path = ""] attributes from other directories
  • Fix false positive unresolved reference error if you call trait method via UFCS and trait is not in the scope
  • Fix exception on build cancel with new Build tool window. You can enable it via org.rust.cargo.build.tool.window option in Experimental Features panel
  • Disable Substitute associated type intention for type aliases (by @Kobzol)
  • Fix project creation via cargo-generate template when project name contains underscores _
  • Use project name instead of directory name as default package name while new project creation (see the issue)
  • Display Cargo package name instead of project directory name in Cargo tool window and run configurations

Full set of changes can be found here