IntelliJ Rust Changelog #143
New Features
-
#6564 Provide initial support for function-like procedural macros. Now the plugin can expand such procedural macro calls; as a result, they automatically get some features already available for declarative macros: highlighting, name resolution, limited code completion,
Show macro expansion
intentions and others.
Note, it’s only initial implementation, so it may work in unexpected way in some cases. The feature is disabled by default for now. To turn if on, you should enableorg.rust.cargo.evaluate.build.scripts
andorg.rust.macros.proc
experimental features. Don’t forget to reload project structure after enabling the corresponding features viaRefresh Cargo Projects
action on Cargo tool window.
See tracking issue for more details and current status of procedural macros support -
#6872 Find all possible
impl
blocks for a type alias regardless of the number of aliases defined for the corresponding type when new name resolution engine is enabled. Previously, the plugin processedimpl
blocks for a type alias only when the number of aliases for the corresponding type does not exceed the given threshold (10 by default). It should fix name resolution for crates that heavily use type aliases, e.g. nalgebra or winapi -
#6933 Auto-indent line when typing Enter inside an array literal
-
#6901 TOML syntax highlighting is now available in
Cargo.toml.orig
files -
#6941 Provide new plugin icon
Performance Improvements
-
#6917 Prevent a possible deadlock during project structure setup
-
#6899 Exclude more stdlib parts from indexing. Slightly speed up index process
Fixes
-
#6889 Properly process when cfg-enabled glob import is overridden by cfg-disabled named one with new name resolution engine
-
#6900 Fix cargo features state inference for renamed packages
-
#6897 Omit unchanged default type parameters of return type by
Extract Function
(Refactor | Extract Method
or Ctrl+Alt+M) refactoring -
#6894, #6892 Fix false-positive E0252 error annotations in some cases
-
#6891 Show proper console output on the client side when running a binary with Code With Me plugin (by @akozlova)
-
#6876 Do not expand invocations of builtin macros into
{}
-
#6717 Take into account const generics by inspections that check generic parameters/arguments ordering. It fixes false positive
Type arguments must be declared prior to const arguments
error annotations -
#6887 Don’t throw an exception on changing name of a local variable during indexing
Internal Improvements
-
#6930 Use 2021.1 platform as a default for development
-
#6876 Add initial infrastructure for builtin macro expansion
-
#6881 Simplify bit flags creation
Full set of changes can be found here