Remove simplistic interpolation for manifest-path
This commit is contained in:
@@ -70,13 +70,9 @@ config_data! {
|
||||
/// Run build scripts (`build.rs`) for more precise code analysis.
|
||||
cargo_buildScripts_enable: bool = "true",
|
||||
/// Specifies the invocation strategy to use when running the build scripts command.
|
||||
/// If `per_workspace` is set, the command will be executed for each workspace and all
|
||||
/// occurrences of `$manifest_path` in the command will be replaced by the corresponding
|
||||
/// manifest path of the workspace that the command is being invoked for. If interpolation
|
||||
/// for the manifest path happens at least once, the commands will be executed from the
|
||||
/// project root, otherwise the commands will be executed from the corresponding workspace
|
||||
/// root.
|
||||
/// If `once_in_root` is set, the command will be executed once in the project root.
|
||||
/// If `per_workspace` is set, the command will be executed for each workspace from the
|
||||
/// corresponding workspace root.
|
||||
/// If `once` is set, the command will be executed once in the project root.
|
||||
/// This config only has an effect when `#rust-analyzer.cargo.buildScripts.overrideCommand#`
|
||||
/// is set.
|
||||
cargo_buildScripts_invocationStrategy: InvocationStrategy = "\"per_workspace\"",
|
||||
@@ -134,13 +130,9 @@ config_data! {
|
||||
/// Set to `"all"` to pass `--all-features` to Cargo.
|
||||
checkOnSave_features: Option<CargoFeaturesDef> = "null",
|
||||
/// Specifies the invocation strategy to use when running the checkOnSave command.
|
||||
/// If `per_workspace` is set, the command will be executed for each workspace and all
|
||||
/// occurrences of `$manifest_path` in the command will be replaced by the corresponding
|
||||
/// manifest path of the workspace that the command is being invoked for. If interpolation
|
||||
/// for the manifest path happens at least once, the commands will be executed from the
|
||||
/// project root, otherwise the commands will be executed from the corresponding workspace
|
||||
/// root.
|
||||
/// If `once_in_root` is set, the command will be executed once in the project root.
|
||||
/// If `per_workspace` is set, the command will be executed for each workspace from the
|
||||
/// corresponding workspace root.
|
||||
/// If `once` is set, the command will be executed once in the project root.
|
||||
/// This config only has an effect when `#rust-analyzer.cargo.buildScripts.overrideCommand#`
|
||||
/// is set.
|
||||
checkOnSave_invocationStrategy: InvocationStrategy = "\"per_workspace\"",
|
||||
@@ -1079,7 +1071,7 @@ impl Config {
|
||||
unset_test_crates: UnsetTestCrates::Only(self.data.cargo_unsetTest.clone()),
|
||||
wrap_rustc_in_build_scripts: self.data.cargo_buildScripts_useRustcWrapper,
|
||||
invocation_strategy: match self.data.cargo_buildScripts_invocationStrategy {
|
||||
InvocationStrategy::OnceInRoot => project_model::InvocationStrategy::OnceInRoot,
|
||||
InvocationStrategy::Once => project_model::InvocationStrategy::Once,
|
||||
InvocationStrategy::PerWorkspace => project_model::InvocationStrategy::PerWorkspace,
|
||||
},
|
||||
run_build_script_command: self.data.cargo_buildScripts_overrideCommand.clone(),
|
||||
@@ -1106,7 +1098,7 @@ impl Config {
|
||||
return None;
|
||||
}
|
||||
let invocation_strategy = match self.data.checkOnSave_invocationStrategy {
|
||||
InvocationStrategy::OnceInRoot => flycheck::InvocationStrategy::OnceInRoot,
|
||||
InvocationStrategy::Once => flycheck::InvocationStrategy::Once,
|
||||
InvocationStrategy::PerWorkspace => flycheck::InvocationStrategy::PerWorkspace,
|
||||
};
|
||||
let flycheck_config = match &self.data.checkOnSave_overrideCommand {
|
||||
@@ -1622,7 +1614,7 @@ enum CargoFeaturesDef {
|
||||
#[derive(Deserialize, Debug, Clone)]
|
||||
#[serde(rename_all = "snake_case")]
|
||||
enum InvocationStrategy {
|
||||
OnceInRoot,
|
||||
Once,
|
||||
PerWorkspace,
|
||||
}
|
||||
|
||||
@@ -2042,9 +2034,9 @@ fn field_props(field: &str, ty: &str, doc: &[&str], default: &str) -> serde_json
|
||||
},
|
||||
"InvocationStrategy" => set! {
|
||||
"type": "string",
|
||||
"enum": ["per_workspace", "once_in_root"],
|
||||
"enum": ["per_workspace", "once"],
|
||||
"enumDescriptions": [
|
||||
"The command will be executed for each workspace and `{manifest-path}` usages will be interpolated with the corresponding workspace manifests. If `{manifest-path}` is used, the commands will be executed in the project root, otherwise in the corresponding workspace roots.",
|
||||
"The command will be executed for each workspace from the corresponding workspace root.",
|
||||
"The command will be executed once in the project root."
|
||||
],
|
||||
},
|
||||
|
||||
@@ -477,7 +477,7 @@ impl GlobalState {
|
||||
| FlycheckConfig::CustomCommand { invocation_strategy, .. }) = config;
|
||||
|
||||
self.flycheck = match invocation_strategy {
|
||||
flycheck::InvocationStrategy::OnceInRoot => vec![FlycheckHandle::spawn(
|
||||
flycheck::InvocationStrategy::Once => vec![FlycheckHandle::spawn(
|
||||
0,
|
||||
Box::new(move |msg| sender.send(msg).unwrap()),
|
||||
config.clone(),
|
||||
|
||||
Reference in New Issue
Block a user