@@ -71,6 +71,7 @@ impl EditorView {
7171 is_focused: bool,
7272 loader: &syntax::Loader,
7373 config: &helix_view::editor::Config,
74+ debugger: Option<&helix_dap::Client>,
7475 ) {
7576 let inner = view.inner_area();
7677 let area = view.area;
@@ -87,7 +88,9 @@ impl EditorView {
8788 };
8889
8990 Self::render_text_highlights(doc, view.offset, inner, surface, theme, highlights);
90− Self::render_gutter(doc, view, view.area, surface, theme, is_focused, config);
91+ Self::render_gutter(
92+ doc, view, view.area, surface, theme, is_focused, config, debugger,
93+ );
9194
9295 if is_focused {
9396 Self::render_focused_view_elements(view, doc, inner, theme, surface);
@@ -409,6 +412,7 @@ impl EditorView {
409412 theme: &Theme,
410413 is_focused: bool,
411414 config: &helix_view::editor::Config,
415+ debugger: Option<&helix_dap::Client>,
412416 ) {
413417 let text = doc.text().slice(..);
414418 let last_line = view.last_line(doc);
@@ -438,6 +442,10 @@ impl EditorView {
438442 .map(|range| range.cursor_line(text))
439443 .collect();
440444
445+ let breakpoints = doc
446+ .path()
447+ .and_then(|path| debugger.and_then(|debugger| debugger.breakpoints.get(path)));
448+
441449 for (i, line) in (view.offset.row..(last_line + 1)).enumerate() {
442450 use helix_core::diagnostic::Severity;
443451 if let Some(diagnostic) = doc.diagnostics().iter().find(|d| d.line == line) {
@@ -457,6 +465,14 @@ impl EditorView {
457465
458466 let selected = cursors.contains(&line);
459467
468+ if let Some(breakpoint) = breakpoints.and_then(|breakpoints| {
469+ breakpoints
470+ .iter()
471+ .find(|breakpoint| breakpoint.line == line)
472+ }) {
473+ surface.set_stringn(viewport.x, viewport.y + i as u16, "▲", 1, warning);
474+ }
475+
460476 let text = if line == last_line && !draw_last {
461477 " ~".into()
462478 } else {
@@ -1007,6 +1023,7 @@ impl Component for EditorView {
10071023 for (view, is_focused) in cx.editor.tree.views() {
10081024 let doc = cx.editor.document(view.doc).unwrap();
10091025 let loader = &cx.editor.syn_loader;
1026+ let debugger = cx.editor.debugger.as_ref();
10101027 self.render_view(
10111028 doc,
10121029 view,
@@ -1016,6 +1033,7 @@ impl Component for EditorView {
10161033 is_focused,
10171034 loader,
10181035 &cx.editor.config,
1036+ debugger,
10191037 );
10201038 }
10211039