Set CARGO_TARGET_DIR when using Flycheck custom command

This commit is contained in:
Victor Song 2023-09-30 21:23:16 -05:00
parent ef0b3bbef1
commit 3682c3791b
2 changed files with 9 additions and 1 deletions

View file

@ -58,6 +58,7 @@ pub enum FlycheckConfig {
extra_env: FxHashMap<String, String>, extra_env: FxHashMap<String, String>,
invocation_strategy: InvocationStrategy, invocation_strategy: InvocationStrategy,
invocation_location: InvocationLocation, invocation_location: InvocationLocation,
target_dir: Option<PathBuf>,
}, },
} }
@ -354,10 +355,15 @@ impl FlycheckActor {
extra_env, extra_env,
invocation_strategy, invocation_strategy,
invocation_location, invocation_location,
target_dir,
} => { } => {
let mut cmd = Command::new(command); let mut cmd = Command::new(command);
cmd.envs(extra_env); cmd.envs(extra_env);
if let Some(target_dir) = target_dir {
cmd.env("CARGO_TARGET_DIR", target_dir);
}
match invocation_location { match invocation_location {
InvocationLocation::Workspace => { InvocationLocation::Workspace => {
match invocation_strategy { match invocation_strategy {

View file

@ -1289,6 +1289,7 @@ impl Config {
} }
pub fn flycheck(&self) -> FlycheckConfig { pub fn flycheck(&self) -> FlycheckConfig {
let target_dir = self.target_dir_from_config();
match &self.data.check_overrideCommand { match &self.data.check_overrideCommand {
Some(args) if !args.is_empty() => { Some(args) if !args.is_empty() => {
let mut args = args.clone(); let mut args = args.clone();
@ -1309,6 +1310,7 @@ impl Config {
} }
InvocationLocation::Workspace => flycheck::InvocationLocation::Workspace, InvocationLocation::Workspace => flycheck::InvocationLocation::Workspace,
}, },
target_dir,
} }
} }
Some(_) | None => FlycheckConfig::CargoCommand { Some(_) | None => FlycheckConfig::CargoCommand {
@ -1343,7 +1345,7 @@ impl Config {
extra_args: self.check_extra_args(), extra_args: self.check_extra_args(),
extra_env: self.check_extra_env(), extra_env: self.check_extra_env(),
ansi_color_output: self.color_diagnostic_output(), ansi_color_output: self.color_diagnostic_output(),
target_dir: self.target_dir_from_config(), target_dir,
}, },
} }
} }