IntelliJ Rust Changelog #184
Update on Procedural Macros Support
We finally enabled function-like and derive procedural macro expansion by default 🎉
Now the plugin provides them with syntax highlighting, completion, the Show Macro Expansion popup, and other features already available for declarative macros. Generated items are now suggested in code completion and considered in other code insight features:

Note that attribute procedural macro expansion is still disabled by default. If you want to try out, enable org.rust.macros.proc.attr experimental feature.
Read more about macros and how they are supported in Rust plugin in the corresponding blog post
New Features
-
#4768 Show coerced types via
View | Type Infoaction (Ctrl+Shift+P)
-
#9686 Support short intra-doc links (in the
[link]format) -
#9808 Parse half-open range patterns
-
#9760 Notify users about changes in the crate roots of procedural macro libraries to reload the project model. Otherwise, the plugin won’t be able to expand procedural macro calls properly
-
#9711 Experimentally set
RUST_IDE_PROC_MACRO_COMPLETIONandRUST_IDE_PROC_MACRO_COMPLETION_DUMMY_IDENTIFIERenvironment variables for procedural macro when invoking them during completion. The idea is that authors of procedural macros could use these variables and based on them change the behavior of the macro to provide a better (possibly custom) completion for IDE users. See usage example inyew::html!macro
Fixes
-
#9756 Suggest
Reload projectinstead ofAttach file to a modulequick-fix for the crate root files after their creation -
#9761 Fix type inference in closures on nightly Rust
-
#9779 Fix false-positive errors like
Use of moved valuesafter invalidating caches without clearing file caches -
#9800 Fix impl search when there are multiple type aliases with the same names
-
#9783 Fix move statement up/down editor action being incorrectly disabled with some IDE configurations (by @afetisov)
-
#9823 Fix completion inside local macro calls in 2022.3 IDE builds
-
#9767 Fix navigation, highlighting, completion and other code insight features with function-like macros invoked in the pattern context
-
#9762 Fix
Find usagesfor variables defined by macros -
#9764 Fix handling of nested blocks expanded from local macros
-
#9741 Don’t offer
Un-elide lifetimesintention when there are no input lifetimes -
#9788 Don’t show
File does not belong to any known Cargo projectwarning for scratch files -
#9745 Restore
Import | Fix all 'Unresolved reference' problems in filequick-fix option, which adds all missing unambiguous imports. Note, if you prefer missing imports to be fixed on the fly, you can enableAdd unambiguous imports on the flyoption inSettings | Editor | General | Auto Importsettings -
#9737 Don’t create separate
Undoentries when adding unambiguous import on the fly
Internal Improvements
- #9758 Make 2022.3 platform default for development
Full set of changes can be found here