diff --git a/src/config.zig b/src/config.zig index 96b00c1..6468324 100644 --- a/src/config.zig +++ b/src/config.zig @@ -114,6 +114,7 @@ pub const WhitespaceMode = enum { leading, eol, tabs, + external, visible, full, none, diff --git a/src/tui/editor.zig b/src/tui/editor.zig index 09217e3..5178b16 100644 --- a/src/tui/editor.zig +++ b/src/tui/editor.zig @@ -1562,6 +1562,18 @@ pub const Editor = struct { cell.cell.char.grapheme = c; } }, + .external => { + if (leading) { + if (get_whitespace_char(cell_type, next_cell_type)) |c| + cell.cell.char.grapheme = c; + } + if (cell_type == .eol) + cell.cell.char.grapheme = char.eol; + if (cell_type == .tab or cell_type == .extension) { + if (get_whitespace_char(cell_type, next_cell_type)) |c| + cell.cell.char.grapheme = c; + } + }, .visible => { if (get_whitespace_char(cell_type, next_cell_type)) |c| cell.cell.char.grapheme = c; diff --git a/src/tui/tui.zig b/src/tui/tui.zig index 546bfab..a61f193 100644 --- a/src/tui/tui.zig +++ b/src/tui/tui.zig @@ -1002,7 +1002,8 @@ const cmds = struct { .indent => .leading, .leading => .eol, .eol => .tabs, - .tabs => .visible, + .tabs => .external, + .external => .visible, .visible => .full, .full => .none, };