dap: small TODO

imgbot
Blaž Hrastnik 3 years ago
parent 42f9718f55
commit 289303a30d

@ -35,7 +35,6 @@ pub struct Client {
pub thread_id: Option<usize>,
/// Currently active frame for the current thread.
pub active_frame: Option<usize>,
pub is_running: bool, // TODO: track is_running per thread
}
impl Client {
@ -83,7 +82,6 @@ impl Client {
thread_states: HashMap::new(),
thread_id: None,
active_frame: None,
is_running: false,
};
tokio::spawn(Self::recv(server_rx, client_rx));

@ -323,8 +323,13 @@ impl Application {
self.editor.set_status(format!("{} {}", prefix, output));
}
Event::Initialized => {
self.editor
.set_status("Debugged application started".to_owned());
// send existing breakpoints
// TODO: fetch breakpoints (in case we're attaching)
if let Ok(_) = debugger.configuration_done().await {
self.editor
.set_status("Debugged application started".to_owned());
}; // TODO: do we need to handle error?
}
ev => {
log::warn!("Unhandled event {:?}", ev);

@ -310,7 +310,6 @@ impl Command {
select_textobject_inner, "Select inside object",
dap_launch, "Launch debug target",
dap_toggle_breakpoint, "Toggle breakpoint",
dap_run, "Begin program execution",
dap_continue, "Continue program execution",
dap_pause, "Pause program execution",
dap_step_in, "Step in",

@ -100,7 +100,7 @@ fn thread_picker(cx: &mut Context, callback_fn: impl Fn(&mut Editor, &dap::Threa
let picker = Picker::new(
true,
threads,
|thread| thread.name.clone().into(),
|thread| thread.name.clone().into(), // TODO: include thread_states in the label
move |editor, thread, _action| callback_fn(editor, thread),
);
cx.push_layer(Box::new(picker))
@ -300,25 +300,6 @@ pub fn dap_toggle_breakpoint(cx: &mut Context) {
}
}
pub fn dap_run(cx: &mut Context) {
let debugger = match &mut cx.editor.debugger {
Some(debugger) => debugger,
None => return,
};
if debugger.is_running {
cx.editor
.set_status("Debuggee is already running".to_owned());
return;
}
let request = debugger.configuration_done();
if let Err(e) = block_on(request) {
cx.editor.set_error(format!("Failed to run: {:?}", e));
return;
}
debugger.is_running = true;
}
pub fn dap_continue(cx: &mut Context) {
let debugger = match &mut cx.editor.debugger {
Some(debugger) => debugger,
@ -340,10 +321,10 @@ pub fn dap_continue(cx: &mut Context) {
pub fn dap_pause(cx: &mut Context) {
thread_picker(cx, |editor, thread| {
let debugger = match &mut editor.debugger {
Some(debugger) => debugger,
None => return,
};
let debugger = match &mut editor.debugger {
Some(debugger) => debugger,
None => return,
};
let request = debugger.pause(thread.id);
// NOTE: we don't need to set active thread id here because DAP will emit a "stopped" event
if let Err(e) = block_on(request) {

@ -490,7 +490,6 @@ impl Default for Keymaps {
"d" => { "Debug"
"l" => dap_launch,
"b" => dap_toggle_breakpoint,
"r" => dap_run,
"c" => dap_continue,
"h" => dap_pause,
"i" => dap_step_in,

Loading…
Cancel
Save