diff options
author | Dmitry Sharshakov | 2021-08-24 17:27:54 +0000 |
---|---|---|
committer | Dmitry Sharshakov | 2021-08-24 17:27:54 +0000 |
commit | 299da5a35b1917812a0f37e046d946031474d606 (patch) | |
tree | a7370174bfed78966a6d0b298589ce14460b62ae | |
parent | b001008a698881991d14f28c6f8980c7d83ce385 (diff) |
Support attach request
-rw-r--r-- | helix-term/src/commands.rs | 9 | ||||
-rw-r--r-- | languages.toml | 20 |
2 files changed, 27 insertions, 2 deletions
diff --git a/helix-term/src/commands.rs b/helix-term/src/commands.rs index 7d3fafe6..0a8fb99b 100644 --- a/helix-term/src/commands.rs +++ b/helix-term/src/commands.rs @@ -24,6 +24,7 @@ use helix_lsp::{ }; use insert::*; use movement::Movement; +use serde_json::Value; use crate::{ compositor::{self, Component, Compositor}, @@ -4454,7 +4455,7 @@ fn dap_start_impl(editor: &mut Editor, name: Option<&str>, params: Option<Vec<&s }; let template = start_config.args.clone(); - let mut args = HashMap::new(); + let mut args: HashMap<String, Value> = HashMap::new(); if let Some(params) = params { for (k, t) in template { @@ -4464,7 +4465,11 @@ fn dap_start_impl(editor: &mut Editor, name: Option<&str>, params: Option<Vec<&s value = value.replace(format!("{{{}}}", i).as_str(), x); } - args.insert(k, value); + if let Ok(integer) = value.parse::<usize>() { + args.insert(k, Value::Number(serde_json::Number::from(integer))); + } else { + args.insert(k, Value::String(value)); + } } } diff --git a/languages.toml b/languages.toml index 291202c1..83d45e34 100644 --- a/languages.toml +++ b/languages.toml @@ -32,6 +32,11 @@ name = "binary" request = "launch" args = { console = "internalConsole", program = "{0}" } +[[language.debugger.templates]] +name = "attach" +request = "attach" +args = { console = "internalConsole", pid = "{0}" } + [[language]] name = "toml" scope = "source.toml" @@ -94,6 +99,11 @@ name = "binary" request = "launch" args = { console = "internalConsole", program = "main" } +[[language.debugger.templates]] +name = "attach" +request = "attach" +args = { console = "internalConsole", pid = "{0}" } + [[language]] name = "cpp" scope = "source.cpp" @@ -117,6 +127,11 @@ name = "binary" request = "launch" args = { console = "internalConsole", program = "main" } +[[language.debugger.templates]] +name = "attach" +request = "attach" +args = { console = "internalConsole", pid = "{0}" } + [[language]] name = "go" scope = "source.go" @@ -152,6 +167,11 @@ name = "test" request = "launch" args = { mode = "test", program = "{0}" } +[[language.debugger.templates]] +name = "attach" +request = "attach" +args = { mode = "local", processId = "{0}" } + [[language]] name = "javascript" scope = "source.js" |