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 #105

New Features

  • Type hints improvements:
    • Provide new interactive inlay type hints. Now you can collapse complex types in desired way, navigate to type declarations or even disable hints just from an editor. You can change settings of type hints in Preferences | Editor | Inlay Hints | Rust panel. Note, interactive inlay hints available only since 2019.2 and work only for types so far
    • Now type hints take into account type aliases for enum and structs
  • New intentions:
    • Add Replace .. with actual fields intentions for struct literals (by @shevtsiv)
    • Implement Put on separate lines and Put on one line intentions for enum variants and struct fields (by @t-kameyama)
  • Navigate to the corresponding Cargo.toml file when Goto super action is called for crate root file
  • Provide completion of macro fragment specifiers like ty, item, expr, etc. (by @t-kameyama)
  • Show items expanded from macros in Navigate | Class/Symbol dialogs for all scopes
  • Show stdout for successful tests. Previously, test output was shown only for failed tests because of lack of the corresponding support in libtest. Note, at this moment it works only with nightly toolchain because the implementation is based on --show-output flag introduced recently and available only in nightly compiler for now (by @emmericp)

Fixes

  • Debugger improvements:
    • Fix incorrect rendering of test results tree in Run tool window while debugging
    • Correctly parse build and run arguments to run debug process
  • Fix false positive Cannot move error annotation while using slice patterns
  • Fix false positive E0026 error annotation on a struct pattern with a raw identifier
  • Take into account crate re-exports via pub use item for 2018 edition
  • Fix sporadic Unresolved reference error annotations for valid code
  • Improve type inference with generic default type params
  • Fix Too few arguments for option exception while manual changing of run configuration command
  • Correctly auto import trait items if possible when UFCS form is using
  • Correctly handle trailing commas in Put on separate lines intentions

Internal Improvements

  • Add initial support of cfg attributes in the plugin’s analysis. For now, it’s turned off by default and doesn’t affect users because of incomplete implementation