Changelog #69

Commit: 858ad55
Release: 2021-03-22

Sponsors

Become a sponsor: On OpenCollective or GitHub Sponsors.

New Features

  • #8000 add HIR formatter infra and use it for hover text:

    111968849 49d7b180 8b02 11eb 8f0d 4b7bc38d5247
  • #8032 enable proc macros by default (use rust-analyzer.procMacro.enable to disable them).

  • #7966 add diagnostic for files missing from the module tree.

  • #7975 include regions in file structure:

    111967940 4bed4080 8b01 11eb 940a fc8f81d5673b
  • #8021 enable reference searching for built-in types:

    111132711 f69db600 8579 11eb 8c90 22fd6862d11f
  • #8020 power up "Go to implementation":

    111144403 52bb0700 8587 11eb 9205 7a2a5b8b75a3
  • #7992, #8036 improve completions and completion sorting:

    111018680 0e551e80 836f 11eb 94b1 c88336ecbc6e
    111189395 45941d00 8573 11eb 871b 09186b35cbb9
  • #8037, #8040 add "Generate is_empty method from len method" assist.

  • #7900 show function parameters in completion detail.

  • #8060 improve "Move bounds" assist.

  • #8071, #8086 highlight intra-doc links in doc comments:

    111969661 27926380 8b03 11eb 8e78 70dc95e137fd
  • #8124 add lifetime completion:

    111886437 c9b02f80 89cd 11eb 9bee 340f1536b0de
  • #8127 add label completion:

    111900839 07946e80 8a35 11eb 90f6 a47943e7501d
  • #8131 add smart case lookup into flyimport completion:

    111970038 8821a080 8b03 11eb 9bca b4e06aac565b
    111970065 8e178180 8b03 11eb 8a33 8aa245401e8a

Fixes

  • #8025 fix resolution of incomplete fields.

  • #8015 make runnable detection more resilient to out-of-tree modules.

  • #7970 fix incorrect diagnostics for failing built in macros.

  • #8044 fix macro expansion for statements without semicolon.

  • #8048 fix missing unresolved macro diagnostic in function body.

  • #8066 handle #[cfg] on call arguments.

  • #8068 handle #[cfg] on function parameters.

  • #8067 check whether cursor is on and not between intra-doc links in goto_definition.

  • #8073 improve diagnostic when including nonexistent file.

  • #8075 fix use crate as <name>; imports.

  • #8078 support #[cfg] on all associated items.

  • #8082 properly handle inner recursive macro_rules!.

  • #8088 fix "Go to definition" and highlighting for function-like proc macros.

  • #8089 update info about Eclipse Corrosion.

  • #8094 fix infinite recursion when computing diagnostics for inner items.

  • #8083 track source file IDs in source mapping of Attrs.

  • #8108 fix handling of #![cfg] in outline module files.

  • #8122 make bare underscore token an Ident rather than Punct in proc-macro.

  • #8123 do not display unqualified associated item completions.

  • #8128 expand legacy-scoped macro during collection.

  • #8133 fix salsa panic.

  • #8134 (first contribution) fix module resolution in `include!`ed files.

  • #8137 fix box pattern inference panic.

Internal Improvements

  • #7498 switch to a mutable syntax tree implementation.

  • #8023 move StructureNodeKind from ide_db to ide.

  • #8022 fix some clippy performance warnings.

  • #8026 simplify source maps for fields.

  • #8018, #8038 make Ty wrap TyKind in an Arc.

  • #8008 clean up CompletionContext::expected_type.

  • #8030 add diesel to the benchmark suite.

  • #8029 enable thread-local coverage mark support.

  • #8035 unqualfied_path completions aren’t responsible for variant pattern completions.

  • #8028 prepare for returning parents in the "Locate parent module" command.

  • #8039 use SmallVec for Substs.

  • #8046 add match vs. if let …​ else entry to the style guide.

  • #8034 implement Crate::transitive_reverse_dependencies.

  • #8042 (first contribution) add rustc-perf version to the metrics JSON.

  • #8061 structural editing API can automatically insert whitespace in simple cases.

  • #8059 support cfg_attr in doc-comment syntax highlighting.

  • #8065 handle block doc comments better.

  • #8069 support highlight injection in block doc comments.

  • #8080 change ItemTree API to accomodate creating an ItemTree per block expression.

  • #8087 make MacroDefId’s AstId mandatory when possible.

  • #8093 record custom derive helpers in DefMap.

  • #8097 parse extended_key_value_attributes.

  • #8112 revamp hir_def attribute API.

  • #8125 don’t use an untyped String for ActiveParam tracking.