about summary refs log tree commit diff
diff options
context:
space:
mode:
authorbors <bors@rust-lang.org>2022-05-02 12:21:42 +0000
committerbors <bors@rust-lang.org>2022-05-02 12:21:42 +0000
commit9e10d4b717888e1d20e24dced595682f61e603b6 (patch)
tree26575cd22751a930add6f9bcd1e5f7ef7c8bca2c
parentcc12d9df3fa44c79744af7b15408c929db0f008e (diff)
parentb373e62f1a3785b35572113797cbfa72861712b2 (diff)
downloadrust-9e10d4b717888e1d20e24dced595682f61e603b6.tar.gz
rust-9e10d4b717888e1d20e24dced595682f61e603b6.zip
Auto merge of #12093 - nico-abram:uwu, r=Veykril
Reload project on .cargo/config[.toml] changes

Fixes #11024

Not adding tests as discussed in the issue
-rw-r--r--crates/rust-analyzer/src/config.rs2
-rw-r--r--crates/rust-analyzer/src/reload.rs5
-rw-r--r--docs/user/generated_config.adoc2
-rw-r--r--editors/code/package.json2
4 files changed, 8 insertions, 3 deletions
diff --git a/crates/rust-analyzer/src/config.rs b/crates/rust-analyzer/src/config.rs
index ad1f9c40e2b..1ee5fb79016 100644
--- a/crates/rust-analyzer/src/config.rs
+++ b/crates/rust-analyzer/src/config.rs
@@ -67,7 +67,7 @@ config_data! {
         callInfo_full: bool                                = "true",
 
         /// Automatically refresh project info via `cargo metadata` on
-        /// `Cargo.toml` changes.
+        /// `Cargo.toml` or `.cargo/config.toml` changes.
         cargo_autoreload: bool           = "true",
         /// Activate all available features (`--all-features`).
         cargo_allFeatures: bool          = "false",
diff --git a/crates/rust-analyzer/src/reload.rs b/crates/rust-analyzer/src/reload.rs
index 957a556c527..c2a6a3fe301 100644
--- a/crates/rust-analyzer/src/reload.rs
+++ b/crates/rust-analyzer/src/reload.rs
@@ -617,6 +617,11 @@ pub(crate) fn should_refresh_for_change(path: &AbsPath, change_kind: ChangeKind)
         return false;
     }
     if path.extension().unwrap_or_default() != "rs" {
+        if (file_name == "config.toml" || file_name == "config")
+            && path.parent().map(|parent| parent.as_ref().ends_with(".cargo")) == Some(true)
+        {
+            return true;
+        }
         return false;
     }
     if IMPLICIT_TARGET_FILES.iter().any(|it| path.as_ref().ends_with(it)) {
diff --git a/docs/user/generated_config.adoc b/docs/user/generated_config.adoc
index ace74f8e08a..a9dcdfd696f 100644
--- a/docs/user/generated_config.adoc
+++ b/docs/user/generated_config.adoc
@@ -42,7 +42,7 @@ Show function name and docs in parameter hints.
 +
 --
 Automatically refresh project info via `cargo metadata` on
-`Cargo.toml` changes.
+`Cargo.toml` or `.cargo/config.toml` changes.
 --
 [[rust-analyzer.cargo.allFeatures]]rust-analyzer.cargo.allFeatures (default: `false`)::
 +
diff --git a/editors/code/package.json b/editors/code/package.json
index cd0ad92d9a5..9f0f53196a5 100644
--- a/editors/code/package.json
+++ b/editors/code/package.json
@@ -439,7 +439,7 @@
                     "type": "boolean"
                 },
                 "rust-analyzer.cargo.autoreload": {
-                    "markdownDescription": "Automatically refresh project info via `cargo metadata` on\n`Cargo.toml` changes.",
+                    "markdownDescription": "Automatically refresh project info via `cargo metadata` on\n`Cargo.toml` or `.cargo/config.toml` changes.",
                     "default": true,
                     "type": "boolean"
                 },