about summary refs log tree commit diff
diff options
context:
space:
mode:
authorLukas Wirth <lukastw97@gmail.com>2024-03-21 21:22:49 +0100
committerLukas Wirth <lukastw97@gmail.com>2024-03-21 21:27:34 +0100
commitfe28e470cdf7d864fb69411e780b1e9791d6742a (patch)
treef0d0d6654c9ef97fb8e4b3577bb19adb41df3ac1
parent23613a9de71758553876dd7e7149de04b026dae5 (diff)
downloadrust-fe28e470cdf7d864fb69411e780b1e9791d6742a.tar.gz
rust-fe28e470cdf7d864fb69411e780b1e9791d6742a.zip
Use relative glob patterns in DidChangeWatchedFilesRegistrationOptions
-rw-r--r--crates/rust-analyzer/src/reload.rs21
1 files changed, 12 insertions, 9 deletions
diff --git a/crates/rust-analyzer/src/reload.rs b/crates/rust-analyzer/src/reload.rs
index 7c7f5aa5ca5..0214be006ec 100644
--- a/crates/rust-analyzer/src/reload.rs
+++ b/crates/rust-analyzer/src/reload.rs
@@ -436,16 +436,19 @@ impl GlobalState {
                     .flat_map(|ws| ws.to_roots())
                     .filter(|it| it.is_local)
                     .flat_map(|root| {
-                        root.include.into_iter().flat_map(|it| {
-                            [
-                                format!("{it}/**/*.rs"),
-                                format!("{it}/**/Cargo.toml"),
-                                format!("{it}/**/Cargo.lock"),
-                            ]
-                        })
+                        root.include
+                            .into_iter()
+                            .flat_map(|it| [(it.clone(), "**/*.rs"), (it, "**/Cargo.{lock,toml}")])
                     })
-                    .map(|glob_pattern| lsp_types::FileSystemWatcher {
-                        glob_pattern: lsp_types::GlobPattern::String(glob_pattern),
+                    .map(|(base, pat)| lsp_types::FileSystemWatcher {
+                        glob_pattern: lsp_types::GlobPattern::Relative(
+                            lsp_types::RelativePattern {
+                                base_uri: lsp_types::OneOf::Right(
+                                    lsp_types::Url::from_file_path(base).unwrap(),
+                                ),
+                                pattern: pat.to_owned(),
+                            },
+                        ),
                         kind: None,
                     })
                     .collect(),