IntelliJ Rust

Open-source Rust plugin for IntelliJ-based IDEs

Install

Stable builds

IntelliJ Rust is in active development, and we regularly publish new stable builds to the JetBrains plugin repository. You can download and install them directly from Settings / Preferences | Plugins | Marketplace in your IDE.

Nightly builds

In addition to stable releases, we also ship nightly snapshots of the intellij-rust development branch. To use the nightly channel, add a custom plugin repository and set the following URL:

https://plugins.jetbrains.com/plugins/nightly/8182

Compatible IDEs

The plugin is compatible with all Intellij-based IDEs like IDEA, CLion, or PyCharm. The latest plugin version supports the latest released platform version (for example, 2019.2).

Bug reports and feature requests

Please use our tracker. You can get there quickly right from the IDE: call Create New Issue on a selected piece of code, and you’ll jump to a pre-filled issue creating form.

Also feel free to ping us on Gitter.

×

Source

Intelligent Rust

editor features

IntelliJ Rust brings JetBrains-quality language support and full IDE experience to your Rust workflow.

Rust becomes native to IDEA, CLion, and other IntelliJ IDEs with smart coding assistance, seamless Cargo support, and built-in test runner.

In CLion, you get even more: fully-fledged debugger, CPU profiler, and Valgrind memcheck.

What's new

IntelliJ Rust Changelog #130

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