diff options
-rw-r--r-- | helix-term/src/application.rs | 26 | ||||
-rw-r--r-- | helix-term/src/commands/dap.rs | 7 |
2 files changed, 18 insertions, 15 deletions
diff --git a/helix-term/src/application.rs b/helix-term/src/application.rs index 3d6d00fe..b6753ec5 100644 --- a/helix-term/src/application.rs +++ b/helix-term/src/application.rs @@ -388,18 +388,20 @@ impl Application { } Event::Breakpoint(events::Breakpoint { reason, breakpoint }) => match &reason[..] { "new" => { - self.editor - .breakpoints - .entry(breakpoint.source.unwrap().path.unwrap()) // TODO: no unwraps - .or_default() - .push(Breakpoint { - id: breakpoint.id, - verified: breakpoint.verified, - message: breakpoint.message, - line: breakpoint.line.unwrap().saturating_sub(1), // TODO: no unwrap - column: breakpoint.column, - ..Default::default() - }); + if let Some(source) = breakpoint.source { + self.editor + .breakpoints + .entry(source.path.unwrap()) // TODO: no unwraps + .or_default() + .push(Breakpoint { + id: breakpoint.id, + verified: breakpoint.verified, + message: breakpoint.message, + line: breakpoint.line.unwrap().saturating_sub(1), // TODO: no unwrap + column: breakpoint.column, + ..Default::default() + }); + } } "changed" => { for breakpoints in self.editor.breakpoints.values_mut() { diff --git a/helix-term/src/commands/dap.rs b/helix-term/src/commands/dap.rs index 1cb5a35a..00305fe2 100644 --- a/helix-term/src/commands/dap.rs +++ b/helix-term/src/commands/dap.rs @@ -78,9 +78,10 @@ pub fn jump_to_stack_frame(editor: &mut Editor, frame: &helix_dap::StackFrame) { return; }; - editor - .open(path, helix_view::editor::Action::Replace) - .unwrap(); // TODO: there should be no unwrapping! + if let Err(e) = editor.open(path, helix_view::editor::Action::Replace) { + editor.set_error(format!("Unable to jump to stack frame: {}", e)); + return; + } let (view, doc) = current!(editor); |