diff --git a/Cargo.lock b/Cargo.lock index a072697c41..a26d4d19c0 100644 --- a/Cargo.lock +++ b/Cargo.lock @@ -4050,7 +4050,7 @@ dependencies = [ [[package]] name = "dap-types" version = "0.0.1" -source = "git+https://github.com/zed-industries/dap-types?rev=cef124a5109d6fd44a3f986882d78ce40b8d4fb5#cef124a5109d6fd44a3f986882d78ce40b8d4fb5" +source = "git+https://github.com/zed-industries/dap-types?rev=b40956a7f4d1939da67429d941389ee306a3a308#b40956a7f4d1939da67429d941389ee306a3a308" dependencies = [ "schemars", "serde", diff --git a/Cargo.toml b/Cargo.toml index 4789e5278f..fac347056f 100644 --- a/Cargo.toml +++ b/Cargo.toml @@ -435,7 +435,7 @@ core-foundation-sys = "0.8.6" core-video = { version = "0.4.3", features = ["metal"] } criterion = { version = "0.5", features = ["html_reports"] } ctor = "0.4.0" -dap-types = { git = "https://github.com/zed-industries/dap-types", rev = "cef124a5109d6fd44a3f986882d78ce40b8d4fb5" } +dap-types = { git = "https://github.com/zed-industries/dap-types", rev = "b40956a7f4d1939da67429d941389ee306a3a308" } dashmap = "6.0" derive_more = "0.99.17" dirs = "4.0" diff --git a/crates/debugger_ui/src/session/running/stack_frame_list.rs b/crates/debugger_ui/src/session/running/stack_frame_list.rs index 305853dfc5..a821b984d3 100644 --- a/crates/debugger_ui/src/session/running/stack_frame_list.rs +++ b/crates/debugger_ui/src/session/running/stack_frame_list.rs @@ -183,6 +183,7 @@ impl StackFrameList { let mut entries = Vec::new(); let mut collapsed_entries = Vec::new(); let mut first_stack_frame = None; + let mut first_not_subtle_frame = None; let stack_frames = self.stack_frames(cx); for stack_frame in &stack_frames { @@ -197,6 +198,11 @@ impl StackFrameList { } first_stack_frame.get_or_insert(entries.len()); + if stack_frame.dap.presentation_hint + != Some(dap::StackFramePresentationHint::Subtle) + { + first_not_subtle_frame.get_or_insert(entries.len()); + } entries.push(StackFrameEntry::Normal(stack_frame.dap.clone())); } } @@ -209,7 +215,10 @@ impl StackFrameList { std::mem::swap(&mut self.entries, &mut entries); - if let Some(ix) = first_stack_frame.filter(|_| open_first_stack_frame) { + if let Some(ix) = first_not_subtle_frame + .or(first_stack_frame) + .filter(|_| open_first_stack_frame) + { self.select_ix(Some(ix), cx); self.activate_selected_entry(window, cx); } else if let Some(old_selected_frame_id) = old_selected_frame_id {