10

IntelliJ Rust Changelog #147

 4 years ago
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.
neoserver,ios ssh client

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] and cfg 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 in Settings | 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 in Settings | 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)

    unknown_cfg_predicate.pngGIF
  • #6832 Complete target triples in Cargo run configuration and Run Anything dialog. Suggest installing the target if it is not yet installed

    Target triple completion in cargo run configuration

  • #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:

    • #7184 Resolve procedural macros through #[macro_use] on extern crates

    • #7167 Fix exception when removing a crate from the workspace

    • #7152 Fix unexpected name resolution after crate rename

  • #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 to unknown symbol (instead of error)

Internal Improvements

  • #7162 Speed up check workflow on CI

  • #7160 Simplify writing proc macro tests

Full set of changes can be found here


Recommend

  • 34
    • intellij-rust.github.io 5 years ago
    • Cache

    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 partic...

  • 36
    • intellij-rust.github.io 5 years ago
    • Cache

    IntelliJ Rust Changelog #123

    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
    • intellij-rust.github.io 5 years ago
    • Cache

    IntelliJ Rust Changelog #124

    New Features Support 2020.2 EAPs Enable new macro expansion engine in nightly builds ...

  • 48
    • intellij-rust.github.io 5 years ago
    • Cache

    IntelliJ Rust Changelog #125

    New Features Provide initial support for debugging with MSVC toolchain in CLion 2020.2. You can track current progress and restrictions

  • 28
    • intellij-rust.github.io 5 years ago
    • Cache

    IntelliJ Rust Changelog #127

    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.github.io 4 years ago
    • Cache

    IntelliJ Rust Changelog #137

    IntelliJ Rust Changelog #137 14 Dec 2020 New Features Support Find Usages action (Edit | Find Usages or Alt+F7) for Cargo

  • 21
    • intellij-rust.github.io 4 years ago
    • Cache

    IntelliJ Rust Changelog #136

    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.github.io 4 years ago
    • Cache

    IntelliJ Rust Changelog #138

    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
    • intellij-rust.github.io 4 years ago
    • Cache

    IntelliJ Rust Changelog #139

    New Features Cargo features and cfg support improvements: Take into account attributes under

  • 17
    • intellij-rust.github.io 4 years ago
    • Cache

    IntelliJ Rust Changelog #140

    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