Propagate cargo.target to checkOnSave

This commit is contained in:
Aleksey Kladov 2020-07-21 10:30:54 +02:00
parent 3432afcbd2
commit a20b8d751b
2 changed files with 11 additions and 2 deletions

View file

@ -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");
} }

View file

@ -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,