@@ -2900,27 +2900,11 @@ impl LspStore {
let file = File::from_dyn(buffer.read(cx).file())?;
let worktree_id = file.worktree_id(cx);
let abs_path = file.as_local()?.abs_path(cx);
- let worktree_path = file.as_local()?.path();
let text_document = lsp::TextDocumentIdentifier {
uri: lsp::Url::from_file_path(abs_path).log_err()?,
};
- let watched_paths_for_server = &self.as_local()?.language_server_watched_paths;
for server in self.language_servers_for_worktree(worktree_id) {
- let should_notify = maybe!({
- Some(
- watched_paths_for_server
- .get(&server.server_id())?
- .read(cx)
- .worktree_paths
- .get(&worktree_id)?
- .is_match(worktree_path),
- )
- })
- .unwrap_or_default();
- if !should_notify {
- continue;
- }
if let Some(include_text) = include_text(server.as_ref()) {
let text = if include_text {
Some(buffer.read(cx).text())
@@ -385,34 +385,6 @@ async fn test_managing_language_servers(cx: &mut gpui::TestAppContext) {
// A server is started up, and it is notified about Rust files.
let mut fake_rust_server = fake_rust_servers.next().await.unwrap();
- fake_rust_server
- .request::<lsp::request::RegisterCapability>(lsp::RegistrationParams {
- registrations: vec![lsp::Registration {
- id: Default::default(),
- method: "workspace/didChangeWatchedFiles".to_string(),
- register_options: serde_json::to_value(
- lsp::DidChangeWatchedFilesRegistrationOptions {
- watchers: vec![
- lsp::FileSystemWatcher {
- glob_pattern: lsp::GlobPattern::String(
- "/the-root/Cargo.toml".to_string(),
- ),
- kind: None,
- },
- lsp::FileSystemWatcher {
- glob_pattern: lsp::GlobPattern::String(
- "/the-root/*.rs".to_string(),
- ),
- kind: None,
- },
- ],
- },
- )
- .ok(),
- }],
- })
- .await
- .unwrap();
assert_eq!(
fake_rust_server
.receive_notification::<lsp::notification::DidOpenTextDocument>()
@@ -460,24 +432,6 @@ async fn test_managing_language_servers(cx: &mut gpui::TestAppContext) {
// A json language server is started up and is only notified about the json buffer.
let mut fake_json_server = fake_json_servers.next().await.unwrap();
- fake_json_server
- .request::<lsp::request::RegisterCapability>(lsp::RegistrationParams {
- registrations: vec![lsp::Registration {
- id: Default::default(),
- method: "workspace/didChangeWatchedFiles".to_string(),
- register_options: serde_json::to_value(
- lsp::DidChangeWatchedFilesRegistrationOptions {
- watchers: vec![lsp::FileSystemWatcher {
- glob_pattern: lsp::GlobPattern::String("/the-root/*.json".to_string()),
- kind: None,
- }],
- },
- )
- .ok(),
- }],
- })
- .await
- .unwrap();
assert_eq!(
fake_json_server
.receive_notification::<lsp::notification::DidOpenTextDocument>()
@@ -528,7 +482,7 @@ async fn test_managing_language_servers(cx: &mut gpui::TestAppContext) {
)
);
- // Save notifications are reported only to servers that signed up for a given extension.
+ // Save notifications are reported to all servers.
project
.update(cx, |project, cx| project.save_buffer(toml_buffer, cx))
.await
@@ -540,6 +494,13 @@ async fn test_managing_language_servers(cx: &mut gpui::TestAppContext) {
.text_document,
lsp::TextDocumentIdentifier::new(lsp::Url::from_file_path("/the-root/Cargo.toml").unwrap())
);
+ assert_eq!(
+ fake_json_server
+ .receive_notification::<lsp::notification::DidSaveTextDocument>()
+ .await
+ .text_document,
+ lsp::TextDocumentIdentifier::new(lsp::Url::from_file_path("/the-root/Cargo.toml").unwrap())
+ );
// Renames are reported only to servers matching the buffer's language.
fs.rename(