diff --git a/crates/project/src/lsp_store.rs b/crates/project/src/lsp_store.rs index 0c89f5c0f1a5fff3c4b79581a75061e86615d0a0..6fbae51fc3546934145bbde866a5e9ad0b742b36 100644 --- a/crates/project/src/lsp_store.rs +++ b/crates/project/src/lsp_store.rs @@ -1921,20 +1921,20 @@ impl LocalLspStore { version: 0, snapshot: initial_snapshot.clone(), }; - let previous_snapshots = self - .buffer_snapshots + self.buffer_snapshots .entry(buffer_id) .or_default() - .insert(server.server_id(), vec![snapshot]); + .entry(server.server_id()) + .or_insert_with(|| { + 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(), - ); - } + vec![snapshot] + }); } } }