mirror of
https://github.com/rust-lang/rust-analyzer.git
synced 2025-10-02 14:51:48 +00:00
Auto merge of #13128 - Veykril:invocation-strategy, r=Veykril
Implement invocation strategy config Fixes https://github.com/rust-lang/rust-analyzer/issues/10793 This allows to change how we run build scripts (and `checkOnSave`), exposing two configs: - `once`: run the specified command once in the project root (the working dir of the server) - `per_workspace`: run the specified command per workspace in the corresponding workspace This also applies to `checkOnSave` likewise, though `once_in_root` is useless there currently, due to https://github.com/rust-lang/cargo/issues/11007
This commit is contained in:
commit
a77ac93b2a
9 changed files with 471 additions and 207 deletions
|
@ -14,8 +14,8 @@ use rustc_hash::FxHashMap;
|
|||
use serde::Deserialize;
|
||||
use serde_json::from_value;
|
||||
|
||||
use crate::CfgOverrides;
|
||||
use crate::{utf8_stdout, ManifestPath};
|
||||
use crate::{CfgOverrides, InvocationStrategy};
|
||||
|
||||
/// [`CargoWorkspace`] represents the logical structure of, well, a Cargo
|
||||
/// workspace. It pretty closely mirrors `cargo metadata` output.
|
||||
|
@ -106,6 +106,7 @@ pub struct CargoConfig {
|
|||
pub run_build_script_command: Option<Vec<String>>,
|
||||
/// Extra env vars to set when invoking the cargo command
|
||||
pub extra_env: FxHashMap<String, String>,
|
||||
pub invocation_strategy: InvocationStrategy,
|
||||
}
|
||||
|
||||
impl CargoConfig {
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue