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
+1 -1
View File
@@ -1141,7 +1141,7 @@ impl BufferStore {
})
.log_err();
}
BufferEvent::LanguageChanged => {}
BufferEvent::LanguageChanged(_) => {}
_ => {}
}
}
+1 -1
View File
@@ -1451,7 +1451,7 @@ impl GitStore {
match event {
BufferStoreEvent::BufferAdded(buffer) => {
cx.subscribe(buffer, |this, buffer, event, cx| {
if let BufferEvent::LanguageChanged = event {
if let BufferEvent::LanguageChanged(_) = event {
let buffer_id = buffer.read(cx).remote_id();
if let Some(diff_state) = this.diffs.get(&buffer_id) {
diff_state.update(cx, |diff_state, cx| {
+1 -1
View File
@@ -219,7 +219,7 @@ struct UnifiedLanguageServer {
project_roots: HashSet<Arc<RelPath>>,
}
#[derive(Clone, Hash, PartialEq, Eq)]
#[derive(Clone, Debug, Hash, PartialEq, Eq)]
struct LanguageServerSeed {
worktree_id: WorktreeId,
name: LanguageServerName,