In this release, we enable the new macro expansion engine by default. It was a quite long story for us,
so we decided to increase the version of our plugin from
0.3. Meet the
IntelliJ Rust 0.3!
We’ll release a dedicated blog post about the new expansion engine in CLion blog soon.
- #5716 Enable new macro expansion engine by default. Let’s remember why the new engine is better:
- it supports
moddeclarations generated by declarative macros, i.e. if some methods are inside
implblock generated by macro invocation, the plugin makes name resolution and completions for these methods as expected. Support for generated
moddeclarations provides proper name resolution and completion for crates like
- it’s now possible to find macro-generated items by
Go To Struct DeclarationCtrl + N or
Go To SymbolCtrl + Shift + N.
- it brings semantic highlighting in macro invocations;
- most of the IDE features now work inside macro invocations just like in a regular code: code completion,
Go To Declaration(Ctrl + B),
Go To Implementation(Ctrl + Alt + B),
Go To Type Declaration(Ctrl + Shift + B),
Type Info(Ctrl + Shift + P),
Extend Selection(Ctrl + W), etc.
If you ran into an issue with the new engine, you can switch it back to the old one in the plugin settings
Settings | Languages & Frameworks | Rust | Expand Declarative Macros.
- it supports
#5455 Add initial implementation of
Moverefactoring (F6) for top-level items like
- #5693 Notify users if they use too old Rust toolchain that isn’t already supported by the plugin.
Today we support Rust
#5689 Fix location detection of cargo binaries like
evcxr(used by Rust REPL) or
Run with Coverage)
#5679 Fix infinite cargo refresh if you have
openid = 0.4.0dependency crate
#5678 Fix false-positive annotation produced by
Lift returninspection on
matchexpression without any arm.
Run with Coverage
- #5674 Slightly speed up highlighting and macro expansion
custom-buildcargo target kind (needed in order to distinguish cargo target for
Full set of changes can be found here