Changelog #26

Commit: fbb8b88
Release: 2020-05-25

In the effort to improve support for all editors, and to speedup acceptance of rust-analyzer extensions to the Language Server Protocol, all extensions are now documented:

If you maintain rust-analyzer plugin for some editor, consider implementing these extensions and giving feedback for the corresponding upstream issue at Microsoft/language-server-protocol. Additionally, consider subscribing to #4604, which will announce all future extensions and changes. Note that we don’t have any compatibility guarantees yet — all our extensions are subject to change on a short notice.


Starting this week, we’ll be mentioning our significant Open Collective backers of "Sponsor" level or higher in the changelogs.

This week, we welcome a new sponsor: Prisma, a modern database toolkit for Node.js and TypeScript built with Rust under the hood.

New Features

  • #4518 Add TurboFish assist

    82789805 3cfb1a80 9e6b 11ea 9100 a14d722d2620
  • #4464 Run action passes --feature flags to cargo based on the required cfg.

  • #4555 on NixOS, automatically patchelf downloaded rust-analyzer binary.

  • #4474 highlight attributes.

  • #4556 dedicated highlighting for true and false.


  • #4491 run doctest feature works on item inside impls.

  • #4505 infer return type of loops with value breaks.

  • #4528 fix debug lens fix for binary targets.

  • #4526 take tree at fixing ▶ symbol.

  • #4559 add blank line after module path in hover text.

Internal Improvements

  • #4538 add tests for VS Code extension.

  • #4494, #4519 change implementation of code actions to use snippets.

  • #4543 remove old infrastructure for cursor placement.

  • #4552 use snippets for onEnter handling.

  • #4569 change implementation of code action groups to make it upstreamable.

  • #4501, #4506 improve performance of auto-import.

  • #4520 better test marks infrastructure.

  • #4532 split change_visibility and fix_visibility assists.

  • #4516 use two-stage LSP initialization, to better account for capabilities.

  • #4571 remove label from SourceChange.

  • #4570 leverage Chalk’s impls for built-ins.

  • #4573 cleanup Chalk integration code.

  • #4575 leverage Chalk’s impls for functions items and pointers.

  • #4590 upgrade rustc_lexer.

  • #4495 improve parsing of test fixtures.