Changelog #33

Commit: 5ca7cd9
Release: 2020-07-13

Sponsors

Ferrous Systems is a Berlin based consultancy focused on the Rust Programming language. Ferrous Systems offers advice, training, open source development, and proprietary development services for a wide variety of applications in Rust, including embedded systems, compiler/tooling components, and web/backend technologies. This week, Ferrous Systems is running Oxidize Global, an online conference for embedded systems in Rust! Thanks to Ferrous Systems for supporting open source projects like rust-analyzer!

New Features

  • #5293, #5299 automatically reload workspace on Cargo.toml and similar changes.

    87297466 c4c6e200 c508 11ea 9fb0 519757220b5d
  • rust-analyzer is available via rustup:

    1
    2
    3
    4
    5
    6
    7
    
    $ rustup update nightly
    info: syncing channel updates ...
    $ rustup component add \
        --toolchain nightly rust-analyzer-preview
    info: installing component ...
    $ rustup run nightly rust-analyzer --version
    rust-analyzer 8b0983e
    

    At the moment, the recommended way to install rust-analyzer is still via GitHub release.

  • #4972 gzip rust-analyzer releases.

  • #5244 add a command to compute memory usage statistics using Archimedes' method.

  • #5270 highlight error for calls with too few/too many arguments.

  • #5284 add folding for record literals.

  • #5292 Goto Type Definition works for self.

  • #5294 complete function parameters in more cases

    87296648 60efe980 c507 11ea 95d5 9b66623e2636
  • #5314 use parameter semantic tag for function parameters.

  • #5326 add type inference support for unions.

Fixes

  • #5319 upgrade Chalk, fixing a number of type inference bugs.

  • #5285 correctly determine cursor position when rewriting to a raw strings:

    87071611 bdf35300 c21a 11ea 93d6 c04f1b1a8ac1
  • #5243 consider EPERM error as other vscode processes using rust-analyzer.

  • #5252, #5255 fix a bug where workspace symbols in workspace would skip symbols from top-level crate.

  • #5280 re-enable completion for incomplete impl blocks.

  • #5288 avoid accidentally overwriting config values.

  • #5286 cap the maximal number of syntax errors.

  • #4996 correctly generate new struct field in file containing struct def.

  • #5311 fix goto definition for type alias type parameters.

  • #5324 show implementation code lens for unions.

  • #5328 Change Visibility assist works on statics.

  • #5330 fix ignore attribute autocompletion.

Internal Improvements

  • #5303 speed up code completion.

  • #5307 document how to profile code completion.

  • #5242 upgrade salsa to 0.15.0 which significantly improves rust-analyzer’s. compile times, by avoiding repeated monomorphisations.

  • #5245 prepare AssistBuilder for assists which create new files.

  • #5247 modernize completion tests.

  • #5312 make a slow test parallel.