on master help sign in
compat: make thread IDs signed
cf7237dDmitry Sharshakov
helix-dap/src/client.rs+9−9
@@ -28,9 +28,9 @@ pub struct Client {
28 request_counter: AtomicU64,
28 request_counter: AtomicU64,
29 pub caps: Option<DebuggerCapabilities>,
29 pub caps: Option<DebuggerCapabilities>,
30 // thread_id -> frames
30 // thread_id -> frames
31− pub stack_frames: HashMap<usize, Vec<StackFrame>>,
31+ pub stack_frames: HashMap<isize, Vec<StackFrame>>,
32− pub thread_states: HashMap<usize, String>,
32+ pub thread_states: HashMap<isize, String>,
33− pub thread_id: Option<usize>,
33+ pub thread_id: Option<isize>,
34 /// Currently active frame for the current thread.
34 /// Currently active frame for the current thread.
35 pub active_frame: Option<usize>,
35 pub active_frame: Option<usize>,
36}
36}
@@ -298,7 +298,7 @@ impl Client {
298 self.request::<requests::ConfigurationDone>(()).await
298 self.request::<requests::ConfigurationDone>(()).await
299 }
299 }
300
300
301− pub async fn continue_thread(&mut self, thread_id: usize) -> Result<Option<bool>> {
301+ pub async fn continue_thread(&mut self, thread_id: isize) -> Result<Option<bool>> {
302 let args = requests::ContinueArguments { thread_id };
302 let args = requests::ContinueArguments { thread_id };
303
303
304 let response = self.request::<requests::Continue>(args).await?;
304 let response = self.request::<requests::Continue>(args).await?;
@@ -307,7 +307,7 @@ impl Client {
307
307
308 pub async fn stack_trace(
308 pub async fn stack_trace(
309 &mut self,
309 &mut self,
310− thread_id: usize,
310+ thread_id: isize,
311 ) -> Result<(Vec<StackFrame>, Option<usize>)> {
311 ) -> Result<(Vec<StackFrame>, Option<usize>)> {
312 let args = requests::StackTraceArguments {
312 let args = requests::StackTraceArguments {
313 thread_id,
313 thread_id,
@@ -345,7 +345,7 @@ impl Client {
345 Ok(response.variables)
345 Ok(response.variables)
346 }
346 }
347
347
348− pub async fn step_in(&mut self, thread_id: usize) -> Result<()> {
348+ pub async fn step_in(&mut self, thread_id: isize) -> Result<()> {
349 let args = requests::StepInArguments {
349 let args = requests::StepInArguments {
350 thread_id,
350 thread_id,
351 target_id: None,
351 target_id: None,
@@ -355,7 +355,7 @@ impl Client {
355 self.request::<requests::StepIn>(args).await
355 self.request::<requests::StepIn>(args).await
356 }
356 }
357
357
358− pub async fn step_out(&mut self, thread_id: usize) -> Result<()> {
358+ pub async fn step_out(&mut self, thread_id: isize) -> Result<()> {
359 let args = requests::StepOutArguments {
359 let args = requests::StepOutArguments {
360 thread_id,
360 thread_id,
361 granularity: None,
361 granularity: None,
@@ -364,7 +364,7 @@ impl Client {
364 self.request::<requests::StepOut>(args).await
364 self.request::<requests::StepOut>(args).await
365 }
365 }
366
366
367− pub async fn next(&mut self, thread_id: usize) -> Result<()> {
367+ pub async fn next(&mut self, thread_id: isize) -> Result<()> {
368 let args = requests::NextArguments {
368 let args = requests::NextArguments {
369 thread_id,
369 thread_id,
370 granularity: None,
370 granularity: None,
@@ -373,7 +373,7 @@ impl Client {
373 self.request::<requests::Next>(args).await
373 self.request::<requests::Next>(args).await
374 }
374 }
375
375
376− pub async fn pause(&mut self, thread_id: usize) -> Result<()> {
376+ pub async fn pause(&mut self, thread_id: isize) -> Result<()> {
377 let args = requests::PauseArguments { thread_id };
377 let args = requests::PauseArguments { thread_id };
378
378
379 self.request::<requests::Pause>(args).await
379 self.request::<requests::Pause>(args).await
helix-dap/src/types.rs+10−10
@@ -157,7 +157,7 @@ pub struct StackFrame {
157#[derive(Debug, PartialEq, Clone, Deserialize, Serialize)]
157#[derive(Debug, PartialEq, Clone, Deserialize, Serialize)]
158#[serde(rename_all = "camelCase")]
158#[serde(rename_all = "camelCase")]
159pub struct Thread {
159pub struct Thread {
160− pub id: usize,
160+ pub id: isize,
161 pub name: String,
161 pub name: String,
162}
162}
163
163
@@ -317,7 +317,7 @@ pub mod requests {
317 #[derive(Debug, Default, PartialEq, Clone, Deserialize, Serialize)]
317 #[derive(Debug, Default, PartialEq, Clone, Deserialize, Serialize)]
318 #[serde(rename_all = "camelCase")]
318 #[serde(rename_all = "camelCase")]
319 pub struct ContinueArguments {
319 pub struct ContinueArguments {
320− pub thread_id: usize,
320+ pub thread_id: isize,
321 }
321 }
322
322
323 #[derive(Debug, PartialEq, Clone, Deserialize, Serialize)]
323 #[derive(Debug, PartialEq, Clone, Deserialize, Serialize)]
@@ -338,7 +338,7 @@ pub mod requests {
338 #[derive(Debug, Default, PartialEq, Clone, Deserialize, Serialize)]
338 #[derive(Debug, Default, PartialEq, Clone, Deserialize, Serialize)]
339 #[serde(rename_all = "camelCase")]
339 #[serde(rename_all = "camelCase")]
340 pub struct StackTraceArguments {
340 pub struct StackTraceArguments {
341− pub thread_id: usize,
341+ pub thread_id: isize,
342 pub start_frame: Option<usize>,
342 pub start_frame: Option<usize>,
343 pub levels: Option<usize>,
343 pub levels: Option<usize>,
344 pub format: Option<StackFrameFormat>,
344 pub format: Option<StackFrameFormat>,
@@ -424,7 +424,7 @@ pub mod requests {
424 #[derive(Debug, PartialEq, Clone, Deserialize, Serialize)]
424 #[derive(Debug, PartialEq, Clone, Deserialize, Serialize)]
425 #[serde(rename_all = "camelCase")]
425 #[serde(rename_all = "camelCase")]
426 pub struct StepInArguments {
426 pub struct StepInArguments {
427− pub thread_id: usize,
427+ pub thread_id: isize,
428 pub target_id: Option<usize>,
428 pub target_id: Option<usize>,
429 pub granularity: Option<String>,
429 pub granularity: Option<String>,
430 }
430 }
@@ -441,7 +441,7 @@ pub mod requests {
441 #[derive(Debug, PartialEq, Clone, Deserialize, Serialize)]
441 #[derive(Debug, PartialEq, Clone, Deserialize, Serialize)]
442 #[serde(rename_all = "camelCase")]
442 #[serde(rename_all = "camelCase")]
443 pub struct StepOutArguments {
443 pub struct StepOutArguments {
444− pub thread_id: usize,
444+ pub thread_id: isize,
445 pub granularity: Option<String>,
445 pub granularity: Option<String>,
446 }
446 }
447
447
@@ -457,7 +457,7 @@ pub mod requests {
457 #[derive(Debug, PartialEq, Clone, Deserialize, Serialize)]
457 #[derive(Debug, PartialEq, Clone, Deserialize, Serialize)]
458 #[serde(rename_all = "camelCase")]
458 #[serde(rename_all = "camelCase")]
459 pub struct NextArguments {
459 pub struct NextArguments {
460− pub thread_id: usize,
460+ pub thread_id: isize,
461 pub granularity: Option<String>,
461 pub granularity: Option<String>,
462 }
462 }
463
463
@@ -473,7 +473,7 @@ pub mod requests {
473 #[derive(Debug, PartialEq, Clone, Deserialize, Serialize)]
473 #[derive(Debug, PartialEq, Clone, Deserialize, Serialize)]
474 #[serde(rename_all = "camelCase")]
474 #[serde(rename_all = "camelCase")]
475 pub struct PauseArguments {
475 pub struct PauseArguments {
476− pub thread_id: usize,
476+ pub thread_id: isize,
477 }
477 }
478
478
479 #[derive(Debug)]
479 #[derive(Debug)]
@@ -551,7 +551,7 @@ pub mod events {
551 pub struct Stopped {
551 pub struct Stopped {
552 pub reason: String,
552 pub reason: String,
553 pub description: Option<String>,
553 pub description: Option<String>,
554− pub thread_id: Option<usize>,
554+ pub thread_id: Option<isize>,
555 pub preserve_focus_hint: Option<bool>,
555 pub preserve_focus_hint: Option<bool>,
556 pub text: Option<String>,
556 pub text: Option<String>,
557 pub all_threads_stopped: Option<bool>,
557 pub all_threads_stopped: Option<bool>,
@@ -561,7 +561,7 @@ pub mod events {
561 #[derive(Debug, PartialEq, Clone, Deserialize, Serialize)]
561 #[derive(Debug, PartialEq, Clone, Deserialize, Serialize)]
562 #[serde(rename_all = "camelCase")]
562 #[serde(rename_all = "camelCase")]
563 pub struct Continued {
563 pub struct Continued {
564− pub thread_id: usize,
564+ pub thread_id: isize,
565 pub all_threads_continued: Option<bool>,
565 pub all_threads_continued: Option<bool>,
566 }
566 }
567
567
@@ -581,7 +581,7 @@ pub mod events {
581 #[serde(rename_all = "camelCase")]
581 #[serde(rename_all = "camelCase")]
582 pub struct Thread {
582 pub struct Thread {
583 pub reason: String,
583 pub reason: String,
584− pub thread_id: usize,
584+ pub thread_id: isize,
585 }
585 }
586
586
587 #[derive(Debug, PartialEq, Clone, Deserialize, Serialize)]
587 #[derive(Debug, PartialEq, Clone, Deserialize, Serialize)]
helix-term/src/commands/dap.rs+1−1
@@ -29,7 +29,7 @@ pub fn resume_application(debugger: &mut Client) {
29 debugger.thread_id = None;
29 debugger.thread_id = None;
30}
30}
31
31
32−pub async fn select_thread_id(editor: &mut Editor, thread_id: usize, force: bool) {
32+pub async fn select_thread_id(editor: &mut Editor, thread_id: isize, force: bool) {
33 let debugger = match &mut editor.debugger {
33 let debugger = match &mut editor.debugger {
34 Some(debugger) => debugger,
34 Some(debugger) => debugger,
35 None => return,
35 None => return,