Skip to content

Releases: rust-lang/rust-analyzer

2023-11-27

27 Nov 06:18
Compare
Choose a tag to compare

Changelog #209

Commit: 237712f
Release: 2023-11-27 (v0.3.1748)

New Features

  • #15956, #15962 (first contribution) improve completion label details display:

    Screenshot showing the completion label details like the originating trait for a method displayed in gray by VS Code

  • #15846 (first contribution) add VS Code option to suppress internal error notifications.

Fixes

  • #15940 ensure renames happen after edits.
  • #15911 handle default constant values in trait_impl_missing_assoc_item diagnostic.
  • #15825 better resolve associated item with type bound.
  • #15754 de-dup duplicate crates with differing origins in CrateGraph construction.

Internal Improvements

  • #15894 (first contribution) make LSP initialization cancellable.
  • #15944 (first contribution) update Arch Linux package URL.
  • #15921 use PathSegment::qualifying_trait.
  • #15960 replace option.map(cond) == Some(true) with option.is_some_and(cond).
  • #15967 switch to our own salsa fork.

See also the changelog post.

2023-11-20

20 Nov 06:53
Compare
Choose a tag to compare

Changelog #208

Commit: 255eed4
Release: 2023-11-20 (v0.3.1740)

New Features

  • #15891 diagnose some orphan trait impl cases:

    Screenshot showing an error on impl Copy for String

  • #15895 diagnose missing associated items in trait impls:

    Screenshot showing an error on a trait implementation with a missing associated const value

  • #15893 diagnose incorrect unsafety for trait impls:

    Screenshot showing an error on a safe trait implementation of an unsafe trait, and on an unsafe implementation of a safe trait

Fixes

  • #15901 diagnose everything in nested items.
  • #15903 make line! and column! expand to literals.

Internal Improvements

  • #15875 fix PathSegment grammar.
  • #15899, #15917 sync from downstream.
  • #15874 migrate assists to the structured snippet API, part 4.
  • #15925 remove debugging code in path resolution.
  • #15902, #15913 bump some deps.
  • #15830 VS Code: expose workspaces to other extensions, remove addProject command.
  • #15900 disable VSIX builds for win32-ia32, which VS Code no longer supports.
  • #15904 bump minimum supported VS Code to 1.78.

See also the changelog post.

2023-11-13

13 Nov 06:53
Compare
Choose a tag to compare

Changelog #207

Commit: 416e9c8
Release: 2023-11-13 (v0.3.1730)

New Features

  • #15847 preview struct fields on hover:

    Screen recording showing that hover tooltips on structs now include a list the fields

  • #15871 add config for preferring / ignoring prelude modules when inserting imports.

Fixes

  • #15860 truncate closure capture place for raw pointer.
  • #15864 be more lax when finding Self references.
  • #15854 ignore #[doc(hidden)] when implementing missing members.
  • #15866 improve check when overriding expansion limit for include!.

Internal Improvements

  • #15881 (first contribution) fix JSON syntax in VS Code settings samples.
  • #15849 update rustc dependencies.
  • #15880 include TOML files in the vfs.

See also the changelog post.

2023-11-06

06 Nov 06:25
Compare
Choose a tag to compare

Changelog #206

Commit: c1c9e10
Release: 2023-11-06 (v0.3.1722)

New Features

  • #15819 (first contribution) skip token tree limit for include! macro calls.

  • #15832 add generate_mut_trait_impl assist:

    Screen recording showing the assist adding an IndexMut impl from an existing Index one

Fixes

  • #15827 (first contribution) add formatters category to VSCode metadata.

  • #15788 allow importing traits as _:

    Screen recording showing both import Foo and import Foo as _ being available in the quick fix menu

  • #15834 fix docs path for derive macros.

See also the changelog post.

2023-10-30

30 Oct 05:38
Compare
Choose a tag to compare

Changelog #205

Commit: f493207
Release: 2023-10-30 (v0.3.1713)

Fixes

  • #15809 make extract_variable assist easier to trigger:

    Screen recording showing the assist triggerring on a method call, if statement and array, without selecting them first.

  • #15780 import trait if needed for unqualify_method_call assist:

    Screen recording showing an import being added when the assist is used.

Internal Improvements

  • #15806 bump scip dependency.

See also the changelog post.

2023-10-23

23 Oct 05:48
Compare
Choose a tag to compare

Changelog #204

Commit: 1087295
Release: 2023-10-23 (v0.3.1705)

Fixes

  • #15746 add diagnostics for string and byte string literal errors.
  • #15775 pick a better name for variables introduced by replace_is_some_with_if_let_some.
  • #15736 add incorrect case diagnostics for module names.
  • #15789 store binding mode independently for each instance of a binding.
  • #15786 fix client detectin for VS Code Insiders.
  • #15779 add command for only opening external docs and attempt to fix vscode-remote issue.

