

IntelliJ Rust Changelog #147
source link: https://intellij-rust.github.io/2021/05/18/changelog-147.html
Go to the source link to view the article. You can view the picture content, updated content and better typesetting reading experience. If the link is broken, please click the button below to view the snapshot at that time.

IntelliJ Rust Changelog #147
18 May 2021
In this release, we enable the new name resolution engine by default. Since this fundamental change has been made, we decided to increase the version of our plugin from 0.3
to 0.4
. So, meet the IntelliJ Rust 0.4
!
New Features
-
#7140 Enable new name resolution engine by default. Our new algorithm uses the fixed-point iteration approach and aims to provide better support for complex glob imports (
use foo::*
) and re-exports (use foo as bar
). Here is list of improvements offered by new engine:- Properly support textual scoping when resolving macros
- Resolve of multi-segment macro paths and macro calls inside files included by
include!
- Resolve of macros 2.0
- Support file-level
#![macro_use]
andcfg
attributes - Find all possible
impl
blocks for a type alias. Previously, for performance reasons, they were processed only when the number of aliases for the corresponding type didn’t exceed 10. Now the crates that heavily use type aliases, such as nalgebra or winapi, can be resolved properly
Note that the new algorithm works for top-level items only, so local variables and type inference functionality won’t be affected. If you run into an issue with the new engine, you can switch it back to the old one via
Use new name resolution engine
option inSettings | Languages & Frameworks | Rust
settings -
#6456 Add initial Windows Subsystem for Linux (WSL) support. It is available since 2021.1, and can be enabled using
org.rust.wsl
experimental feature. Note that if there are both local Windows and WSL toolchains, the local one will be selected automatically. You can manually specify desired WSL toolchain location with\\wsl$
path inSettings | Languages & Frameworks | Rust
settings. We plan to improve toolchain selection in the future -
#7102, #7165 Annotate unknown
cfg
predicates and provide a quick-fix to use a proper one. This corresponds to the E0537 compiler error (by @Kobzol)GIF
-
#6832 Complete target triples in Cargo run configuration and Run Anything dialog. Suggest installing the target if it is not yet installed
-
#7098 Support basic name resolution of macros 2.0 (
pub macro name() { ... }
)
Performance Improvements
- #7181 Slightly optimize project model update when using new name resolution engine
Fixes
-
#7174 Cancel external linter process immediately when some file is changed. Previously, in some cases, the process might hang
-
New name resolution fixes:
-
#7178 Take into account enum’s lifetimes in
Needless Lifetimes
inspection -
#7063 Now
Can't find crate
annotation highlights only unknown identifiers and can be suppressed. Also, its highlighting style was changed tounknown symbol
(instead oferror
)
Internal Improvements
Full set of changes can be found here
Recommend
-
34
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 partic...
-
36
This is the last release that supports the 2019.3 platform. To receive plugin updates further, please upgrade your IDE to 2020.1. New Features Debugger support outside of CLion: Do no...
-
25
New Features Support 2020.2 EAPs Enable new macro expansion engine in nightly builds ...
-
48
New Features Provide initial support for debugging with MSVC toolchain in CLion 2020.2. You can track current progress and restrictions
-
28
New Features Support Rust documentation rendering in an editor. Just click to the corresponding icon on gutter to look at rendered version of a particular comment. Also, you can enable it by default v...
-
13
IntelliJ Rust Changelog #137 14 Dec 2020 New Features Support Find Usages action (Edit | Find Usages or Alt+F7) for Cargo
-
21
IntelliJ Rust Changelog #136 30 Nov 2020 New Features Introduce the new experimental engine for name resolution (disabled by default). The new algorithm (aka name resolution 2.0) uses the fixed-...
-
21
IntelliJ Rust Changelog #138 28 Dec 2020 New Features Enable Build tool window by default. The Build tool window provides structured output for build
-
13
New Features Cargo features and cfg support improvements: Take into account attributes under
-
17
Please welcome our new documentation ? It covers almost everything about the plugin, from basic how-to-s to detailed feature descriptions ✍️. And we’...
About Joyk
Aggregate valuable and interesting links.
Joyk means Joy of geeK