From 3bcb65f8fb7686c66177ced3dab12ee2abea5a98 Mon Sep 17 00:00:00 2001 From: "gcp-cherry-pick-bot[bot]" <98988430+gcp-cherry-pick-bot[bot]@users.noreply.github.com> Date: Sun, 23 Feb 2025 13:58:12 +0100 Subject: [PATCH] lsp: Check for existing snapshots before sending off a didOpen notification (cherry-pick #25409) (#25411) Cherry-picked lsp: Check for existing snapshots before sending off a didOpen notification (#25409) Closes #ISSUE Release Notes: - Fixed Zed sending out didOpen notification to a language server when opening documents. Co-authored-by: Piotr Osiewicz <24362066+osiewicz@users.noreply.github.com> --- crates/project/src/lsp_store.rs | 17 ++++++++++------- 1 file changed, 10 insertions(+), 7 deletions(-) diff --git a/crates/project/src/lsp_store.rs b/crates/project/src/lsp_store.rs index 38bb0400dc6f48963bbe4f40e06ceb5f3ca20bbd..c7509091e068c5e862191916f9207039d6619f85 100644 --- a/crates/project/src/lsp_store.rs +++ b/crates/project/src/lsp_store.rs @@ -1924,17 +1924,20 @@ impl LocalLspStore { version: 0, snapshot: initial_snapshot.clone(), }; - self.buffer_snapshots + let previous_snapshots = self + .buffer_snapshots .entry(buffer_id) .or_default() .insert(server.server_id(), vec![snapshot]); - server.register_buffer( - uri.clone(), - adapter.language_id(&language.name()), - 0, - initial_snapshot.text(), - ); + if previous_snapshots.is_none() { + server.register_buffer( + uri.clone(), + adapter.language_id(&language.name()), + 0, + initial_snapshot.text(), + ); + } } } }