IntelliJ Rust

Rust plugin for IntelliJ IDEA*

*work-in-progress, expect bugs and missing features


Getting alpha builds

IntelliJ Rust is currently in the alpha stage of development. When we reach some acceptable level of stability, we publish alpha builds to the IntelliJ’s main plugin repository. You can download and install these builds directly from Plugins > Browse repositories screen in your IDE.

As this is a preview release, something might go wrong. So, be brave to face some nasty bugs. If you find one, we would very appreciate if you file an issue on our bugtracker or ping us on our chat.

Setting up nightly builds

In addition to preview releases, we also ship pre-release builds of intellij-rust and intellij-toml in the nightly channel.

To use them you need to follow the instructions of adding additional plugin repository and paste the URL for the one you need:

- Rust:

Nightly builds are daily snapshots of current development branch. So, it’s natural that there may be even more bugs than in alpha channel. If you find one, we would very appreciate if you file an issue on our bugtracker or ping us on our chat.

Compatible IDEs

The plugin should be compatible with any Intellij based IDE like IDEA, CLion or PyCharm. Latest plugin is guranteed to support the latest released major platform version (2017.3 at the moment of writing), it may support some previous or EAP versions. See Help > About menu for IDE version and Settings > Plugins menu for plugin version.



What is IntelliJ Rust

Intelligent Rust

We aim to build JetBrains-quality language support for IntelliJ IDEA and related IDEs. Right now, you get native code completionWIP, broad navigation, intentions, formatting and much more...

Corroded IDEA

...while this is still your ol' good IDE. Enjoy highly productive developer experience, VCS integration and other languages support.

What's new

IntelliJ Rust Changelog #86

New Features

  • Support paths which start with crate name and crate keyword for edition 2015. See Module system improvements section in rust 1.30 release notes for more details

  • More convenient work with lldb. Now you can view separate children of Vec and correct utf-8 values of &str and String in the debugger tool window. Currently, it’s implemented via own lldb formatters. You can disable them or switch to default ones in Preferences | Build, Execution, Deployment | Debugger | Data Views | Rust

  • Implement “Nest use statements” intention gif (by @majecty)

  • Extend Simplify boolean expression intention for == and != operators gif (by @DaryaShirokova)

  • Group imports by semantics while import optimization (by @isamborskiy)

  • Add gutter icon to run benchmarks

  • Add annotation for using extern functions and constants outside of unsafe block as error (by @garyttierney)

  • Support vis macro matcher. See the corresponding issue for more details


  • Open project properly via project Cargo.toml

  • Prevent moving of use items outside of inline module block while import optimization

  • Correctly create new test configuration if another one is already created

  • More precise resolution of paths in use items with the same names

  • Fix false positive error annotation in visibility restriction

  • Take into account lexical order while name resolution of macros

  • Do not mark '_ lifetime as undeclared

  • Expand log macros correctly

  • Restore Show stdout/stderr in tests option in cargo run configuration. Note, this option disables the test tool window because of the bug in libtest

  • Improve symlinks support. Now name resolution should work correctly if stdlib source path contains symlinks

Internal Improvements

  • Exclude jars related to java support from plugin classpath while building. It should prevent accidental using of java API which leads to NoClassDefFoundError in small IDEs like CLion

  • Update Kotlin to 1.3.0