Auto merge of #15492 - RalfJung:invocation, r=Veykril

extend check.overrideCommand and buildScripts.overrideCommand docs

Extend check.overrideCommand and buildScripts.overrideCommand docs regarding invocation strategy and location.

However something still seems a bit odd -- the docs for `invocationStrategy`/`invocationLocation` talk about "workspaces", but the setting that controls which workspaces are considered is called `linkedProjects`. Is a project the same as a workspace here or is there some subtle difference?
This commit is contained in:
bors 2023-09-22 16:09:01 +00:00
commit 2b580a1f3c
3 changed files with 24 additions and 8 deletions

View file

@ -91,6 +91,12 @@ config_data! {
/// and should therefore include `--message-format=json` or a similar /// and should therefore include `--message-format=json` or a similar
/// option. /// option.
/// ///
/// 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.cargo.buildScripts.invocationStrategy#` and
/// `#rust-analyzer.cargo.buildScripts.invocationLocation#`.
///
/// By default, a cargo invocation will be constructed for the configured /// By default, a cargo invocation will be constructed for the configured
/// targets and features, with the following base command line: /// targets and features, with the following base command line:
/// ///
@ -182,9 +188,11 @@ config_data! {
/// Cargo, you might also want to change /// Cargo, you might also want to change
/// `#rust-analyzer.cargo.buildScripts.overrideCommand#`. /// `#rust-analyzer.cargo.buildScripts.overrideCommand#`.
/// ///
/// If there are multiple linked projects, this command is invoked for /// If there are multiple linked projects/workspaces, this command is invoked for
/// each of them, with the working directory being the project root /// each of them, with the working directory being the workspace root
/// (i.e., the folder containing the `Cargo.toml`). /// (i.e., the folder containing the `Cargo.toml`). This can be overwritten
/// by changing `#rust-analyzer.cargo.check.invocationStrategy#` and
/// `#rust-analyzer.cargo.check.invocationLocation#`.
/// ///
/// An example command would be: /// An example command would be:
/// ///

View file

@ -57,6 +57,12 @@ build procedural macros. The command is required to output json
and should therefore include `--message-format=json` or a similar and should therefore include `--message-format=json` or a similar
option. option.
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.cargo.buildScripts.invocationStrategy#` and
`#rust-analyzer.cargo.buildScripts.invocationLocation#`.
By default, a cargo invocation will be constructed for the configured By default, a cargo invocation will be constructed for the configured
targets and features, with the following base command line: targets and features, with the following base command line:
@ -206,9 +212,11 @@ If you're changing this because you're using some tool wrapping
Cargo, you might also want to change Cargo, you might also want to change
`#rust-analyzer.cargo.buildScripts.overrideCommand#`. `#rust-analyzer.cargo.buildScripts.overrideCommand#`.
If there are multiple linked projects, this command is invoked for If there are multiple linked projects/workspaces, this command is invoked for
each of them, with the working directory being the project root each of them, with the working directory being the workspace root
(i.e., the folder containing the `Cargo.toml`). (i.e., the folder containing the `Cargo.toml`). This can be overwritten
by changing `#rust-analyzer.cargo.check.invocationStrategy#` and
`#rust-analyzer.cargo.check.invocationLocation#`.
An example command would be: An example command would be:

View file

@ -557,7 +557,7 @@
] ]
}, },
"rust-analyzer.cargo.buildScripts.overrideCommand": { "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, "default": null,
"type": [ "type": [
"null", "null",
@ -746,7 +746,7 @@
] ]
}, },
"rust-analyzer.check.overrideCommand": { "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, "default": null,
"type": [ "type": [
"null", "null",