IntelliJ Rust Changelog #96
New Features
-
Introduce experimental version of new macro expansion engine. Turning it on the plugin can correctly process modules and
impl
blocks generated by macros. It means that all intellisence features like highlighting, name resolution, completion, etc. work with generated modules and methods fromimpl
blocks as expected. The new engine is not enabled by default for now. You can choose it viaPreferences | Languages & Frameworks | Rust | Expand declarative macros
option. 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
rustfilt
to get human readable function names andJump to Source
action in macOS profiler. Now the plugin provides these features out-of-the-box
-
Add
Use destructuring declaration
intention - 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
impl
andimplt
live 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 toolchain
is 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
crate
andSelf
keywords -
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