From 5a05986479d39fc179b38bb4f7d69f5cce7ce422 Mon Sep 17 00:00:00 2001
From: Anthony Eid <56899983+Anthony-Eid@users.noreply.github.com>
Date: Thu, 23 Oct 2025 03:37:37 -0400
Subject: [PATCH] debugger: Fix debug scenario picker not showing language
subtitles (#40977)
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
### Before
### After
I also changed the debug picker to use a material list to cover the edge
case where there isn't a subtitle for an entry
Release Notes:
- debugger: Fix debug scenario picker not showing language subtitles
---
crates/debugger_ui/src/new_process_modal.rs | 6 ++++--
crates/picker/src/picker.rs | 10 ++++++++++
2 files changed, 14 insertions(+), 2 deletions(-)
diff --git a/crates/debugger_ui/src/new_process_modal.rs b/crates/debugger_ui/src/new_process_modal.rs
index cf3c779abad2073892a45acb4616298ef85af043..e12c768e12b1e098e150027c89d05695c59c51f6 100644
--- a/crates/debugger_ui/src/new_process_modal.rs
+++ b/crates/debugger_ui/src/new_process_modal.rs
@@ -96,7 +96,9 @@ impl NewProcessModal {
let debug_picker = cx.new(|cx| {
let delegate =
DebugDelegate::new(debug_panel.downgrade(), task_store.clone());
- Picker::uniform_list(delegate, window, cx).modal(false)
+ Picker::list(delegate, window, cx)
+ .modal(false)
+ .list_measure_all()
});
let configure_mode = ConfigureMode::new(window, cx);
@@ -1050,7 +1052,7 @@ impl DebugDelegate {
Some(TaskSourceKind::Lsp { language_name, .. }) => {
Some(format!("LSP: {language_name}"))
}
- Some(TaskSourceKind::Language { .. }) => None,
+ Some(TaskSourceKind::Language { name }) => Some(format!("Lang: {name}")),
_ => context.clone().and_then(|ctx| {
ctx.task_context
.task_variables
diff --git a/crates/picker/src/picker.rs b/crates/picker/src/picker.rs
index 247fcbdd875ffc2e52d90d9b1309f874c508e588..90423bcace0ad405e0c88703efe09f39a8763778 100644
--- a/crates/picker/src/picker.rs
+++ b/crates/picker/src/picker.rs
@@ -352,6 +352,16 @@ impl Picker {
self
}
+ pub fn list_measure_all(mut self) -> Self {
+ match self.element_container {
+ ElementContainer::List(state) => {
+ self.element_container = ElementContainer::List(state.measure_all());
+ }
+ _ => {}
+ }
+ self
+ }
+
pub fn focus(&self, window: &mut Window, cx: &mut App) {
self.focus_handle(cx).focus(window);
}