Changelog #79

Commit: f438398
Release: 2021-05-31

Sponsors

Become a sponsor: On OpenCollective or GitHub Sponsors.

New Features

  • #8955 add support for stand-alone Rust files:

    119277037 0b579380 bc26 11eb 8d77 20d46ab4916a
  • #8988, #8990 support "Go to implementations" on trait functions and associated constants:

    119501981 45a45c00 bd1e 11eb 8336 9145f2888643
  • #8942, #8996 add library semantic token modifier to items from other crates.

  • #8767, #9028 implement range formatting (requires nightly rustfmt).

  • #9012 add tab stops for keyword completions.

  • #9027 make attribute completion is context aware.

Fixes

  • #8995 create tasks for all workspaces (VS Code only):

    119575273 74264380 bdbf 11eb 8283 a78bbcb7346e
  • #9038 add folding range for return types:

    119979082 5c62e100 bfb2 11eb 9729 1dea1ce74de1
  • #8968 (first contribution) fix binary installation instructions.

  • #8967 (first contribution) fix cursor position after move item command.

  • #8994 (first contribution) check for subdirectories in VFS loader exclusions.

  • #9051 (first contribution) fix swapped config descriptions.

  • #8959 fix downloading the server binary on Windows again.

  • #9046 make include! and other eager macros work in expression position.

  • #8970 duplicate dependencies that have multiple DepKinds.

  • #8975 use todo!() as placeholder body for generated match arms.

  • #8983 fix type mismatch caused by macros.

  • #8986 add "Go to type definition" for struct fields within struct.

  • #8989 try to fix type inference for the new Try trait.

  • #8987 fix lowering of FnOnce() without return type.

  • #8991 consider trait to be in scope for trait impls.

  • #8993 don’t show pd/ppd completions where they shouldn’t be.

  • #9008 remove undesired completions from trait/impl blocks.

  • #9026 complete modules in associated item lists.

  • #9033 complete keywords in (Assoc)ItemList with leading attribute.

  • #9059 only complete derive proc macros in #[derive].

  • #9064 fix incorrect prefer_inner calls on some attribute completions.

  • #9020 don’t complete non-macro item paths in impls and modules.

  • #9032 only complete modules in empty use-statements.

  • #9002, #9037 move annotations below item attributes.

  • #9054 fix matches! macro on nightly toolchains.

  • #9050 hir_ty: use async ret type for inference inside async bodies.

  • #9065 hir_ty: don’t pass where clauses of associated types down to chalk.

Internal Improvements

  • #8973 move diagnostics to hir.

  • #8965 intern TypeBound and GenericArgs.

  • #8978 intern AttrInput.

  • #9017 reduce the number of traits passed through chalk during applicable trait lookup.

  • #8976 rename hypothetical to speculative.

  • #8977 minor TokenMap cleanups.

  • #9005, #9003 document semantic token types and modifiers.

  • #9007 fix some clippy::redundant_clone warnings.

  • #9014, #9018, #9019 simplify CompletionContext.

  • #9068 move more CompletionContext fields to ImmediateLocation

  • #9015 merge pattern completion related bools into an enum.

  • #9016 set record_pat_syntax more precisely in CompletionContext.

  • #9041 implement previous sibling determination for CompletionContext.

  • #9021 explain the motivation behind early configuration.

  • #8997 stop expanding UseTrees during ItemTree lowering.

  • #9024 don’t store supertraits in ItemTree.

  • #9036 remove undocumented TextDocumentSyncKind::Full support.

  • #9048 add some lint completion tests.

  • #9057 thread proc macro types through the HIR.