Internal Improvements

  • #15727 generate descriptors for all unstable features.
  • #15764 expand Emacs documentation.
  • #15769, #15770 really fix the metrics deploy key.
  • #15783 free up some disk space for auto-publish.

See also the changelog post.

2023-10-16

16 Oct 05:58
Compare
Choose a tag to compare

Changelog #203

Commit: 6572ec8
Release: 2023-10-16 (v0.3.1697)

New Features

  • #15728 (first contribution) VS Code: support opening local documentation if available:

    local_docs.webm

  • #15743, #15752, #15755 (first contribution) add assist to convert is_some / is_ok and to if let:

    "Screen recording showing an assist that rewrites if a.is_some() to if let Some(_tmp) = a, and similarly for is_ok

  • #15681 (first contribution) add rust-analyzer.rust.analyzerTargetDir option to use rust-analyzer specific target directory.

  • #15696 add tuple return to tuple struct assist:

    tuple_return_type_to_tuple_struct.webm

Fixes

  • #15744 (first contribution) add diagnostics for char and byte literal errors:

    Screenshot showing errros on invalid char and byte literal

  • #15713 offer prefix match flyimport completions for one and two character paths:

    Screenshot showing IpAddr, Ipv4Addr and Ipv6Addr completions for Ip

Internal Improvements

  • #15745 (first contribution) add Zed to the manual IDE list.
  • #15725 fix automatic rustc / rustdoc lint generation.
  • #15618 port anymap to stdx.
  • #15760 make some mir::ProjectionStore methods public.
  • #15762 try to use deploy key in the metrics workflow.
  • #15691 update rustc_abi dependency.

See also the changelog post.

2023-10-09

09 Oct 06:09
Compare
Choose a tag to compare

Changelog #202

Commit: b1f89a8
Release: 2023-10-09 (v0.3.1689)

New Features

  • #15668 (first contribution) add backtick to surrounding and auto-closing pairs.

  • #15700 add assist for applying De Morgan's law to Iterator::all and Iterator::any:

    IteratorDeMorgans.webm

  • #15707 allow configuring the status bar click action in VS Code.

Fixes

  • #15690 (first contribution) fix line and column regex in the VS Code problem matcher.
  • #15701 strip base prefix in layout_scalar_valid_range.
  • #15698 allow more kinds of if-let patterns in guarded return assist.
  • #15709 recognize #[export_name = "main"] function as binary entrypoint for runnables.
  • #15641 fix path syntax produced by the into_to_qualified_from assist.
  • #15600 ensure rustfmt runs when configured with ./.

Internal Improvements

  • #15721 shrink PatPtr by swapping its AstPtr and Either wrap order.

See also the changelog post.

2023-10-02

02 Oct 06:14
Compare
Choose a tag to compare

Changelog #201

Commit: 0840038
Release: 2023-10-02 (v0.3.1681)

New Features

Fixes

  • #15662 fix panic in wrapping and unwrapping Result return type assists.
  • #15667 make bool_to_enum assist create enum at top-level.
  • #15682 recover better on missing parameter in parameter list.
  • #15688 make rustc_layout_scalar_valid_range attributes work for non-decimal literals.
  • #15692 don't trigger completion when typing underscore in types or patterns.

Internal Improvements

  • #15680 (first contribution) re-generate lints.rs.
  • #15633 allow customizing SCIP config.
  • #15677 allocate AST ids for parameters.
  • #15686 only run tests on Linux for pull requests.

See also the changelog post.

2023-09-25

25 Sep 05:42
Compare
Choose a tag to compare

Changelog #200

Commit: 862a300
Release: 2023-09-25 (v0.3.1673)

New Features

  • #15582 (first contribution) add option to show full signatures in completion docs.
  • #15484 add "bool to enum" assist, to replace variables, fields, constants and statics with a new enum.

Fixes

  • #15621 (first contribution) give unmerge_use a label explaining what it will affect.
  • #15651 wrap inlined closures in parentheses.
  • #15635 compute inlayHint.textEdit eagerly for VS Code.
  • #15587 fix autoimport on traits already imported as _.

Internal Improvements

  • #15615 (first contribution) fix some Clippy lints.
  • #15620 (first contribution) change exclude_labels to exclude_titles in triagebot config.
  • #15632 use load_workspace_at for rust-analyzer scip.
  • #15492 extend check.overrideCommand and buildScripts.overrideCommand docs.
  • #15616 use in-tree rustc dependencies with a cfg flag.
  • #15637 update chalk.
  • #15432, #15594 de-unwrap inline_call, add_missing_match_arms, convert_comment_block and desugar_doc_comment.

See also the changelog post.