mirror of
https://github.com/rust-lang/rust-analyzer
synced 2025-01-12 05:08:52 +00:00
Propagate cargo.target to checkOnSave
This commit is contained in:
parent
3432afcbd2
commit
a20b8d751b
2 changed files with 11 additions and 2 deletions
|
@ -22,6 +22,7 @@ pub use cargo_metadata::diagnostic::{
|
||||||
pub enum FlycheckConfig {
|
pub enum FlycheckConfig {
|
||||||
CargoCommand {
|
CargoCommand {
|
||||||
command: String,
|
command: String,
|
||||||
|
target_tripple: Option<String>,
|
||||||
all_targets: bool,
|
all_targets: bool,
|
||||||
all_features: bool,
|
all_features: bool,
|
||||||
features: Vec<String>,
|
features: Vec<String>,
|
||||||
|
@ -178,6 +179,7 @@ impl FlycheckActor {
|
||||||
let mut cmd = match &self.config {
|
let mut cmd = match &self.config {
|
||||||
FlycheckConfig::CargoCommand {
|
FlycheckConfig::CargoCommand {
|
||||||
command,
|
command,
|
||||||
|
target_tripple,
|
||||||
all_targets,
|
all_targets,
|
||||||
all_features,
|
all_features,
|
||||||
extra_args,
|
extra_args,
|
||||||
|
@ -187,6 +189,10 @@ impl FlycheckActor {
|
||||||
cmd.arg(command);
|
cmd.arg(command);
|
||||||
cmd.args(&["--workspace", "--message-format=json", "--manifest-path"])
|
cmd.args(&["--workspace", "--message-format=json", "--manifest-path"])
|
||||||
.arg(self.workspace_root.join("Cargo.toml"));
|
.arg(self.workspace_root.join("Cargo.toml"));
|
||||||
|
|
||||||
|
if let Some(target) = target_tripple {
|
||||||
|
cmd.args(&["--target", target.as_str()]);
|
||||||
|
}
|
||||||
if *all_targets {
|
if *all_targets {
|
||||||
cmd.arg("--all-targets");
|
cmd.arg("--all-targets");
|
||||||
}
|
}
|
||||||
|
|
|
@ -148,6 +148,7 @@ impl Config {
|
||||||
rustfmt: RustfmtConfig::Rustfmt { extra_args: Vec::new() },
|
rustfmt: RustfmtConfig::Rustfmt { extra_args: Vec::new() },
|
||||||
flycheck: Some(FlycheckConfig::CargoCommand {
|
flycheck: Some(FlycheckConfig::CargoCommand {
|
||||||
command: "check".to_string(),
|
command: "check".to_string(),
|
||||||
|
target_tripple: None,
|
||||||
all_targets: true,
|
all_targets: true,
|
||||||
all_features: false,
|
all_features: false,
|
||||||
extra_args: Vec::new(),
|
extra_args: Vec::new(),
|
||||||
|
@ -198,7 +199,7 @@ impl Config {
|
||||||
all_features: data.cargo_allFeatures,
|
all_features: data.cargo_allFeatures,
|
||||||
features: data.cargo_features.clone(),
|
features: data.cargo_features.clone(),
|
||||||
load_out_dirs_from_check: data.cargo_loadOutDirsFromCheck,
|
load_out_dirs_from_check: data.cargo_loadOutDirsFromCheck,
|
||||||
target: data.cargo_target,
|
target: data.cargo_target.clone(),
|
||||||
};
|
};
|
||||||
|
|
||||||
self.proc_macro_srv = if data.procMacro_enable {
|
self.proc_macro_srv = if data.procMacro_enable {
|
||||||
|
@ -223,6 +224,7 @@ impl Config {
|
||||||
}
|
}
|
||||||
Some(_) | None => FlycheckConfig::CargoCommand {
|
Some(_) | None => FlycheckConfig::CargoCommand {
|
||||||
command: data.checkOnSave_command,
|
command: data.checkOnSave_command,
|
||||||
|
target_tripple: data.checkOnSave_target.or(data.cargo_target),
|
||||||
all_targets: data.checkOnSave_allTargets,
|
all_targets: data.checkOnSave_allTargets,
|
||||||
all_features: data.checkOnSave_allFeatures.unwrap_or(data.cargo_allFeatures),
|
all_features: data.checkOnSave_allFeatures.unwrap_or(data.cargo_allFeatures),
|
||||||
features: data.checkOnSave_features.unwrap_or(data.cargo_features),
|
features: data.checkOnSave_features.unwrap_or(data.cargo_features),
|
||||||
|
@ -384,10 +386,11 @@ config_data! {
|
||||||
cargo_noDefaultFeatures: bool = false,
|
cargo_noDefaultFeatures: bool = false,
|
||||||
cargo_target: Option<String> = None,
|
cargo_target: Option<String> = None,
|
||||||
|
|
||||||
|
checkOnSave_enable: bool = false,
|
||||||
checkOnSave_allFeatures: Option<bool> = None,
|
checkOnSave_allFeatures: Option<bool> = None,
|
||||||
checkOnSave_allTargets: bool = true,
|
checkOnSave_allTargets: bool = true,
|
||||||
checkOnSave_command: String = "check".into(),
|
checkOnSave_command: String = "check".into(),
|
||||||
checkOnSave_enable: bool = false,
|
checkOnSave_target: Option<String> = None,
|
||||||
checkOnSave_extraArgs: Vec<String> = Vec::new(),
|
checkOnSave_extraArgs: Vec<String> = Vec::new(),
|
||||||
checkOnSave_features: Option<Vec<String>> = None,
|
checkOnSave_features: Option<Vec<String>> = None,
|
||||||
checkOnSave_overrideCommand: Option<Vec<String>> = None,
|
checkOnSave_overrideCommand: Option<Vec<String>> = None,
|
||||||
|
|
Loading…
Reference in a new issue