From c5b210df59983a2caa9c389e5cd22aa670fb4a00 Mon Sep 17 00:00:00 2001 From: Dmitry Sharshakov Date: Mon, 23 Aug 2021 16:48:06 +0300 Subject: Add debug-adapter field to languages.toml --- helix-term/src/commands.rs | 29 +++++++++++++++++++++++++---- 1 file changed, 25 insertions(+), 4 deletions(-) (limited to 'helix-term') diff --git a/helix-term/src/commands.rs b/helix-term/src/commands.rs index e35b5d51..3b8e1022 100644 --- a/helix-term/src/commands.rs +++ b/helix-term/src/commands.rs @@ -4336,12 +4336,33 @@ fn dap_start(cx: &mut Context) { use helix_lsp::block_on; use serde_json::to_value; - let (_, _doc) = current!(cx.editor); + let (_, doc) = current!(cx.editor); - // look up config for filetype - // if multiple available, open picker + // TODO config picker + let path = match doc.path() { + Some(path) => path.to_path_buf(), + None => { + cx.editor + .set_error("Can't start debug: document has no path".to_string()); + return; + } + }; - let started = Client::tcp_process("dlv", vec!["dap"], "-l 127.0.0.1:{}", 0); + let config = cx + .editor + .syn_loader + .language_config_for_file_name(&path) + .and_then(|x| x.debug_adapter.clone()); + let config = match config { + Some(c) => c, + None => { + cx.editor.set_error( + "Can't start debug: no debug adapter available for language".to_string(), + ); + return; + } + }; + let started = Client::tcp_process(config, 0); let (mut debugger, events) = block_on(started).unwrap(); let request = debugger.initialize("go".to_owned()); -- cgit v1.2.3-70-g09d2