mirror of
https://github.com/rust-lang/rust-analyzer.git
synced 2025-09-27 04:19:13 +00:00
Add environment to runnable lsp extension
This commit is contained in:
parent
f2afcb874e
commit
fcddcf2ee5
7 changed files with 85 additions and 33 deletions
|
@ -847,7 +847,7 @@ pub(crate) fn handle_runnables(
|
|||
if expect_test {
|
||||
if let lsp_ext::RunnableArgs::Cargo(r) = &mut runnable.args {
|
||||
runnable.label = format!("{} + expect", runnable.label);
|
||||
r.expect_test = Some(true);
|
||||
r.environment.insert("UPDATE_EXPECT".to_owned(), "1".to_owned());
|
||||
}
|
||||
}
|
||||
res.push(runnable);
|
||||
|
@ -884,12 +884,12 @@ pub(crate) fn handle_runnables(
|
|||
kind: lsp_ext::RunnableKind::Cargo,
|
||||
args: lsp_ext::RunnableArgs::Cargo(lsp_ext::CargoRunnableArgs {
|
||||
workspace_root: Some(spec.workspace_root.clone().into()),
|
||||
cwd: Some(cwd.into()),
|
||||
cwd: cwd.into(),
|
||||
override_cargo: config.override_cargo.clone(),
|
||||
cargo_args,
|
||||
cargo_extra_args: config.cargo_extra_args.clone(),
|
||||
executable_args: Vec::new(),
|
||||
expect_test: None,
|
||||
environment: Default::default(),
|
||||
}),
|
||||
})
|
||||
}
|
||||
|
@ -903,12 +903,12 @@ pub(crate) fn handle_runnables(
|
|||
kind: lsp_ext::RunnableKind::Cargo,
|
||||
args: lsp_ext::RunnableArgs::Cargo(lsp_ext::CargoRunnableArgs {
|
||||
workspace_root: None,
|
||||
cwd: None,
|
||||
cwd: ".".into(),
|
||||
override_cargo: config.override_cargo,
|
||||
cargo_args: vec!["check".to_owned(), "--workspace".to_owned()],
|
||||
cargo_extra_args: config.cargo_extra_args,
|
||||
executable_args: Vec::new(),
|
||||
expect_test: None,
|
||||
environment: Default::default(),
|
||||
}),
|
||||
});
|
||||
}
|
||||
|
|
|
@ -460,28 +460,27 @@ pub enum RunnableKind {
|
|||
#[derive(Deserialize, Serialize, Debug)]
|
||||
#[serde(rename_all = "camelCase")]
|
||||
pub struct CargoRunnableArgs {
|
||||
// command to be executed instead of cargo
|
||||
pub environment: FxHashMap<String, String>,
|
||||
pub cwd: Utf8PathBuf,
|
||||
/// Command to be executed instead of cargo
|
||||
pub override_cargo: Option<String>,
|
||||
#[serde(skip_serializing_if = "Option::is_none")]
|
||||
pub workspace_root: Option<Utf8PathBuf>,
|
||||
#[serde(skip_serializing_if = "Option::is_none")]
|
||||
pub cwd: Option<Utf8PathBuf>,
|
||||
// command, --package and --lib stuff
|
||||
pub cargo_args: Vec<String>,
|
||||
// user-specified additional cargo args, like `--release`.
|
||||
pub cargo_extra_args: Vec<String>,
|
||||
// stuff after --
|
||||
pub executable_args: Vec<String>,
|
||||
#[serde(skip_serializing_if = "Option::is_none")]
|
||||
pub expect_test: Option<bool>,
|
||||
}
|
||||
|
||||
#[derive(Deserialize, Serialize, Debug)]
|
||||
#[serde(rename_all = "camelCase")]
|
||||
pub struct ShellRunnableArgs {
|
||||
pub environment: FxHashMap<String, String>,
|
||||
pub cwd: Utf8PathBuf,
|
||||
pub program: String,
|
||||
pub args: Vec<String>,
|
||||
pub cwd: Utf8PathBuf,
|
||||
}
|
||||
|
||||
pub enum RelatedTests {}
|
||||
|
|
|
@ -15,7 +15,7 @@ use ide::{
|
|||
};
|
||||
use ide_db::{rust_doc::format_docs, FxHasher};
|
||||
use itertools::Itertools;
|
||||
use paths::{Utf8Component, Utf8Prefix};
|
||||
use paths::{Utf8Component, Utf8PathBuf, Utf8Prefix};
|
||||
use semver::VersionReq;
|
||||
use serde_json::to_value;
|
||||
use vfs::AbsPath;
|
||||
|
@ -1390,10 +1390,10 @@ pub(crate) fn runnable(
|
|||
workspace_root: Some(workspace_root.into()),
|
||||
override_cargo: config.override_cargo,
|
||||
cargo_args,
|
||||
cwd: Some(cwd.into()),
|
||||
cwd: cwd.into(),
|
||||
cargo_extra_args: config.cargo_extra_args,
|
||||
executable_args,
|
||||
expect_test: None,
|
||||
environment: Default::default(),
|
||||
}),
|
||||
}))
|
||||
}
|
||||
|
@ -1407,6 +1407,7 @@ pub(crate) fn runnable(
|
|||
program: json_shell_runnable_args.program,
|
||||
args: json_shell_runnable_args.args,
|
||||
cwd: json_shell_runnable_args.cwd,
|
||||
environment: Default::default(),
|
||||
};
|
||||
Ok(Some(lsp_ext::Runnable {
|
||||
label,
|
||||
|
@ -1433,10 +1434,10 @@ pub(crate) fn runnable(
|
|||
workspace_root: None,
|
||||
override_cargo: config.override_cargo,
|
||||
cargo_args,
|
||||
cwd: None,
|
||||
cwd: Utf8PathBuf::from("."),
|
||||
cargo_extra_args: config.cargo_extra_args,
|
||||
executable_args,
|
||||
expect_test: None,
|
||||
environment: Default::default(),
|
||||
}),
|
||||
}))
|
||||
}
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue