@@ -2032,7 +2032,25 @@ mod cmd {
2032 0 => None,
2032 0 => None,
2033 _ => Some(args.remove(0)),
2033 _ => Some(args.remove(0)),
2035− dap_start_impl(&mut cx.editor, name, Some(args));
2035+ dap_start_impl(&mut cx.editor, name, None, Some(args));
2040+ cx: &mut compositor::Context,
2042+ _event: PromptEvent,
2043+ ) -> anyhow::Result<()> {
2044+ let mut args = args.to_owned();
2045+ let address = match args.len() {
2047+ _ => Some(args.remove(0).parse().unwrap()),
2049+ let name = match args.len() {
2051+ _ => Some(args.remove(0)),
2053+ dap_start_impl(&mut cx.editor, name, address, Some(args));
@@ -2282,6 +2300,13 @@ mod cmd {
2282 fun: debug_start,
2300 fun: debug_start,
2283 completer: Some(completers::filename),
2301 completer: Some(completers::filename),
2304+ name: "debug-remote",
2305+ alias: Some("dbg-tcp"),
2306+ doc: "Connect to a debug adapter by TCP address and start a debugging session from a given template with given parameters.",
2308+ completer: Some(completers::filename),
2285 TypableCommand {
2310 TypableCommand {
2286 name: "debug-eval",
2311 name: "debug-eval",
2287 alias: None,
2312 alias: None,
@@ -4406,7 +4431,12 @@ fn suspend(_cx: &mut Context) {
4435+ editor: &mut Editor,
4436+ name: Option<&str>,
4437+ socket: Option<std::net::SocketAddr>,
4409−fn dap_start_impl(editor: &mut Editor, name: Option<&str>, params: Option<Vec<&str>>) {
4438+ params: Option<Vec<&str>>,
4410 use helix_dap::Client;
4440 use helix_dap::Client;
4411 use helix_lsp::block_on;
4441 use helix_lsp::block_on;
4412 use serde_json::to_value;
4442 use serde_json::to_value;
@@ -4435,8 +4465,10 @@ fn dap_start_impl(editor: &mut Editor, name: Option<&str>, params: Option<Vec<&s
4438− let started = Client::process(config.clone(), 0);
4439− let (mut debugger, events) = block_on(started).unwrap();
4468+ let (mut debugger, events) = match socket {
4469+ Some(socket) => block_on(Client::tcp(socket, 0)).unwrap(),
4470+ None => block_on(Client::process(config.clone(), 0)).unwrap(),
4441 let request = debugger.initialize(config.name.clone());
4473 let request = debugger.initialize(config.name.clone());
4442 let _ = block_on(request).unwrap();
4474 let _ = block_on(request).unwrap();