@@ -467,16 +467,14 @@ impl EditorView {
467467
468468 let starting_indent =
469469 (offset.col / tab_width) + config.indent_guides.skip_levels as usize;
470− // TODO: limit to a max indent level too. It doesn't cause visual artifacts but it would avoid some
471− // extra loops if the code is deeply nested.
472470
473471 for i in starting_indent..(indent_level / tab_width) {
474− surface.set_string(
475− (viewport.x as usize + (i * tab_width) - offset.col) as u16,
476− viewport.y + line,
477− &indent_guide_char,
478− indent_guide_style,
479− );
472+ let x = (viewport.x as usize + (i * tab_width) - offset.col) as u16;
473+ let y = viewport.y + line;
474+ if !surface.in_bounds(x, y) {
475+ break;
476+ }
477+ surface.set_string(x, y, &indent_guide_char, indent_guide_style);
480478 }
481479 };
482480