1
0
mirror of https://github.com/helix-editor/helix synced 2024-11-10 10:34:45 +01:00

Support attach request

This commit is contained in:
Dmitry Sharshakov 2021-08-24 20:27:54 +03:00
parent b001008a69
commit 299da5a35b
No known key found for this signature in database
GPG Key ID: 471FD32E15FD8473
2 changed files with 27 additions and 2 deletions

@ -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));
}
}
}

@ -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"