aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorDmitry Sharshakov2021-08-24 17:27:54 +0000
committerDmitry Sharshakov2021-08-24 17:27:54 +0000
commit299da5a35b1917812a0f37e046d946031474d606 (patch)
treea7370174bfed78966a6d0b298589ce14460b62ae
parentb001008a698881991d14f28c6f8980c7d83ce385 (diff)
Support attach request
-rw-r--r--helix-term/src/commands.rs9
-rw-r--r--languages.toml20
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"