IntelliJ Rust

Rust plugin for IntelliJ IDEA*

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

Install

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: https://plugins.jetbrains.com/plugins/nightly/8182
- TOML: https://plugins.jetbrains.com/plugins/nightly/8195

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.

×

Source

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

New Features

  • Infer types for try blocks and generators

  • Support Introduce Parameter refactoring gif (by @DaryaShirokova)

  • Provide Make mutable quick fix for Assign to immutable inspection gif

  • Support dbg! macro introduced in rust 1.32. Now all common IDE features work for expressions inside this macro

  • Show type hints for local variables provided by bindings in if let, while let, match and struct destructure patterns

  • Add Put arguments on separate lines and Put arguments on one line intentions gif (by @t-kameyama)

  • Add println postfix template gif (by @SomeoneToIgnore)

  • Initial support of macro 2.0 syntax. Note, all other features like name resolution, completion, etc. are not supported yet

  • Provide lldb formatter for OsString

  • Annotate the yield keyword as experimental

Fixes

  • Correctly show variable values while debugging

  • Fix false positive Use of moved value error annotations: correctly process bindings in if let and while let, and handle noreturn functions

  • More precise type inference for types with complex trait bounds

  • Correctly process impls for impl Trait types while name resolution

  • Take into account super traits defined with where clause while name resolution (by @vlad9486 & @vlad20012)

  • Enable console colors for output on Windows

  • Perform name resolution for associated type paths like Self::Item properly

  • Do not add extra lifetimes by Implement members quick fix (by @SomeoneToIgnore)

  • Fix lldb formatters for Vec, String and other structures for nightly rust builds

  • Fix name resolution of macros imported via wildcard

  • Forbid Unwrap Single Expr intention for async and try blocks

  • Do not show two build actions in CLion 2019.1 toolbar

  • Improve type inference for str type. Now it doesn’t implement the trait Sized (by @kumbayo)

  • Expand macros correctly when vis fragment specifier should be mapped to the empty token

Internal Improvements

  • Introduce lldb pretty-printers test runner

  • Run tests with CLion

  • Drop 2018.2 platform support; compile plugin with 2019.1 EAP sources