@@ -303,6 +303,7 @@ impl Command {
303 select_textobject_around, "Select around object",
303 select_textobject_around, "Select around object",
304 select_textobject_inner, "Select inside object",
304 select_textobject_inner, "Select inside object",
305 dap_toggle_breakpoint, "Toggle breakpoint",
305 dap_toggle_breakpoint, "Toggle breakpoint",
306+ dap_init, "Start debug session",
306 dap_launch, "Launch debugger",
307 dap_launch, "Launch debugger",
307 dap_run, "Begin program execution",
308 dap_run, "Begin program execution",
308 suspend, "Suspend"
309 suspend, "Suspend"
@@ -1902,30 +1903,6 @@ mod cmd {
1906− cx: &mut compositor::Context,
1908− _event: PromptEvent,
1909− ) -> anyhow::Result<()> {
1910− use helix_dap::Client;
1911− use helix_lsp::block_on;
1912− let (_, _doc) = current!(cx.editor);
1914− // look up config for filetype
1915− // if multiple available, open picker
1917− let debugger = Client::tcp_process("dlv", vec!["dap"], "-l 127.0.0.1:{}", 0);
1918− let mut debugger = block_on(debugger)?;
1920− let request = debugger.initialize("go".to_owned());
1921− let _ = block_on(request)?;
1923− // TODO: either await "initialized" or buffer commands until event is received
1925− cx.editor.debugger = Some(debugger);
1929 pub const TYPABLE_COMMAND_LIST: &[TypableCommand] = &[
1906 pub const TYPABLE_COMMAND_LIST: &[TypableCommand] = &[
1930 TypableCommand {
1907 TypableCommand {
1931 name: "quit",
1908 name: "quit",
@@ -2164,13 +2141,6 @@ mod cmd {
2164 doc: "Display tree sitter scopes, primarily for theming and development.",
2141 doc: "Display tree sitter scopes, primarily for theming and development.",
2165 fun: tree_sitter_scopes,
2142 fun: tree_sitter_scopes,
2166 completer: None,
2143 completer: None,
2171− doc: "Start a debug session.",
@@ -4275,6 +4245,25 @@ fn suspend(_cx: &mut Context) {
4248+fn dap_init(cx: &mut Context) {
4249+ use helix_dap::Client;
4250+ use helix_lsp::block_on;
4251+ let (_, _doc) = current!(cx.editor);
4253+ // look up config for filetype
4254+ // if multiple available, open picker
4256+ let debugger = Client::tcp_process("dlv", vec!["dap"], "-l 127.0.0.1:{}", 0);
4257+ let mut debugger = block_on(debugger).unwrap();
4259+ let request = debugger.initialize("go".to_owned());
4260+ let _ = block_on(request).unwrap();
4262+ // TODO: either await "initialized" or buffer commands until event is received
4264+ cx.editor.debugger = Some(debugger);
4278fn dap_toggle_breakpoint(cx: &mut Context) {
4267fn dap_toggle_breakpoint(cx: &mut Context) {
4279 use helix_lsp::block_on;
4268 use helix_lsp::block_on;