diff --git a/crates/project/src/lsp_store.rs b/crates/project/src/lsp_store.rs index 349bfa9ed00223ea71d4d77dd32bdf433c39c784..f5d931737dff9a873fc5d63e5445b2b5d49bab56 100644 --- a/crates/project/src/lsp_store.rs +++ b/crates/project/src/lsp_store.rs @@ -2684,10 +2684,15 @@ impl LocalLspStore { cx: &mut App, ) { buffer.update(cx, |buffer, cx| { - let _ = self.buffer_snapshots.remove(&buffer.remote_id()); + let mut snapshots = self.buffer_snapshots.remove(&buffer.remote_id()); for (_, language_server) in self.language_servers_for_buffer(buffer, cx) { - language_server.unregister_buffer(file_url.clone()); + if snapshots + .as_mut() + .is_some_and(|map| map.remove(&language_server.server_id()).is_some()) + { + language_server.unregister_buffer(file_url.clone()); + } } }); }