Skip to content

Conversation

@renovate
Copy link
Contributor

@renovate renovate bot commented Dec 8, 2025

This PR contains the following updates:

Package Update Change
rust-lang/rust-analyzer patch 2026-01-052026-01-12

Release Notes

rust-lang/rust-analyzer (rust-lang/rust-analyzer)

v2026-01-12

Compare Source

Commit: dd48777
Release: 2026-01-12 (v0.3.2753)

New Features

  • #21415, #21446 allow Rust paths in symbol search.
  • #18043 support configuring flycheck using workspace.discoverConfig.

Performance Improvements

  • #21407 reuse scratch allocations for try_evaluate_obligations.

Fixes

  • #21414 (first contribution) include traits defined in other crates in flyimport.
  • #21436 (first contribution) handle #[ignore = "reason"] on tests.
  • #21405 (first contribution) support Span::line and Span::column in proc macro expansion.
  • #21416 support Span::byte_range in proc macro expansion.
  • #21421 fix recursive built-in derive expansion.
  • #21399 properly lower SelfOnly predicates.
  • #21434 remove code made redundant by method resolution rewrite.
  • #21432 fix missing lifetimes diagnostics with function pointers.
  • #21420 ignore escapes when string highlighting is disabled.

Internal Improvements

  • #21438, #21439 add integration test infrastructure to proc macro server.
  • #21433 include private definitions in generated docs.

See also the changelog post.


Configuration

📅 Schedule: Branch creation - At any time (no schedule defined), Automerge - At any time (no schedule defined).

🚦 Automerge: Disabled by config. Please merge this manually once you are satisfied.

Rebasing: Whenever PR becomes conflicted, or you tick the rebase/retry checkbox.

🔕 Ignore: Close this PR and you won't be reminded about this update again.


  • If you want to rebase/retry this PR, check this box

This PR was generated by Mend Renovate. View the repository job log.

@github-actions
Copy link
Contributor

github-actions bot commented Dec 8, 2025

Following are the settings schema changes between tags 2026-01-05 and 2026-01-12. Make sure that those are reflected in the package settings and the sublime-package.json file.

