IntelliJ Rust Changelog #96
New Features
-
Introduce experimental version of new macro expansion engine. Turning it on the plugin can correctly process modules and
implblocks generated by macros. It means that all intellisence features like highlighting, name resolution, completion, etc. work with generated modules and methods fromimplblocks as expected. The new engine is not enabled by default for now. You can choose it viaPreferences | Languages & Frameworks | Rust | Expand declarative macrosoption. If you have any problem related to the new macro expansion engine, please file an issue in our tracker - Improve language support:
- Debugger improvements:
- External tools integration improvements:
- Initial Valgrind Memcheck support in CLion since 2019.1. At this moment it’s available only on Linux and macOS. You can read more about Valgrind configuring here
- You don’t need to install
rustfiltto get human readable function names andJump to Sourceaction in macOS profiler. Now the plugin provides these features out-of-the-box
-
Add
Use destructuring declarationintention
- Completion improvements:
- Reorder completion list. Now local items have higher priority and should be placed at the top of the completion list
- Highlight deprecated items and move them at the bottom while completion (by @isamborskiy)
-
Show documentation of the corresponding trait item if element documentation is empty
-
Add
Remove dbg!intention (by @gfreezy)
-
Add
implandimpltlive templates
- Provide name resolution and completion for builtin macros like
assert,include, etc.
Fixes
-
Prevent stack overflow while name resolution
-
Do not reparse files while analyzing code by inspections if possible. Previously, some inspections triggered non opened file reparsing. It should slightly decrease memory consumption
-
Fix regression related to MSVC toolchain detection on start of debug session. Now the plugin correctly notify user that
MSVC toolchainis not supported -
Do not show false positive error annotation about duplicate parameter with function parameters like
fn foo(x: i32, f: fn(x: i32, y: i32)) -
Fix wrong type inference for empty structs
-
Import items only one time when multiple carets are used (by @SomeoneToIgnore)
-
Correctly highlighting
crateandSelfkeywords -
Do not interfere to renaming refactoring in JavaScript files. Previously the plugin triggered on each renaming even non related to rust code
Internal Improvements
-
Implement proper Rust project settings migration
-
Update IDEA & CLion
