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
@@ -129,7 +129,7 @@ pub enum Event {
transaction_id: TransactionId,
},
Reloaded,
LanguageChanged(BufferId),
LanguageChanged(BufferId, bool),
Reparsed(BufferId),
Saved,
FileHandleChanged,
@@ -2294,7 +2294,9 @@ impl MultiBuffer {
BufferEvent::Saved => Event::Saved,
BufferEvent::FileHandleChanged => Event::FileHandleChanged,
BufferEvent::Reloaded => Event::Reloaded,
BufferEvent::LanguageChanged => Event::LanguageChanged(buffer_id),
BufferEvent::LanguageChanged(has_language) => {
Event::LanguageChanged(buffer_id, *has_language)
}
BufferEvent::Reparsed => Event::Reparsed(buffer_id),
BufferEvent::DiagnosticsUpdated => Event::DiagnosticsUpdated,
BufferEvent::CapabilityChanged => {