diff options
author | Dmitry Sharshakov | 2021-08-22 12:52:05 +0000 |
---|---|---|
committer | Dmitry Sharshakov | 2021-08-22 12:52:05 +0000 |
commit | b78f70e602161328c0fc5954e1b6fb518b8bcec4 (patch) | |
tree | 17f8220e86148ac4c09554ad161ea25774c0d81f | |
parent | 53ee57f84a986c6c9d7238531fc9c87db7589072 (diff) |
show breakpoint condition in diagnostics
-rw-r--r-- | helix-term/src/ui/editor.rs | 22 |
1 files changed, 21 insertions, 1 deletions
diff --git a/helix-term/src/ui/editor.rs b/helix-term/src/ui/editor.rs index 8a6f63f9..bbac3f3f 100644 --- a/helix-term/src/ui/editor.rs +++ b/helix-term/src/ui/editor.rs @@ -110,7 +110,7 @@ impl EditorView { } } - self.render_diagnostics(doc, view, inner, surface, theme); + self.render_diagnostics(doc, view, inner, surface, theme, debugger); let area = Rect::new( view.area.x, @@ -529,6 +529,7 @@ impl EditorView { viewport: Rect, surface: &mut Surface, theme: &Theme, + debugger: &Option<helix_dap::Client>, ) { use helix_core::diagnostic::Severity; use tui::{ @@ -566,6 +567,25 @@ impl EditorView { lines.extend(text.lines); } + if let Some(debugger) = debugger { + if let Some(path) = doc.path() { + if let Some(breakpoints) = debugger.breakpoints.get(path) { + let line = doc.text().char_to_line(cursor); + if let Some(breakpoint) = breakpoints + .iter() + .find(|breakpoint| breakpoint.line - 1 == line) + { + if let Some(condition) = &breakpoint.condition { + lines.extend( + Text::styled(condition, info.add_modifier(Modifier::UNDERLINED)) + .lines, + ); + } + } + } + } + } + let paragraph = Paragraph::new(lines).alignment(Alignment::Right); let width = 80.min(viewport.width); let height = 15.min(viewport.height); |