diff options
| author | Lukas Wirth <lukas.wirth@ferrous-systems.com> | 2024-02-23 21:50:44 +0100 |
|---|---|---|
| committer | Lukas Wirth <lukastw97@gmail.com> | 2024-03-01 13:19:55 +0100 |
| commit | c8fdcea85c273c386d1024815b955af6edae3fa2 (patch) | |
| tree | 5fbe164c9f1ab0dc5bf7c8c2969cf14c43f308ce | |
| parent | 83a1ad5bfeb650749e275957bb6da83cbef93c66 (diff) | |
| download | rust-c8fdcea85c273c386d1024815b955af6edae3fa2.tar.gz rust-c8fdcea85c273c386d1024815b955af6edae3fa2.zip | |
Fix targetDir config name
| -rw-r--r-- | crates/rust-analyzer/src/config.rs | 36 |
1 files changed, 15 insertions, 21 deletions
diff --git a/crates/rust-analyzer/src/config.rs b/crates/rust-analyzer/src/config.rs index 16e1a2f5449..0da6101b350 100644 --- a/crates/rust-analyzer/src/config.rs +++ b/crates/rust-analyzer/src/config.rs @@ -152,6 +152,13 @@ config_data! { // FIXME(@poliorcetics): move to multiple targets here too, but this will need more work // than `checkOnSave_target` cargo_target: Option<String> = "null", + /// Optional path to a rust-analyzer specific target directory. + /// This prevents rust-analyzer's `cargo check` and initial build-script and proc-macro + /// building from locking the `Cargo.lock` at the expense of duplicating build artifacts. + /// + /// Set to `true` to use a subdirectory of the existing target directory or + /// set to a path relative to the workspace to use that path. + cargo_targetDir | rust_analyzerTargetDir: Option<TargetDirectory> = "null", /// Unsets the implicit `#[cfg(test)]` for the specified crates. cargo_unsetTest: Vec<String> = "[\"core\"]", @@ -518,14 +525,6 @@ config_data! { /// tests or binaries. For example, it may be `--release`. runnables_extraArgs: Vec<String> = "[]", - /// Optional path to a rust-analyzer specific target directory. - /// This prevents rust-analyzer's `cargo check` from locking the `Cargo.lock` - /// at the expense of duplicating build artifacts. - /// - /// Set to `true` to use a subdirectory of the existing target directory or - /// set to a path relative to the workspace to use that path. - rust_analyzerTargetDir: Option<TargetDirectory> = "null", - /// Path to the Cargo.toml of the rust compiler workspace, for usage in rustc_private /// projects, or "discover" to try to automatically find it if the `rustc-dev` component /// is installed. @@ -1401,14 +1400,12 @@ impl Config { } } - // FIXME: This should be an AbsolutePathBuf fn target_dir_from_config(&self) -> Option<PathBuf> { - self.data.rust_analyzerTargetDir.as_ref().and_then(|target_dir| match target_dir { - TargetDirectory::UseSubdirectory(yes) if *yes => { - Some(PathBuf::from("target/rust-analyzer")) - } - TargetDirectory::UseSubdirectory(_) => None, - TargetDirectory::Directory(dir) => Some(dir.clone()), + self.data.cargo_targetDir.as_ref().and_then(|target_dir| match target_dir { + TargetDirectory::UseSubdirectory(true) => Some(PathBuf::from("target/rust-analyzer")), + TargetDirectory::UseSubdirectory(false) => None, + TargetDirectory::Directory(dir) if dir.is_relative() => Some(dir.clone()), + TargetDirectory::Directory(_) => None, }) } @@ -2745,7 +2742,7 @@ mod tests { "rust": { "analyzerTargetDir": null } })) .unwrap(); - assert_eq!(config.data.rust_analyzerTargetDir, None); + assert_eq!(config.data.cargo_targetDir, None); assert!( matches!(config.flycheck(), FlycheckConfig::CargoCommand { target_dir, .. } if target_dir.is_none()) ); @@ -2764,10 +2761,7 @@ mod tests { "rust": { "analyzerTargetDir": true } })) .unwrap(); - assert_eq!( - config.data.rust_analyzerTargetDir, - Some(TargetDirectory::UseSubdirectory(true)) - ); + assert_eq!(config.data.cargo_targetDir, Some(TargetDirectory::UseSubdirectory(true))); assert!( matches!(config.flycheck(), FlycheckConfig::CargoCommand { target_dir, .. } if target_dir == Some(PathBuf::from("target/rust-analyzer"))) ); @@ -2787,7 +2781,7 @@ mod tests { })) .unwrap(); assert_eq!( - config.data.rust_analyzerTargetDir, + config.data.cargo_targetDir, Some(TargetDirectory::Directory(PathBuf::from("other_folder"))) ); assert!( |
