dap-basic: parse stop event
This commit is contained in:
parent
0777948fc0
commit
b3be6b269a
3 changed files with 17 additions and 3 deletions
|
@ -1,4 +1,4 @@
|
|||
use helix_dap::{Client, Event, OutputEventBody, Result, SourceBreakpoint};
|
||||
use helix_dap::{Client, Event, OutputEventBody, Result, SourceBreakpoint, StoppedEventBody};
|
||||
use serde::{Deserialize, Serialize};
|
||||
use serde_json::from_value;
|
||||
use tokio::sync::mpsc::Receiver;
|
||||
|
@ -75,7 +75,9 @@ pub async fn main() -> Result<()> {
|
|||
|
||||
println!("configurationDone: {:?}", client.configuration_done().await);
|
||||
|
||||
println!("stopped: {:?}", stopped_event.recv().await);
|
||||
let stop: StoppedEventBody =
|
||||
from_value(stopped_event.recv().await.unwrap().body.unwrap()).unwrap();
|
||||
println!("stopped: {:?}", stop);
|
||||
|
||||
println!("threads: {:#?}", client.threads().await);
|
||||
let bt = client.stack_trace(1).await.expect("expected stack trace");
|
||||
|
|
|
@ -267,6 +267,18 @@ pub struct OutputEventBody {
|
|||
pub data: Option<Value>,
|
||||
}
|
||||
|
||||
#[derive(Debug, PartialEq, Clone, Deserialize, Serialize)]
|
||||
#[serde(rename_all = "camelCase")]
|
||||
pub struct StoppedEventBody {
|
||||
pub reason: String,
|
||||
pub description: Option<String>,
|
||||
pub thread_id: Option<usize>,
|
||||
pub preserve_focus_hint: Option<bool>,
|
||||
pub text: Option<String>,
|
||||
pub all_threads_stopped: Option<bool>,
|
||||
pub hit_breakpoint_ids: Option<Vec<usize>>,
|
||||
}
|
||||
|
||||
#[derive(Debug)]
|
||||
pub struct Client {
|
||||
id: usize,
|
||||
|
|
|
@ -1,7 +1,7 @@
|
|||
mod client;
|
||||
mod transport;
|
||||
|
||||
pub use client::{Breakpoint, Client, OutputEventBody, SourceBreakpoint};
|
||||
pub use client::{Breakpoint, Client, OutputEventBody, SourceBreakpoint, StoppedEventBody};
|
||||
pub use transport::{Event, Payload, Request, Response, Transport};
|
||||
|
||||
use thiserror::Error;
|
||||
|
|
Loading…
Add table
Reference in a new issue