IntelliJ Rust Changelog #126
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.2 to 0.3. Meet the IntelliJ Rust 0.3!
 We’ll release a dedicated blog post about the new expansion engine in CLion blog soon.
New Features
- #5716 Enable new macro expansion engine by default. Let’s remember why the new engine is better:
    - it supports implblocks andmoddeclarations generated by declarative macros, i.e. if some methods are insideimplblock generated by macro invocation, the plugin makes name resolution and completions for these methods as expected. Support for generatedmoddeclarations provides proper name resolution and completion for crates liketokio,async-std,reqwest, etc.
- it’s now possible to find macro-generated items by Go To Struct DeclarationCtrl + N orGo 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,
 Find Usages/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 likestructs,enums, etc. 
- 
    #5624 Initial support of unstable or_patternssyntax. Note, some code analysis may still not work with such patterns
- 
    #5687 Add an option to sort items alphabetically in Structure View(Ctrl + F12) (by @t-kameyama)
- 
    #5652 Allow extracting non-root modules with Extract inline moduleintention action (by @Kobzol)
- 
    #5705 Update icons for targets in the Cargo tool window (see differences) 
- #5693 Notify users if they use too old Rust toolchain that isn’t already supported by the plugin.
 Today we support Rust 1.32.0or higher.
Fixes
- 
    #5612 Use more precise error annotations for missing/extraneous function call arguments. Previously, all function arguments were highlighted (by @Kobzol) 
- 
    #5653 Render aliased types for local bindings in the quick documentation Ctrl + Q (by @Kobzol) 
- 
    #5689 Fix location detection of cargo binaries like evcxr(used by Rust REPL) orgrcov(needed forRun with Coverage)
- 
    #5683 Fix Run external linteraction (was broken in the previous release) (by @Stzx)
- 
    #5679 Fix infinite cargo refresh if you have openid = 0.4.0dependency crate
- 
    #5678 Fix false-positive annotation produced by Lift returninspection onmatchexpression without any arm.
- 
    #5670 Fix some false-positives in move analysis related to path assignments. See the issue for details. 
- 
    #5669 Fix some corner cases in doc rendering (Ctrl + Q). See the issue for details. 
- 
    #5441 Fix Run with Coverage
Performance Improvements
- #5674 Slightly speed up highlighting and macro expansion
Internal Improvements
- 
    #5672 Add custom-buildcargo target kind (needed in order to distinguish cargo target forbuild.rs)
Full set of changes can be found here