IntelliJ Rust Changelog #122
Most of the new features in the release have been added by third-party contributors. Many thanks to @Kobzol for the extraordinary amount of contributions!
You can participate too! Join our open source development on Github.
New Features
- Inlay hints improvements:
-
#5276, #5361 New inlay hints for chained method calls (by @Kobzol)
-
#5195 Support blacklisting for inlay parameter hints. You can find these settings in
Settings | Editor | Inlay Hints | Rust | Parameter hints | Blacklist...
(by @Kobzol)
If you don’t like one of our new inlay hints, you can disable it inSettings | Editor | Inlay Hints | Rust
. -
- Refactorings improvements:
-
#4985 Provide
Introduce Constant
refactoring. You can invoke it viaRefactor | Extract | Constant
or Ctrl+Alt+C (by @Kobzol) -
#5304 Improve
Extract Enum Variant
refactoring. Nowderive
andrepr
attributes are copied from the parent enum to the generated struct (by @Kobzol) -
#5291 Also,
Extract Enum Variant
is now available fromRefactor | Extract
andRefactor | Refactor This
menus (by @Kobzol)
-
-
#4969 Highlight errors in format string literal in macros like
println
,write
,format
, etc. (by @Kobzol) -
#5308 Automatically insert missing
<>
when completing generic types (by @Kobzol) -
#5336 Support
include!
macro calls generated by another macro call. Note, full support (name resolution and completion for code from including file in included one and correct module hierarchy recognition, i.e. absence of false positive “File is not included in module tree” editor notification), is available only when the new macro expansion engine is enabled (You can enable it inSettings | Languages & Frameworks | Rust | Expand Declarative macros
). - #5270 Show value of
NonZero*
numbers in the debugger (by @Kobzol)
Performance Improvements
-
#5343, #5297 Slightly optimized macro name resolution and expansion
-
#5251 Fixes UI freezes during project save if the new macro expansion engine is enabled
-
#5205 Improved macro expansion task cancellation. Typing in
Cargo.toml
should be smoother. This affects you only if the new macro expansion engine is enabled.
Fixes
-
#5147 Take into account
extern
keyword byImplement members
quick fix (by @t-kameyama) -
#5335 Fix false-positive
E0603 module is private
if the module is declared multiple times (e.g. inlib.rs
andmain.rs
) -
Go To Super
action (Ctrl+U) now allows choosing a module declaration (if multiple) -
#5333 Fix
#[cfg()]
attributes support. Ignoreimpl
’s from disabled submodules - #5320 Improve
"complete current statement
(Ctrl+Shift+Enter) action:- don’t add new line after
;
completion - insert empty line on empty line
- don’t add new line after
-
#5317
Implement Members
andGenerate Construct
actions now take into account all trait bounds of trait object types -
#5312 Omit unchanged default type parameters of parameters by
Extract Function
refactoring (by @Kobzol) - #5296 Fix
Find Usages
action:- take into account files added to the project by
include!()
macro - correctly find reference to
pub(crate)
items declared in crate root
- take into account files added to the project by
-
#5293 Fix the issue with non-rust directory renaming. Previously, the plugin sometimes broke “Rename” refactoring applied to a directory in non-rust projects.
-
#5292 Fix the issue with
Surround with unsafe block
quick fix (by @Kobzol) -
#5261 Properly do
Invalidate caches & Restart
action -
#5155 Fix
Use of moved value
false-positive error -
#5288 Do not throw the
exception
while building a project viaBuild
action -
#5345 Fix
IndexNotReadyException
while completion during indexing -
#5342 Fix possible
java.lang.AssertionError
exception during indexing - #5341 Fetch cargo metadata even with compilation error.
Previously, if
org.rust.cargo.evaluate.build.scripts
experimental feature was enabled and there was compilation error, fetching cargo workspace data failed
Internal Improvements
Full set of changes can be found here