From 758a0611d098876ca93ae49179148f5ef5cf1b06 Mon Sep 17 00:00:00 2001 From: Uko Kokņevičs Date: Fri, 31 Dec 2021 21:02:23 +0200 Subject: Now can do soft tabs yay --- src/Buffer.zig | 15 +++++++++++++++ 1 file changed, 15 insertions(+) (limited to 'src/Buffer.zig') diff --git a/src/Buffer.zig b/src/Buffer.zig index cb89935..f105c55 100644 --- a/src/Buffer.zig +++ b/src/Buffer.zig @@ -291,6 +291,13 @@ pub fn insertChar(self: *Buffer, char: u8) !void { self.dirty = true; } +pub fn insertNChars(self: *Buffer, char: u8, count: usize) !void { + var remaining = count; + while (remaining > 0) : (remaining -= 1) { + try self.insertChar(char); + } +} + pub fn insertNewline(self: *Buffer) !void { self.dirty = true; @@ -331,6 +338,14 @@ pub fn insertRow(self: *Buffer, at: usize, data: []const u8) !void { self.dirty = true; } +pub fn insertTab(self: *Buffer) !void { + if (self.config.hard_tabs) { + return self.insertChar('\t'); + } else { + return self.insertNChars(' ', self.config.tab_stop - self.cx % self.config.tab_stop); + } +} + pub fn killLine(self: *Buffer) !void { return self.deleteRow(self.cy); } -- cgit v1.2.3