lsp: Do not drop lsp buffer handle from editor when a language change leads to buffer having a legit language (#44469)

Fixes a bug that led to us unnecessarily restarting a language server
when we were looking at a single file of a given language.

Release Notes:

- Fixed a bug that led to Zed sometimes starting an excessive amount of
language servers
This commit is contained in:
Piotr Osiewicz
2025-12-09 21:37:39 +01:00
committed by GitHub
parent 5dd8561b06
commit 3180f44477
10 changed files with 23 additions and 16 deletions
+4 -2
View File
@@ -22007,8 +22007,10 @@ impl Editor {
multi_buffer::Event::DiffHunksToggled => {
self.tasks_update_task = Some(self.refresh_runnables(window, cx));
}
multi_buffer::Event::LanguageChanged(buffer_id) => {
self.registered_buffers.remove(&buffer_id);
multi_buffer::Event::LanguageChanged(buffer_id, is_fresh_language) => {
if !is_fresh_language {
self.registered_buffers.remove(&buffer_id);
}
jsx_tag_auto_close::refresh_enabled_in_any_buffer(self, multibuffer, cx);
cx.emit(EditorEvent::Reparsed(*buffer_id));
cx.notify();