@@ -124,10 +124,7 @@ fn thread_picker(
124124 callback_fn(editor, &threads[0]);
125125 return;
126126 }
127− let debugger = match &mut editor.debugger {
128− Some(debugger) => debugger,
129− None => return,
130− };
127+ let debugger = debugger!(editor);
131128
132129 let thread_states = debugger.thread_states.clone();
133130 let picker = FilePicker::new(
@@ -535,10 +532,7 @@ pub fn dap_continue(cx: &mut Context) {
535532
536533pub fn dap_pause(cx: &mut Context) {
537534 thread_picker(cx, |editor, thread| {
538− let debugger = match &mut editor.debugger {
539− Some(debugger) => debugger,
540− None => return,
541− };
535+ let debugger = debugger!(editor);
542536 let request = debugger.pause(thread.id);
543537 // NOTE: we don't need to set active thread id here because DAP will emit a "stopped" event
544538 if let Err(e) = block_on(request) {
@@ -670,7 +664,7 @@ pub fn dap_enable_exceptions(cx: &mut Context) {
670664pub fn dap_disable_exceptions(cx: &mut Context) {
671665 let debugger = debugger!(cx.editor);
672666
673− if let Err(e) = block_on(debugger.set_exception_breakpoints(vec![])) {
667+ if let Err(e) = block_on(debugger.set_exception_breakpoints(Vec::new())) {
674668 cx.editor
675669 .set_error(format!("Failed to set up exception breakpoints: {}", e));
676670 }
@@ -787,10 +781,7 @@ pub fn dap_switch_stack_frame(cx: &mut Context) {
787781 frames,
788782 |frame| frame.name.clone().into(), // TODO: include thread_states in the label
789783 move |cx, frame, _action| {
790− let debugger = match &mut cx.editor.debugger {
791− Some(debugger) => debugger,
792− None => return,
793− };
784+ let debugger = debugger!(cx.editor);
794785 // TODO: this should be simpler to find
795786 let pos = debugger.stack_frames[&thread_id]
796787 .iter()