summaryrefslogtreecommitdiff
path: root/src/Buffer.zig
diff options
context:
space:
mode:
authorGravatar Uko Kokņevičs2021-12-31 21:02:23 +0200
committerGravatar Uko Kokņevičs2021-12-31 21:02:23 +0200
commit758a0611d098876ca93ae49179148f5ef5cf1b06 (patch)
treef9bc54241f95b7e8647c5c5a1836d7fe86a5c14e /src/Buffer.zig
parentSome changes (diff)
downloades-758a0611d098876ca93ae49179148f5ef5cf1b06.tar.gz
es-758a0611d098876ca93ae49179148f5ef5cf1b06.tar.xz
es-758a0611d098876ca93ae49179148f5ef5cf1b06.zip
Now can do soft tabs yay
Diffstat (limited to '')
-rw-r--r--src/Buffer.zig15
1 files changed, 15 insertions, 0 deletions
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 {
291 self.dirty = true; 291 self.dirty = true;
292} 292}
293 293
294pub fn insertNChars(self: *Buffer, char: u8, count: usize) !void {
295 var remaining = count;
296 while (remaining > 0) : (remaining -= 1) {
297 try self.insertChar(char);
298 }
299}
300
294pub fn insertNewline(self: *Buffer) !void { 301pub fn insertNewline(self: *Buffer) !void {
295 self.dirty = true; 302 self.dirty = true;
296 303
@@ -331,6 +338,14 @@ pub fn insertRow(self: *Buffer, at: usize, data: []const u8) !void {
331 self.dirty = true; 338 self.dirty = true;
332} 339}
333 340
341pub fn insertTab(self: *Buffer) !void {
342 if (self.config.hard_tabs) {
343 return self.insertChar('\t');
344 } else {
345 return self.insertNChars(' ', self.config.tab_stop - self.cx % self.config.tab_stop);
346 }
347}
348
334pub fn killLine(self: *Buffer) !void { 349pub fn killLine(self: *Buffer) !void {
335 return self.deleteRow(self.cy); 350 return self.deleteRow(self.cy);
336} 351}