Changelog #31

Commit: ca31b1d
Release: 2020-06-29


This week, we’d like to thank another long-time sponsor:

Parity is building tooling and infrastructure for the decentralised, trustless Web in Rust.

New Features

  • #4990 introduce an ItemTree layer to avoid reparsing files. This reduces the latency of "go to definition" in a simple benchmark on rust-analyzer by around 30%.

  • #5017 add custom cargo runners support. This adds an option to delegate actual cargo commands building to another extension. For example, to use a different manager like cross. cross-rust-analyzer is an example of such extension.

  • #5069 Extract Variable understands field init shorthand

    86007529 d2b03980 ba17 11ea 998f 0e44f659041f
  • #4999 allow matching of whole macro calls in structural search replace.

  • #5007 allow matching within macro calls in structural search replace.

  • #4997 document GNOME Builder (Nightly) support for rust-analyzer.

  • #4940 set injected modifier for code in doctests. Theme authors can use it to dim injected code.

  • #5047 matching brace works for | in lambdas

    86006971 122a5600 ba17 11ea 8be7 f60b0a97eead
  • #5066 infer type for slice wildcard patterns.

  • #4587 missing unsafe diagnostics.

  • #5100, #5102: Add support for include_str and include_bytes.


  • #4900 fix name resolution for Self in enums.

  • #4988 don’t offer to add missing fields of unknown types.

  • #4992 never disable error logging on the frontend.

  • #5002 fix underflow panic when doctests are at top of file.

  • #5004 fix panic in split/merge import assists.

  • #5023 fix string literal inference in match.

  • #5015 account for updated module ids when determining whether a resolution is changed.

  • #5033 order of glob imports does not affect import shadowing.

Internal Improvements

  • #4976 new VFS.

  • #5068 prepare for dynamic project reloading.

  • Rewrite main loop in rust-analyzer.

  • #4982 upgrade chalk. This, and other type system improvements, bring the proportion of of unknown types in rust-analzyer to less than 1%.

  • #4983, #5010 add paths::RelPath[Buf].

  • #5013 uniformly trim test data.

  • #5014 centralize test data parsing.

  • #5029 use paths::AbsPath in more places.

  • #5034 cleanup project.json deserialization.

  • #5048, #5056 Canonicalize actor API.