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

New Features

  • Provide initial support for debugging with MSVC toolchain in CLion 2020.2. You can track current progress and restrictions here
  • Add initial implementation of Move File refactoring. The refactoring currently supports moving a single file without submodules.

  • Now Rust plugin is dynamically loadable on 2020.2. It allows you to install the plugin without restarting the IDE
  • Add intentions to convert a method call to UFCS and vice versa (by @Kobzol)

  • Add quick fixes to remove unused variable / parameter (by @Kobzol)

  • Add the quick fix to convert an immutable reference to a mutable one (by @Kobzol)

  • Update icons for Rust items. Now they are more similar to C/C++ icons. Also, fix visibility modifiers for some items in structure view

    Before After
    image image
  • Now highlighting of lint inspection annotations is associated with corresponding lint levels defined by lint check attributes like allow, warn, etc. (by @Stzx)
  • Basic support for forbid attribute. Now messages from a forbidden lint are highlighted as errors in the editor (by @Stzx)
  • Allow a user to change mutability of parameters in Extract Function dialog (by @Kobzol)
  • Report type errors for references with different mutability even if a type is not fully known (by @Kobzol)
  • Show unique editor tab names for main.rs, lib.rs and Cargo.toml (by @Kobzol)
  • Improve text for Convert to type quick fix (by @Kobzol)
  • Update Wrong type arguments number inspection (by @Kobzol)
  • Replace Remove all type arguments quick fix with Remove redundant type arguments quick fix (by @Stzx)

Fixes

  • Take into account namespaces when name shadowing occurs. For example, now use anyhow::anyhow doesn’t break name resolution
  • Fix false positive about not allowed impl Trait in associated type binding (by @Kobzol)
  • Fix false positive for Match must be exhaustive error (by @Mcat12)
  • Fix usage replacement in Extract Enum Variant refactoring (by @Kobzol)
  • Support tuple struct fields in Make public quick fix (by @Kobzol)
  • Make Self inside impl of enum to be resolved to both impl and enum items (by @fan-tom)
  • Don’t trigger Main function not found inspection if the file has top-level errors (by @Kobzol)
  • Fix Go to Declaration from associated type bindings on 2020.2
  • Fix parentheses completion for Fn* traits (by @Kobzol)
  • Liveness analysis takes into account destructured struct fields (by @Kobzol)
  • Fix Join Lines action for doc comment lines (by @Stzx)
  • Disable Promote Module to Directory and Downgrade Module to File refactorings for invalid files in the editor (by @Kobzol)
  • Correctly handle symlinked Cargo projects (by @Jezza)
  • Fix #[macro_export(local_inner_macros)] when used with the experimental macro expansion engine
  • Fix macro expansion infinite progress on 2020.2
  • Properly render types in annotations on 2020.2
  • Properly escape text in a test output pane
  • Get rid of options to disable the Test Tool window

  • Fix some exceptions:

    • In Remove reference and Change return type quick fixes
    • When analysing file with an external linter
    • During code folding of invalid macro calls
    • On Find Usages in Macros 2.0
    • In structure view and usage tooltip
    • When formatting file with rustfmt on save

Internal Improvements

  • Enable proofreading in commit messages
  • Provide issue / PR navigation in git log

Full set of changes can be found here