diff options
Diffstat (limited to 'src/Buffer.zig')
| -rw-r--r-- | src/Buffer.zig | 15 |
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 | ||
| 294 | pub 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 | |||
| 294 | pub fn insertNewline(self: *Buffer) !void { | 301 | pub 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 | ||
| 341 | pub 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 | |||
| 334 | pub fn killLine(self: *Buffer) !void { | 349 | pub fn killLine(self: *Buffer) !void { |
| 335 | return self.deleteRow(self.cy); | 350 | return self.deleteRow(self.cy); |
| 336 | } | 351 | } |