Changed keys
{
  "rust-analyzer.check.overrideCommand": {
    "markdownDescription": "Override the command rust-analyzer uses instead of `cargo check` for\ndiagnostics on save. The command is required to output json and\nshould therefore include `--message-format=json` or a similar option\n(if your client supports the `colorDiagnosticOutput` experimental\ncapability, you can use `--message-format=json-diagnostic-rendered-ansi`).\n\nIf you're changing this because you're using some tool wrapping\nCargo, you might also want to change\n`#rust-analyzer.cargo.buildScripts.overrideCommand#`.\n\nIf there are multiple linked projects/workspaces, this command is invoked for\neach of them, with the working directory being the workspace root\n(i.e., the folder containing the `Cargo.toml`). This can be overwritten\nby changing `#rust-analyzer.check.invocationStrategy#`.\n\nIt supports two interpolation syntaxes, both mainly intended to be used with\n[non-Cargo build systems](./non_cargo_based_projects.md):\n\n- If `{saved_file}` is part of the command, rust-analyzer will pass\n    the absolute path of the saved file to the provided command.\n    (A previous version, `$saved_file`, also works.)\n- If `{label}` is part of the command, rust-analyzer will pass the\n    Cargo package ID, which can be used with `cargo check -p`, or a build label from\n    `rust-project.json`. If `{label}` is included, rust-analyzer behaves much like\n    [`\"rust-analyzer.check.workspace\": false`](#check.workspace).\n\n\n\nAn example command would be:\n\n```bash\ncargo check --workspace --message-format=json --all-targets\n```\n\nNote: The option must be specified as an array of command line arguments, with\nthe first argument being the name of the command to run.",
    "default": null,
    "type": [
      "null",
      "array"
    ],
    "items": {
      "type": "string"
    }
  },
  "rust-analyzer.workspace.discoverConfig": {
    "markdownDescription": "Enables automatic discovery of projects using [`DiscoverWorkspaceConfig::command`].\n\n[`DiscoverWorkspaceConfig`] also requires setting `progressLabel` and `filesToWatch`.\n`progressLabel` is used for the title in progress indicators, whereas `filesToWatch`\nis used to determine which build system-specific files should be watched in order to\nreload rust-analyzer.\n\nBelow is an example of a valid configuration:\n```json\n\"rust-analyzer.workspace.discoverConfig\": {\n        \"command\": [\n                \"rust-project\",\n                \"develop-json\",\n                \"{arg}\"\n        ],\n        \"progressLabel\": \"buck2/rust-project\",\n        \"filesToWatch\": [\n                \"BUCK\"\n        ]\n}\n```\n\n## Workspace Discovery Protocol\n\n**Warning**: This format is provisional and subject to change.\n\n[`DiscoverWorkspaceConfig::command`] *must* return a JSON object corresponding to\n`DiscoverProjectData::Finished`:\n\n```norun\n#[derive(Debug, Clone, Deserialize, Serialize)]\n#[serde(tag = \"kind\")]\n#[serde(rename_all = \"snake_case\")]\nenum DiscoverProjectData {\n        Finished { buildfile: Utf8PathBuf, project: ProjectJsonData },\n        Error { error: String, source: Option<String> },\n        Progress { message: String },\n}\n```\n\nAs JSON, `DiscoverProjectData::Finished` is:\n\n```json\n{\n        // the internally-tagged representation of the enum.\n        \"kind\": \"finished\",\n        // the file used by a non-Cargo build system to define\n        // a package or target.\n        \"buildfile\": \"rust-analyzer/BUILD\",\n        // the contents of a rust-project.json, elided for brevity\n        \"project\": {\n                \"sysroot\": \"foo\",\n                \"crates\": []\n        }\n}\n```\n\nIt is encouraged, but not required, to use the other variants on `DiscoverProjectData`\nto provide a more polished end-user experience.\n\n`DiscoverWorkspaceConfig::command` may *optionally* include an `{arg}`, which will be\nsubstituted with the JSON-serialized form of the following enum:\n\n```norun\n#[derive(PartialEq, Clone, Debug, Serialize)]\n#[serde(rename_all = \"camelCase\")]\npub enum DiscoverArgument {\n     Path(AbsPathBuf),\n     Buildfile(AbsPathBuf),\n}\n```\n\nThe JSON representation of `DiscoverArgument::Path` is:\n\n```json\n{\n        \"path\": \"src/main.rs\"\n}\n```\n\nSimilarly, the JSON representation of `DiscoverArgument::Buildfile` is:\n\n```json\n{\n        \"buildfile\": \"BUILD\"\n}\n```\n\n`DiscoverArgument::Path` is used to find and generate a `rust-project.json`, and\ntherefore, a workspace, whereas `DiscoverArgument::buildfile` is used to to update an\nexisting workspace. As a reference for implementors, buck2's `rust-project` will likely\nbe useful: <https://github.com/facebook/buck2/tree/main/integrations/rust-project>.",
    "default": null,
    "anyOf": [
      {
        "type": "null"
      },
      {
        "type": "object",
        "properties": {
          "command": {
            "type": "array",
            "items": {
              "type": "string"
            }
          },
          "progressLabel": {
            "type": "string"
          },
          "filesToWatch": {
            "type": "array",
            "items": {
              "type": "string"
            }
          }
        }
      }
    ]
  }
}
Changed sublime settings
// Override the command rust-analyzer uses instead of `cargo check` for
// diagnostics on save. The command is required to output json and
// should therefore include `--message-format=json` or a similar option
// (if your client supports the `colorDiagnosticOutput` experimental
// capability, you can use `--message-format=json-diagnostic-rendered-ansi`).
//
// If you're changing this because you're using some tool wrapping
// Cargo, you might also want to change
// `#rust-analyzer.cargo.buildScripts.overrideCommand#`.
//
// If there are multiple linked projects/workspaces, this command is invoked for
// each of them, with the working directory being the workspace root
// (i.e., the folder containing the `Cargo.toml`). This can be overwritten
// by changing `#rust-analyzer.check.invocationStrategy#`.
//
// It supports two interpolation syntaxes, both mainly intended to be used with
// [non-Cargo build systems](./non_cargo_based_projects.md):
//
// - If `{saved_file}` is part of the command, rust-analyzer will pass
//     the absolute path of the saved file to the provided command.
//     (A previous version, `$saved_file`, also works.)
// - If `{label}` is part of the command, rust-analyzer will pass the
//     Cargo package ID, which can be used with `cargo check -p`, or a build label from
//     `rust-project.json`. If `{label}` is included, rust-analyzer behaves much like
//     [`"rust-analyzer.check.workspace": false`](#check.workspace).
//
//
//
// An example command would be:
//
// ```bash
// cargo check --workspace --message-format=json --all-targets
// ```
//
// Note: The option must be specified as an array of command line arguments, with
// the first argument being the name of the command to run.
"rust-analyzer.check.overrideCommand": null,

