Skip to content

Commit 651acfd

Browse files
matoousfryeb
authored andcommitted
fix(dap): respect supports_terminate_request (helix-editor#14826)
1 parent 10ee62b commit 651acfd

1 file changed

Lines changed: 16 additions & 8 deletions

File tree

helix-term/src/commands/dap.rs

Lines changed: 16 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -586,15 +586,23 @@ pub fn dap_terminate(cx: &mut Context) {
586586
cx.editor.set_status("Terminating debug session...");
587587
let debugger = debugger!(cx.editor);
588588

589-
let terminate_arguments = Some(TerminateArguments {
590-
restart: Some(false),
591-
});
589+
if debugger
590+
.caps
591+
.as_ref()
592+
.is_some_and(|c| c.supports_terminate_request.unwrap_or_default())
593+
{
594+
let terminate_arguments = Some(TerminateArguments {
595+
restart: Some(false),
596+
});
592597

593-
let request = debugger.terminate(terminate_arguments);
594-
dap_callback(cx.jobs, request, |editor, _compositor, _response: ()| {
595-
// editor.set_error(format!("Failed to disconnect: {}", e));
596-
editor.debug_adapters.unset_active_client();
597-
});
598+
let request = debugger.terminate(terminate_arguments);
599+
dap_callback(cx.jobs, request, |editor, _compositor, _response: ()| {
600+
// editor.set_error(format!("Failed to disconnect: {}", e));
601+
editor.debug_adapters.unset_active_client();
602+
});
603+
} else {
604+
cx.editor.debug_adapters.unset_active_client();
605+
}
598606
}
599607

600608
pub fn dap_enable_exceptions(cx: &mut Context) {

0 commit comments

Comments
 (0)