From f8f2e8e3bedb94833bbe6cab9c435b33cfbfea14 Mon Sep 17 00:00:00 2001 From: Uko Kokņevičs Date: Mon, 3 Jan 2022 03:16:31 +0200 Subject: a bit improved key map --- src/Buffer.zig | 11 ++++++++--- 1 file changed, 8 insertions(+), 3 deletions(-) (limited to 'src/Buffer.zig') diff --git a/src/Buffer.zig b/src/Buffer.zig index 5bf319c..d0546c0 100644 --- a/src/Buffer.zig +++ b/src/Buffer.zig @@ -394,7 +394,8 @@ pub fn nextLine(self: *Buffer) void { } } -pub fn pageDown(self: *Buffer, screenrows: usize) void { +pub fn pageDown(self: *Buffer, editor: Editor) void { + const screenrows = editor.screenrows; self.cy = std.math.clamp( self.rowoff + screenrows - 1 - self.config.page_overlap, 0, @@ -406,7 +407,8 @@ pub fn pageDown(self: *Buffer, screenrows: usize) void { } } -pub fn pageUp(self: *Buffer, screenrows: usize) void { +pub fn pageUp(self: *Buffer, editor: Editor) void { + const screenrows = editor.screenrows; self.cy = std.math.min(self.rows.items.len, self.rowoff + self.config.page_overlap); var i: usize = 0; while (i < screenrows) : (i += 1) { @@ -423,8 +425,11 @@ pub fn previousLine(self: *Buffer) void { self.cx = self.rows.items[self.cy].rxToCx(self.config, self.rx); } -pub fn recenterTopBottom(self: *Buffer, screenrows: usize) void { +pub fn recenterTopBottom(self: *Buffer, editor: *Editor) !void { // TODO: Currently only recenters + try editor.refreshWindowSize(); + + const screenrows = editor.screenrows; if (self.cy >= screenrows / 2) { self.rowoff = self.cy - screenrows / 2; } else { -- cgit v1.2.3