// Enables automatic discovery of projects using [`DiscoverWorkspaceConfig::command`].
//
// [`DiscoverWorkspaceConfig`] also requires setting `progressLabel` and `filesToWatch`.
// `progressLabel` is used for the title in progress indicators, whereas `filesToWatch`
// is used to determine which build system-specific files should be watched in order to
// reload rust-analyzer.
//
// Below is an example of a valid configuration:
// ```json
// "rust-analyzer.workspace.discoverConfig": {
//         "command": [
//                 "rust-project",
//                 "develop-json",
//                 "{arg}"
//         ],
//         "progressLabel": "buck2/rust-project",
//         "filesToWatch": [
//                 "BUCK"
//         ]
// }
// ```
//
// ## Workspace Discovery Protocol
//
// **Warning**: This format is provisional and subject to change.
//
// [`DiscoverWorkspaceConfig::command`] *must* return a JSON object corresponding to
// `DiscoverProjectData::Finished`:
//
// ```norun
// #[derive(Debug, Clone, Deserialize, Serialize)]
// #[serde(tag = "kind")]
// #[serde(rename_all = "snake_case")]
// enum DiscoverProjectData {
//         Finished { buildfile: Utf8PathBuf, project: ProjectJsonData },
//         Error { error: String, source: Option<String> },
//         Progress { message: String },
// }
// ```
//
// As JSON, `DiscoverProjectData::Finished` is:
//
// ```json
// {
//         // the internally-tagged representation of the enum.
//         "kind": "finished",
//         // the file used by a non-Cargo build system to define
//         // a package or target.
//         "buildfile": "rust-analyzer/BUILD",
//         // the contents of a rust-project.json, elided for brevity
//         "project": {
//                 "sysroot": "foo",
//                 "crates": []
//         }
// }
// ```
//
// It is encouraged, but not required, to use the other variants on `DiscoverProjectData`
// to provide a more polished end-user experience.
//
// `DiscoverWorkspaceConfig::command` may *optionally* include an `{arg}`, which will be
// substituted with the JSON-serialized form of the following enum:
//
// ```norun
// #[derive(PartialEq, Clone, Debug, Serialize)]
// #[serde(rename_all = "camelCase")]
// pub enum DiscoverArgument {
//      Path(AbsPathBuf),
//      Buildfile(AbsPathBuf),
// }
// ```
//
// The JSON representation of `DiscoverArgument::Path` is:
//
// ```json
// {
//         "path": "src/main.rs"
// }
// ```
//
// Similarly, the JSON representation of `DiscoverArgument::Buildfile` is:
//
// ```json
// {
//         "buildfile": "BUILD"
// }
// ```
//
// `DiscoverArgument::Path` is used to find and generate a `rust-project.json`, and
// therefore, a workspace, whereas `DiscoverArgument::buildfile` is used to to update an
// existing workspace. As a reference for implementors, buck2's `rust-project` will likely
// be useful: <https://github.com/facebook/buck2/tree/main/integrations/rust-project>.
"rust-analyzer.workspace.discoverConfig": null,
All changes in `/editors/code/package.json`
--- 2026-01-05
+++ 2026-01-12
@@ -1213,7 +1213,7 @@
                 "title": "Check",
                 "properties": {
                     "rust-analyzer.check.overrideCommand": {
-                        "markdownDescription": "Override the command rust-analyzer uses instead of `cargo check` for\ndiagnostics on save. The command is required to output json and\nshould therefore include `--message-format=json` or a similar option\n(if your client supports the `colorDiagnosticOutput` experimental\ncapability, you can use `--message-format=json-diagnostic-rendered-ansi`).\n\nIf you're changing this because you're using some tool wrapping\nCargo, you might also want to change\n`#rust-analyzer.cargo.buildScripts.overrideCommand#`.\n\nIf there are multiple linked projects/workspaces, this command is invoked for\neach of them, with the working directory being the workspace root\n(i.e., the folder containing the `Cargo.toml`). This can be overwritten\nby changing `#rust-analyzer.check.invocationStrategy#`.\n\nIf `$saved_file` is part of the command, rust-analyzer will pass\nthe absolute path of the saved file to the provided command. This is\nintended to be used with non-Cargo build systems.\nNote that `$saved_file` is experimental and may be removed in the future.\n\nAn example command would be:\n\n```bash\ncargo check --workspace --message-format=json --all-targets\n```\n\nNote: The option must be specified as an array of command line arguments, with\nthe first argument being the name of the command to run.",
+                        "markdownDescription": "Override the command rust-analyzer uses instead of `cargo check` for\ndiagnostics on save. The command is required to output json and\nshould therefore include `--message-format=json` or a similar option\n(if your client supports the `colorDiagnosticOutput` experimental\ncapability, you can use `--message-format=json-diagnostic-rendered-ansi`).\n\nIf you're changing this because you're using some tool wrapping\nCargo, you might also want to change\n`#rust-analyzer.cargo.buildScripts.overrideCommand#`.\n\nIf there are multiple linked projects/workspaces, this command is invoked for\neach of them, with the working directory being the workspace root\n(i.e., the folder containing the `Cargo.toml`). This can be overwritten\nby changing `#rust-analyzer.check.invocationStrategy#`.\n\nIt supports two interpolation syntaxes, both mainly intended to be used with\n[non-Cargo build systems](./non_cargo_based_projects.md):\n\n- If `{saved_file}` is part of the command, rust-analyzer will pass\n    the absolute path of the saved file to the provided command.\n    (A previous version, `$saved_file`, also works.)\n- If `{label}` is part of the command, rust-analyzer will pass the\n    Cargo package ID, which can be used with `cargo check -p`, or a build label from\n    `rust-project.json`. If `{label}` is included, rust-analyzer behaves much like\n    [`\"rust-analyzer.check.workspace\": false`](#check.workspace).\n\n\n\nAn example command would be:\n\n```bash\ncargo check --workspace --message-format=json --all-targets\n```\n\nNote: The option must be specified as an array of command line arguments, with\nthe first argument being the name of the command to run.",
                         "default": null,
                         "type": [
                             "null",
@@ -3135,7 +3135,7 @@
                 "title": "Workspace",
                 "properties": {
                     "rust-analyzer.workspace.discoverConfig": {
-                        "markdownDescription": "Enables automatic discovery of projects using [`DiscoverWorkspaceConfig::command`].\n\n[`DiscoverWorkspaceConfig`] also requires setting `progress_label` and `files_to_watch`.\n`progress_label` is used for the title in progress indicators, whereas `files_to_watch`\nis used to determine which build system-specific files should be watched in order to\nreload rust-analyzer.\n\nBelow is an example of a valid configuration:\n```json\n\"rust-analyzer.workspace.discoverConfig\": {\n        \"command\": [\n                \"rust-project\",\n                \"develop-json\"\n        ],\n        \"progressLabel\": \"rust-analyzer\",\n        \"filesToWatch\": [\n                \"BUCK\"\n        ]\n}\n```\n\n## On `DiscoverWorkspaceConfig::command`\n\n**Warning**: This format is provisional and subject to change.\n\n[`DiscoverWorkspaceConfig::command`] *must* return a JSON object corresponding to\n`DiscoverProjectData::Finished`:\n\n```norun\n#[derive(Debug, Clone, Deserialize, Serialize)]\n#[serde(tag = \"kind\")]\n#[serde(rename_all = \"snake_case\")]\nenum DiscoverProjectData {\n        Finished { buildfile: Utf8PathBuf, project: ProjectJsonData },\n        Error { error: String, source: Option<String> },\n        Progress { message: String },\n}\n```\n\nAs JSON, `DiscoverProjectData::Finished` is:\n\n```json\n{\n        // the internally-tagged representation of the enum.\n        \"kind\": \"finished\",\n        // the file used by a non-Cargo build system to define\n        // a package or target.\n        \"buildfile\": \"rust-analyzer/BUILD\",\n        // the contents of a rust-project.json, elided for brevity\n        \"project\": {\n                \"sysroot\": \"foo\",\n                \"crates\": []\n        }\n}\n```\n\nIt is encouraged, but not required, to use the other variants on `DiscoverProjectData`\nto provide a more polished end-user experience.\n\n`DiscoverWorkspaceConfig::command` may *optionally* include an `{arg}`, which will be\nsubstituted with the JSON-serialized form of the following enum:\n\n```norun\n#[derive(PartialEq, Clone, Debug, Serialize)]\n#[serde(rename_all = \"camelCase\")]\npub enum DiscoverArgument {\n     Path(AbsPathBuf),\n     Buildfile(AbsPathBuf),\n}\n```\n\nThe JSON representation of `DiscoverArgument::Path` is:\n\n```json\n{\n        \"path\": \"src/main.rs\"\n}\n```\n\nSimilarly, the JSON representation of `DiscoverArgument::Buildfile` is:\n\n```json\n{\n        \"buildfile\": \"BUILD\"\n}\n```\n\n`DiscoverArgument::Path` is used to find and generate a `rust-project.json`, and\ntherefore, a workspace, whereas `DiscoverArgument::buildfile` is used to to update an\nexisting workspace. As a reference for implementors, buck2's `rust-project` will likely\nbe useful: <https://github.com/facebook/buck2/tree/main/integrations/rust-project>.",
+                        "markdownDescription": "Enables automatic discovery of projects using [`DiscoverWorkspaceConfig::command`].\n\n[`DiscoverWorkspaceConfig`] also requires setting `progressLabel` and `filesToWatch`.\n`progressLabel` is used for the title in progress indicators, whereas `filesToWatch`\nis used to determine which build system-specific files should be watched in order to\nreload rust-analyzer.\n\nBelow is an example of a valid configuration:\n```json\n\"rust-analyzer.workspace.discoverConfig\": {\n        \"command\": [\n                \"rust-project\",\n                \"develop-json\",\n                \"{arg}\"\n        ],\n        \"progressLabel\": \"buck2/rust-project\",\n        \"filesToWatch\": [\n                \"BUCK\"\n        ]\n}\n```\n\n## Workspace Discovery Protocol\n\n**Warning**: This format is provisional and subject to change.\n\n[`DiscoverWorkspaceConfig::command`] *must* return a JSON object corresponding to\n`DiscoverProjectData::Finished`:\n\n```norun\n#[derive(Debug, Clone, Deserialize, Serialize)]\n#[serde(tag = \"kind\")]\n#[serde(rename_all = \"snake_case\")]\nenum DiscoverProjectData {\n        Finished { buildfile: Utf8PathBuf, project: ProjectJsonData },\n        Error { error: String, source: Option<String> },\n        Progress { message: String },\n}\n```\n\nAs JSON, `DiscoverProjectData::Finished` is:\n\n```json\n{\n        // the internally-tagged representation of the enum.\n        \"kind\": \"finished\",\n        // the file used by a non-Cargo build system to define\n        // a package or target.\n        \"buildfile\": \"rust-analyzer/BUILD\",\n        // the contents of a rust-project.json, elided for brevity\n        \"project\": {\n                \"sysroot\": \"foo\",\n                \"crates\": []\n        }\n}\n```\n\nIt is encouraged, but not required, to use the other variants on `DiscoverProjectData`\nto provide a more polished end-user experience.\n\n`DiscoverWorkspaceConfig::command` may *optionally* include an `{arg}`, which will be\nsubstituted with the JSON-serialized form of the following enum:\n\n```norun\n#[derive(PartialEq, Clone, Debug, Serialize)]\n#[serde(rename_all = \"camelCase\")]\npub enum DiscoverArgument {\n     Path(AbsPathBuf),\n     Buildfile(AbsPathBuf),\n}\n```\n\nThe JSON representation of `DiscoverArgument::Path` is:\n\n```json\n{\n        \"path\": \"src/main.rs\"\n}\n```\n\nSimilarly, the JSON representation of `DiscoverArgument::Buildfile` is:\n\n```json\n{\n        \"buildfile\": \"BUILD\"\n}\n```\n\n`DiscoverArgument::Path` is used to find and generate a `rust-project.json`, and\ntherefore, a workspace, whereas `DiscoverArgument::buildfile` is used to to update an\nexisting workspace. As a reference for implementors, buck2's `rust-project` will likely\nbe useful: <https://github.com/facebook/buck2/tree/main/integrations/rust-project>.",
                         "default": null,
                         "anyOf": [
                             {

@renovate renovate bot force-pushed the renovate/rust-analyzer-monorepo branch from 4fa926e to 934ddfd Compare December 15, 2025 10:57
@renovate renovate bot changed the title chore(deps): update dependency rust-lang/rust-analyzer to v2025-12-08 chore(deps): update dependency rust-lang/rust-analyzer to v2025-12-15 Dec 15, 2025
@renovate renovate bot force-pushed the renovate/rust-analyzer-monorepo branch from 934ddfd to e097426 Compare December 22, 2025 09:43
@renovate renovate bot changed the title chore(deps): update dependency rust-lang/rust-analyzer to v2025-12-15 chore(deps): update dependency rust-lang/rust-analyzer to v2025-12-22 Dec 22, 2025
@renovate renovate bot force-pushed the renovate/rust-analyzer-monorepo branch 4 times, most recently from 88a9e80 to 0af3986 Compare December 28, 2025 22:16
@rchl rchl force-pushed the renovate/rust-analyzer-monorepo branch from 47dad77 to 0af3986 Compare December 28, 2025 22:19
@renovate renovate bot force-pushed the renovate/rust-analyzer-monorepo branch 2 times, most recently from 5005b03 to 3a623f3 Compare December 28, 2025 22:24
@renovate renovate bot changed the title chore(deps): update dependency rust-lang/rust-analyzer to v2025-12-22 chore(deps): update dependency rust-lang/rust-analyzer to v2025-12-29 Dec 29, 2025
@renovate renovate bot force-pushed the renovate/rust-analyzer-monorepo branch 3 times, most recently from 9abc273 to c24f8c6 Compare December 30, 2025 20:28
@renovate renovate bot changed the title chore(deps): update dependency rust-lang/rust-analyzer to v2025-12-29 chore(deps): update dependency rust-lang/rust-analyzer to v2025-12-29 - autoclosed Jan 9, 2026
@renovate renovate bot closed this Jan 9, 2026
@renovate renovate bot deleted the renovate/rust-analyzer-monorepo branch January 9, 2026 17:25
@renovate renovate bot changed the title chore(deps): update dependency rust-lang/rust-analyzer to v2025-12-29 - autoclosed chore(deps): update dependency rust-lang/rust-analyzer to v2026-01-12 Jan 12, 2026
@renovate renovate bot reopened this Jan 12, 2026
@renovate renovate bot force-pushed the renovate/rust-analyzer-monorepo branch 3 times, most recently from 581ce7f to cbb6666 Compare January 12, 2026 20:20
@renovate renovate bot force-pushed the renovate/rust-analyzer-monorepo branch from cbb6666 to ad8823b Compare January 12, 2026 20:23
@rchl rchl merged commit 0b5f42c into main Jan 12, 2026
1 check passed
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants