Changelog #17

Commit: aaa6961
Release: 2020-03-23

New Features

  • #3582 fetch appropriate value of OUT_DIR from cargo check. This enables rust-analyzer to work correctly with crates which use compile-time code generation. This might significantly slow-down startup time (as we need to run cargo check build), so this functionality is disabled by default. To enable, set:

    1
    
    "rust-analyzer.cargoFeatures.loadOutDirsFromCheck": true
    
  • #3580 macro expander is now more tolerant for syntax errors, which makes code completion inside macros more robust.

  • #3623 Fill Match Arms assist now works even if some arms are already present.

  • #3607 and instructions for installing rust-analyzer from AUR.

  • #3640, #3651 assist to merge imports with a common prefix.

    77323042 ea8b6980 6d14 11ea 8cb6 23dccafaa024
  • #3662 correctly part arbitrary enum discriminants.

  • #3663 installation from source uses rust-analyzer from $PATH by default.

  • #3677 include macro_rules! macros in workspace symbols.

Fixes

  • #3541 correctly complete constants and paths in patterns.

  • #3668 don’t suggest Invert If assist for if let syntax.

  • #3671 fix infinite loop in macro expansion during completion.

  • #3674 use correct name for the library if it is renamed in Cargo.toml.

  • #3673 guard against runaway macro expansion in expressions.

  • #3681 only suggest machine-applicable suggestions from cargo check.

  • #3678 fix rename behavior in macros.

Internal Improvements

  • #3584 use dyn Trait when working with salsa database, which improves compile times in release mode.

  • #3606, #3608, #3610 improve audit on CI.

  • #3614 in the TypeScript extension, be more explicit about persistent state.

  • #3626 check trailing whitespace on CI.

  • #3629 simplify and streamline plugin auto-update.

  • #3635 simplify extension versioning scheme.

  • #3656 simplify arena API.

  • #3672 assists documentation generator skips hidden files.

  • #3632 log errors from cargo check.