From 804066a0471b47219ed69eacf7f6d85571f839a1 Mon Sep 17 00:00:00 2001 From: Kirill Bulatov Date: Thu, 10 Apr 2025 14:37:21 -0600 Subject: [PATCH] Do not query for LSP tasks buffers that do not belong to the position given (#28536) Follow-up of https://github.com/zed-industries/zed/pull/28359 Release Notes: - Fixed a panic when LSP tasks are queried in certain multi buffer excerpts --- crates/editor/src/lsp_ext.rs | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/crates/editor/src/lsp_ext.rs b/crates/editor/src/lsp_ext.rs index 84c7c7d56343345da86472780fbf755b77ee782a..fb3158a720783fcd5438bb50319759c90119fd7d 100644 --- a/crates/editor/src/lsp_ext.rs +++ b/crates/editor/src/lsp_ext.rs @@ -85,6 +85,10 @@ pub fn lsp_tasks( .map(|(name, buffer_ids)| { let buffers = buffer_ids .iter() + .filter(|&&buffer_id| match for_position { + Some(for_position) => for_position.buffer_id == Some(buffer_id), + None => true, + }) .filter_map(|&buffer_id| project.read(cx).buffer_for_id(buffer_id, cx)) .collect::>(); language_server_for_buffers(project.clone(), name.clone(), buffers, cx)