New settings
```diff
~/work/LSP-rust-analyzer/LSP-rust-analyzer ~/work/LSP-rust-analyzer/LSP-rust-analyzer
~/work/LSP-rust-analyzer/LSP-rust-analyzer ~/work/LSP-rust-analyzer/LSP-rust-analyzer ~/work/LSP-rust-analyzer/LSP-rust-analyzer
--- /dev/fd/63 2023-12-15 08:58:56.330184554 +0000
+++ /dev/fd/62 2023-12-15 08:58:56.330184554 +0000
@@ -7,7 +7,7 @@
"default": null,
"description": "Custom cargo runner extension ID."
},
- "rust-analyzer.runnableEnv": {
+ "rust-analyzer.runnables.extraEnv": {
"anyOf": [
{
"type": "null"
@@ -17,6 +17,15 @@
"items": {
"type": "object",
"properties": {
+ "platform": {
+ "type": [
+ "null",
+ "string",
+ "array"
+ ],
+ "default": null,
+ "markdownDescription": "Platform(s) filter like \"win32\" or [\"linux\", \"win32\"]. See [process.platform](https://nodejs.org/api/process.html#processplatform) values."
+ },
"mask": {
"type": "string",
"description": "Runnable name mask"
@@ -36,6 +45,29 @@
"default": null,
"markdownDescription": "Environment variables passed to the runnable launched using `Test` or `Debug` lens or `rust-analyzer.run` command."
},
+ "rust-analyzer.runnables.problemMatcher": {
+ "type": "array",
+ "items": {
+ "type": "string"
+ },
+ "default": [
+ "$rustc"
+ ],
+ "markdownDescription": "Problem matchers to use for `rust-analyzer.run` command, eg `[\"$rustc\", \"$rust-panic\"]`."
+ },
+ "rust-analyzer.statusBar.clickAction": {
+ "type": "string",
+ "enum": [
+ "stopServer",
+ "openLogs"
+ ],
+ "enumDescriptions": [
+ "Stop Server",
+ "Open Logs"
+ ],
+ "default": "openLogs",
+ "markdownDescription": "Action to run when clicking the extension status bar item."
+ },
"rust-analyzer.server.path": {
"type": [
"null",
@@ -132,26 +164,33 @@
"type": "boolean"
},
"rust-analyzer.diagnostics.useRustcErrorCode": {
- "markdownDescription": "Whether to use the rustc error code.",
+ "markdownDescription": "Whether to show diagnostics using the original rustc error code. If this is false, all rustc diagnostics will have the code 'rustc(Click for full compiler diagnostics)'",
"default": false,
"type": "boolean"
},
- "rust-analyzer.discoverProjectCommand": {
- "markdownDescription": "Sets the command that rust-analyzer uses to generate `rust-project.json` files. This command should only be used\n if a build system like Buck or Bazel is also in use. The command must accept files as arguments and return \n a rust-project.json over stdout.",
+ "rust-analyzer.discoverProjectRunner": {
+ "markdownDescription": "Sets the extension responsible for determining which extension the rust-analyzer extension uses to generate `rust-project.json` files. This should should only be used\n if a build system like Buck or Bazel is also in use.",
"default": null,
"type": [
"null",
- "array"
- ],
- "items": {
- "type": "string"
- }
+ "string"
+ ]
},
"rust-analyzer.showUnlinkedFileNotification": {
"markdownDescription": "Whether to show a notification for unlinked files asking the user to add the corresponding Cargo.toml to the linked projects setting.",
"default": true,
"type": "boolean"
},
+ "rust-analyzer.showRequestFailedErrorNotification": {
+ "markdownDescription": "Whether to show error notifications for failing requests.",
+ "default": true,
+ "type": "boolean"
+ },
+ "rust-analyzer.showDependenciesExplorer": {
+ "markdownDescription": "Whether to show the dependencies view.",
+ "default": true,
+ "type": "boolean"
+ },
"$generated-start": {},
"rust-analyzer.assist.emitMustUse": {
"markdownDescription": "Whether to insert #[must_use] when generating `as_` methods\nfor enum variants.",
@@ -220,7 +259,7 @@
]
},
"rust-analyzer.cargo.buildScripts.overrideCommand": {
- "markdownDescription": "Override the command rust-analyzer uses to run build scripts and\nbuild procedural macros. The command is required to output json\nand should therefore include `--message-format=json` or a similar\noption.\n\nBy default, a cargo invocation will be constructed for the configured\ntargets and features, with the following base command line:\n\n```bash\ncargo check --quiet --workspace --message-format=json --all-targets\n```\n.",
+ "markdownDescription": "Override the command rust-analyzer uses to run build scripts and\nbuild procedural macros. The command is required to output json\nand should therefore include `--message-format=json` or a similar\noption.\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.cargo.buildScripts.invocationStrategy#` and\n`#rust-analyzer.cargo.buildScripts.invocationLocation#`.\n\nBy default, a cargo invocation will be constructed for the configured\ntargets and features, with the following base command line:\n\n```bash\ncargo check --quiet --workspace --message-format=json --all-targets\n```\n.",
"default": null,
"type": [
"null",
@@ -235,6 +274,11 @@
"default": true,
"type": "boolean"
},
+ "rust-analyzer.cargo.cfgs": {
+ "markdownDescription": "List of cfg options to enable with the given values.",
+ "default": {},
+ "type": "object"
+ },
"rust-analyzer.cargo.extraArgs": {
"markdownDescription": "Extra arguments that are passed to every cargo invocation.",
"default": [],
@@ -299,7 +343,7 @@
]
},
"rust-analyzer.cargo.unsetTest": {
- "markdownDescription": "Unsets `#[cfg(test)]` for the specified crates.",
+ "markdownDescription": "Unsets the implicit `#[cfg(test)]` for the specified crates.",
"default": [
"core"
],
@@ -360,8 +404,17 @@
}
]
},
+ "rust-analyzer.check.ignore": {
+ "markdownDescription": "List of `cargo check` (or other command specified in `check.command`) diagnostics to ignore.\n\nFor example for `cargo check`: `dead_code`, `unused_imports`, `unused_variables`,...",
+ "default": [],
+ "type": "array",
+ "items": {
+ "type": "string"
+ },
+ "uniqueItems": true
+ },
"rust-analyzer.check.invocationLocation": {
- "markdownDescription": "Specifies the working directory for running checks.\n- \"workspace\": run checks for workspaces in the corresponding workspaces' root directories.\n This falls back to \"root\" if `#rust-analyzer.cargo.checkOnSave.invocationStrategy#` is set to `once`.\n- \"root\": run checks in the project's root directory.\nThis config only has an effect when `#rust-analyzer.cargo.buildScripts.overrideCommand#`\nis set.",
+ "markdownDescription": "Specifies the working directory for running checks.\n- \"workspace\": run checks for workspaces in the corresponding workspaces' root directories.\n This falls back to \"root\" if `#rust-analyzer.cargo.check.invocationStrategy#` is set to `once`.\n- \"root\": run checks in the project's root directory.\nThis config only has an effect when `#rust-analyzer.cargo.check.overrideCommand#`\nis set.",
"default": "workspace",
"type": "string",
"enum": [
@@ -374,7 +427,7 @@
]
},
"rust-analyzer.check.invocationStrategy": {
- "markdownDescription": "Specifies the invocation strategy to use when running the checkOnSave command.\nIf `per_workspace` is set, the command will be executed for each workspace.\nIf `once` is set, the command will be executed once.\nThis config only has an effect when `#rust-analyzer.cargo.buildScripts.overrideCommand#`\nis set.",
+ "markdownDescription": "Specifies the invocation strategy to use when running the check command.\nIf `per_workspace` is set, the command will be executed for each workspace.\nIf `once` is set, the command will be executed once.\nThis config only has an effect when `#rust-analyzer.cargo.check.overrideCommand#`\nis set.",
"default": "per_workspace",
"type": "string",
"enum": [
@@ -395,7 +448,7 @@
]
},
"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, this command is invoked for\neach of them, with the working directory being the project root\n(i.e., the folder containing the `Cargo.toml`).\n\nAn example command would be:\n\n```bash\ncargo check --workspace --message-format=json --all-targets\n```\n.",
+ "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.cargo.check.invocationStrategy#` and\n`#rust-analyzer.cargo.check.invocationLocation#`.\n\nAn example command would be:\n\n```bash\ncargo check --workspace --message-format=json --all-targets\n```\n.",
"default": null,
"type": [
"null",
@@ -448,6 +501,11 @@
"Do no snippet completions for callables."
]
},
+ "rust-analyzer.completion.fullFunctionSignatures.enable": {
+ "markdownDescription": "Whether to show full function/method signatures in completion docs.",
+ "default": false,
+ "type": "boolean"
+ },
"rust-analyzer.completion.limit": {
"markdownDescription": "Maximum number of completions to return. If `None`, the limit is infinite.",
"default": null,
@@ -643,11 +701,85 @@
"default": true,
"type": "boolean"
},
+ "rust-analyzer.hover.memoryLayout.alignment": {
+ "markdownDescription": "How to render the align information in a memory layout hover.",
+ "default": "hexadecimal",
+ "anyOf": [
+ {
+ "type": "null"
+ },
+ {
+ "type": "string",
+ "enum": [
+ "both",
+ "decimal",
+ "hexadecimal"
+ ],
+ "enumDescriptions": [
+ "Render as 12 (0xC)",
+ "Render as 12",
+ "Render as 0xC"
+ ]
+ }
+ ]
+ },
"rust-analyzer.hover.memoryLayout.enable": {
"markdownDescription": "Whether to show memory layout data on hover.",
"default": true,
"type": "boolean"
},
+ "rust-analyzer.hover.memoryLayout.niches": {
+ "markdownDescription": "How to render the niche information in a memory layout hover.",
+ "default": false,
+ "type": [
+ "null",
+ "boolean"
+ ]
+ },
+ "rust-analyzer.hover.memoryLayout.offset": {
+ "markdownDescription": "How to render the offset information in a memory layout hover.",
+ "default": "hexadecimal",
+ "anyOf": [
+ {
+ "type": "null"
+ },
+ {
+ "type": "string",
+ "enum": [
+ "both",
+ "decimal",
+ "hexadecimal"
+ ],
+ "enumDescriptions": [
+ "Render as 12 (0xC)",
+ "Render as 12",
+ "Render as 0xC"
+ ]
+ }
+ ]
+ },
+ "rust-analyzer.hover.memoryLayout.size": {
+ "markdownDescription": "How to render the size information in a memory layout hover.",
+ "default": "both",
+ "anyOf": [
+ {
+ "type": "null"
+ },
+ {
+ "type": "string",
+ "enum": [
+ "both",
+ "decimal",
+ "hexadecimal"
+ ],
+ "enumDescriptions": [
+ "Render as 12 (0xC)",
+ "Render as 12",
+ "Render as 0xC"
+ ]
+ }
+ ]
+ },
"rust-analyzer.imports.granularity.enforce": {
"markdownDescription": "Whether to enforce the import granularity setting for all files. If set to false rust-analyzer will try to keep import styles consistent per file.",
"default": false,
@@ -680,11 +812,16 @@
"default": true,
"type": "boolean"
},
- "rust-analyzer.imports.prefer.no.std": {
+ "rust-analyzer.imports.preferNoStd": {
"markdownDescription": "Prefer to unconditionally use imports of the core and alloc crate, over the std crate.",
"default": false,
"type": "boolean"
},
+ "rust-analyzer.imports.preferPrelude": {
+ "markdownDescription": "Whether to prefer import paths containing a `prelude` module.",
+ "default": false,
+ "type": "boolean"
+ },
"rust-analyzer.imports.prefix": {
"markdownDescription": "The path structure for newly inserted paths to use.",
"default": "plain",
@@ -810,6 +947,11 @@
"Show prefix or postfix depending on which uses less parenthesis, preferring postfix."
]
},
+ "rust-analyzer.inlayHints.implicitDrops.enable": {
+ "markdownDescription": "Whether to show implicit drop hints.",
+ "default": false,
+ "type": "boolean"
+ },
"rust-analyzer.inlayHints.lifetimeElisionHints.enable": {
"markdownDescription": "Whether to show inlay type hints for elided lifetimes in function signatures.",
"default": "never",
@@ -1045,6 +1187,21 @@
"type": "string"
}
},
+ "rust-analyzer.rust.analyzerTargetDir": {
+ "markdownDescription": "Optional path to a rust-analyzer specific target directory.\nThis prevents rust-analyzer's `cargo check` from locking the `Cargo.lock`\nat the expense of duplicating build artifacts.\n\nSet to `true` to use a subdirectory of the existing target directory or\nset to a path relative to the workspace to use that path.",
+ "default": null,
+ "anyOf": [
+ {
+ "type": "null"
+ },
+ {
+ "type": "boolean"
+ },
+ {
+ "type": "string"
+ }
+ ]
+ },
"rust-analyzer.rustc.source": {
"markdownDescription": "Path to the Cargo.toml of the rust compiler workspace, for usage in rustc_private\nprojects, or \"discover\" to try to automatically find it if the `rustc-dev` component\nis installed.\n\nAny project which uses rust-analyzer with the rustcPrivate\ncrates must set `[package.metadata.rust-analyzer] rustc_private=true` to use it.\n\nThis option does not take effect until rust-analyzer is restarted.",
"default": null,
No changes
```
Fixes #103