New Features

  • #5200 Provide initial debugger support outside of CLion. The current restrictions:
    • available since 2020.1
    • only Linux and macOS are supported for now
    • supported IDEs: IDEA Ultimate, AppCode and RubyMine
    • nativeDebug plugin is required for IDEA Ultimate
    • only LLDB
    • debugger binaries are not bundled and need to be downloaded

  • #5226 Implement type inference for subslice patterns

  • #5182 Add Extract enum variant intention. Now you can extract enum variant into a separate struct and replace all usages by one action (by @Kobzol)

  • #5157 Detect redundant else branch for irrefutable if-let patterns by new Redundant else inspection (by @Kobzol)

  • #5184 Automatically insert paired */ for block comment on enter if needed (by @Kobzol)

  • #3855 Do not show warning annotations about needless explicit lifetimes when there is allow(clippy::needless_lifetimes) attribute

Fixes

  • Rust REPL improvements:
    • #5244 Fix various bugs with incorrect output on Windows. It requires updating evcxr_repl binary to 0.5.1 version
    • #5223 Parse top-level statements like 1+2; properly
    • #5170 Use Ctrl+Enter as shortcut for executing instead of Enter. Now you can type multiline items easier
    • #5173 Don’t throw exception while executing command during indexing
  • #5161 Fix Specify type explicitly intention for ref pat bindings like let ref a = 123;

  • #5130 Do not show false positive Struct pattern does not mention field_name error annotation for unions (by @Stzx)

  • #5133 Now Add _ pattern and Add remaining patterns quick fixes insert , after last match arm if needed to produce valid code (by @Stzx)

  • #5220 Fix stdlib detection for rust-lang/rust project

  • #5252 Fix spacing after visibility in plugin Rust formatter for cases like pub &i32 field or pub (i32, i32) tuple.

  • #5236 Don’t remove empty lines by Extract function refactoring (by @t-kameyama)

  • #5257 Don’t remove curly braces after insertion of paired } for selected single path in use item

  • #5112 Fix exception while Cargo tool window initialization

Internal Improvements

  • #5279 Provide GitHub workflow for beta and stable releases

  • Dynamic plugin progress:

    • #5222 Get rid of some project/application components

    • #5250 Make all extension points of Rust plugin dynamic

Full set of changes can be found here