Unnamed repository; edit this file 'description' to name the repository.
changes to Cargo config should always refresh
BenjaminBrienen 6 weeks ago
parent 664f305 · commit 1e0853e
-rw-r--r--crates/rust-analyzer/src/reload.rs14
1 files changed, 10 insertions, 4 deletions
diff --git a/crates/rust-analyzer/src/reload.rs b/crates/rust-analyzer/src/reload.rs
index 71accbed4e..816c0c2544 100644
--- a/crates/rust-analyzer/src/reload.rs
+++ b/crates/rust-analyzer/src/reload.rs
@@ -975,6 +975,7 @@ pub(crate) fn should_refresh_for_change(
change_kind: ChangeKind,
additional_paths: &[&str],
) -> bool {
+ // Note: build scripts are retriggered on file save, no refresh is necessary
const IMPLICIT_TARGET_FILES: &[&str] = &["build.rs", "src/main.rs", "src/lib.rs"];
const IMPLICIT_TARGET_DIRS: &[&str] = &["src/bin", "examples", "tests", "benches"];
@@ -991,15 +992,20 @@ pub(crate) fn should_refresh_for_change(
return true;
}
+ // .cargo/config{.toml}
+ if matches!(file_name, "config.toml" | "config")
+ && path.parent().map(|parent| parent.as_str().ends_with(".cargo")).unwrap_or(false)
+ {
+ return true;
+ }
+
+ // Everything below only matters when files are created or deleted
if change_kind == ChangeKind::Modify {
return false;
}
- // .cargo/config{.toml}
if path.extension().unwrap_or_default() != "rs" {
- let is_cargo_config = matches!(file_name, "config.toml" | "config")
- && path.parent().map(|parent| parent.as_str().ends_with(".cargo")).unwrap_or(false);
- return is_cargo_config;
+ return false;
}
if IMPLICIT_TARGET_FILES.iter().any(|it| path.as_str().ends_with(it)) {