aboutsummaryrefslogtreecommitdiff
path: root/helix-term/src/application.rs
diff options
context:
space:
mode:
authorBlaž Hrastnik2021-08-29 14:28:31 +0000
committerBlaž Hrastnik2021-08-29 14:32:46 +0000
commit986828e75c17662da39505c7190220b8c352bc8a (patch)
tree9773aa2ce6ab275c16249372864a44c3e19dd129 /helix-term/src/application.rs
parent03b2d81406d342460604102948305dd96c0826c7 (diff)
dap: Remap keys, match current thread behavior from dap-mode, switch-thread
Diffstat (limited to 'helix-term/src/application.rs')
-rw-r--r--helix-term/src/application.rs19
1 files changed, 6 insertions, 13 deletions
diff --git a/helix-term/src/application.rs b/helix-term/src/application.rs
index e4d48f3d..25ed8a0a 100644
--- a/helix-term/src/application.rs
+++ b/helix-term/src/application.rs
@@ -1,4 +1,4 @@
-use helix_core::{merge_toml_values, syntax, Range, Selection};
+use helix_core::{merge_toml_values, syntax, Selection};
use helix_dap::Payload;
use helix_lsp::{lsp, util::lsp_pos_to_pos, LspProgressMap};
use helix_view::{theme, Editor};
@@ -280,19 +280,13 @@ impl Application {
..
}) => {
debugger.is_running = false;
- let main = debugger.threads().await.ok().and_then(|threads| {
- // Workaround for debugging Go tests. Main thread has * in beginning of its name
- let mut main = threads.iter().find(|t| t.name.starts_with('*')).cloned();
- if main.is_none() {
- main = threads.get(0).cloned();
- }
- main
- });
- if let Some(main) = main {
- let (bt, _) = debugger.stack_trace(main.id).await.unwrap();
+ // whichever thread stops is made "current".
+ debugger.thread_id = thread_id;
+
+ if let Some(thread_id) = thread_id {
+ let (bt, _) = debugger.stack_trace(thread_id).await.unwrap();
debugger.stack_pointer = bt.get(0).cloned();
- debugger.stopped_thread = Some(main.id);
}
let scope = match thread_id {
@@ -379,7 +373,6 @@ impl Application {
.set_status("Debugged application started".to_owned());
}
Event::Continued(_) => {
- debugger.stopped_thread = None;
debugger.stack_pointer = None;
debugger.is_running = true;
}