From cd1d9f30424b97197dfba8595a8bfd12615177ab Mon Sep 17 00:00:00 2001 From: CJ van den Berg Date: Mon, 3 Nov 2025 22:37:12 +0100 Subject: [PATCH 1/2] fix: don't clip leading whitespace based on cursor column in smart_insert_line --- src/tui/editor.zig | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/tui/editor.zig b/src/tui/editor.zig index f725fce..71e1b79 100644 --- a/src/tui/editor.zig +++ b/src/tui/editor.zig @@ -4522,7 +4522,7 @@ pub const Editor = struct { fn cursel_smart_insert_line(self: *Self, root: Buffer.Root, cursel: *CurSel, b_allocator: std.mem.Allocator, mode: WSCollapseMode) !Buffer.Root { const row = cursel.cursor.row; - const leading_ws = @min(find_first_non_ws(root, row, self.metrics), cursel.cursor.col); + const leading_ws = find_first_non_ws(root, row, self.metrics); var sfa = std.heap.stackFallback(512, self.allocator); const sfa_allocator = sfa.get(); var stream: std.Io.Writer.Allocating = .init(sfa_allocator); From 0bef3ce2e18296b9d4364df53c239e2c71d34211 Mon Sep 17 00:00:00 2001 From: CJ van den Berg Date: Mon, 3 Nov 2025 22:43:25 +0100 Subject: [PATCH 2/2] fix: do not indent blank lines --- src/tui/editor.zig | 2 ++ 1 file changed, 2 insertions(+) diff --git a/src/tui/editor.zig b/src/tui/editor.zig index 71e1b79..394dd91 100644 --- a/src/tui/editor.zig +++ b/src/tui/editor.zig @@ -3759,6 +3759,8 @@ pub const Editor = struct { var cursel: CurSel = .{}; cursel.cursor = cursor; try move_cursor_begin(root, &cursel.cursor, self.metrics); + if (root.line_width(cursel.cursor.row, self.metrics) catch 0 == 0) + return root; switch (self.indent_mode) { .spaces, .auto => { const cols = self.indent_size - find_first_non_ws(root, cursel.cursor.row, self.metrics) % self.indent_size;