dap: support stepIn, stepOut, next and pause commands

pull/574/head
Dmitry Sharshakov 3 years ago
parent 28658836ee
commit dfc70a12f3
No known key found for this signature in database
GPG Key ID: 471FD32E15FD8473

@ -316,4 +316,40 @@ impl Client {
let response = self.request::<requests::Variables>(args).await?;
Ok(response.variables)
}
pub async fn step_in(&mut self, thread_id: usize) -> Result<()> {
let args = requests::StepInArguments {
thread_id,
target_id: None,
granularity: None,
};
self.request::<requests::StepIn>(args).await
}
pub async fn step_out(&mut self, thread_id: usize) -> Result<()> {
let args = requests::StepOutArguments {
thread_id,
granularity: None,
};
self.request::<requests::StepOut>(args).await
}
pub async fn next(&mut self, thread_id: usize) -> Result<()> {
let args = requests::NextArguments {
thread_id,
granularity: None,
};
self.request::<requests::Next>(args).await
}
pub async fn pause(&mut self, thread_id: usize) -> Result<()> {
let args = requests::PauseArguments {
thread_id,
};
self.request::<requests::Pause>(args).await
}
}

@ -420,6 +420,70 @@ pub mod requests {
type Result = VariablesResponse;
const COMMAND: &'static str = "variables";
}
#[derive(Debug, PartialEq, Clone, Deserialize, Serialize)]
#[serde(rename_all = "camelCase")]
pub struct StepInArguments {
pub thread_id: usize,
pub target_id: Option<usize>,
pub granularity: Option<String>,
}
#[derive(Debug)]
pub enum StepIn {}
impl Request for StepIn {
type Arguments = StepInArguments;
type Result = ();
const COMMAND: &'static str = "stepIn";
}
#[derive(Debug, PartialEq, Clone, Deserialize, Serialize)]
#[serde(rename_all = "camelCase")]
pub struct StepOutArguments {
pub thread_id: usize,
pub granularity: Option<String>,
}
#[derive(Debug)]
pub enum StepOut {}
impl Request for StepOut {
type Arguments = StepOutArguments;
type Result = ();
const COMMAND: &'static str = "stepOut";
}
#[derive(Debug, PartialEq, Clone, Deserialize, Serialize)]
#[serde(rename_all = "camelCase")]
pub struct NextArguments {
pub thread_id: usize,
pub granularity: Option<String>,
}
#[derive(Debug)]
pub enum Next {}
impl Request for Next {
type Arguments = NextArguments;
type Result = ();
const COMMAND: &'static str = "next";
}
#[derive(Debug, PartialEq, Clone, Deserialize, Serialize)]
#[serde(rename_all = "camelCase")]
pub struct PauseArguments {
pub thread_id: usize,
}
#[derive(Debug)]
pub enum Pause {}
impl Request for Pause {
type Arguments = PauseArguments;
type Result = ();
const COMMAND: &'static str = "pause";
}
}
// Events

Loading…
Cancel
Save