summaryrefslogtreecommitdiff
path: root/src
diff options
context:
space:
mode:
Diffstat (limited to 'src')
-rw-r--r--src/Buffer.zig10
-rw-r--r--src/KeyMap.zig4
-rw-r--r--src/KeyReader.zig1
3 files changed, 15 insertions, 0 deletions
diff --git a/src/Buffer.zig b/src/Buffer.zig
index 8cf7dc0..555ad1d 100644
--- a/src/Buffer.zig
+++ b/src/Buffer.zig
@@ -134,6 +134,11 @@ pub fn backwardWord(self: *Buffer) void {
134 } 134 }
135} 135}
136 136
137pub fn beginningOfBuffer(self: *Buffer) void {
138 self.cx = 0;
139 self.cy = 0;
140}
141
137pub fn cleanWhiteSpace(self: *Buffer) !void { 142pub fn cleanWhiteSpace(self: *Buffer) !void {
138 for (self.rows.items) |*row| { 143 for (self.rows.items) |*row| {
139 try row.cleanWhiteSpace(self); 144 try row.cleanWhiteSpace(self);
@@ -310,6 +315,11 @@ pub fn drawStatusBar(self: Buffer, writer: anytype, screencols: usize) !void {
310 try writer.writeAll("\x1b[m\r\n"); 315 try writer.writeAll("\x1b[m\r\n");
311} 316}
312 317
318pub fn endOfBuffer(self: *Buffer) void {
319 self.cx = 0;
320 self.cy = self.rows.items.len;
321}
322
313pub fn findBackwardWordStart(self: Buffer) usize { 323pub fn findBackwardWordStart(self: Buffer) usize {
314 if (self.cy == self.rows.items.len) { 324 if (self.cy == self.rows.items.len) {
315 return 0; 325 return 0;
diff --git a/src/KeyMap.zig b/src/KeyMap.zig
index 15f5711..110bc0b 100644
--- a/src/KeyMap.zig
+++ b/src/KeyMap.zig
@@ -115,6 +115,8 @@ pub fn defaultMap(allocator: Allocator) !KeyMap {
115 try map.bind(&.{Key.meta(Key.backspace)}, Buffer.backwardDeleteWord); 115 try map.bind(&.{Key.meta(Key.backspace)}, Buffer.backwardDeleteWord);
116 try map.bind(&.{Key.meta(Key.delete)}, Buffer.deleteWord); 116 try map.bind(&.{Key.meta(Key.delete)}, Buffer.deleteWord);
117 try map.bind(&.{Key.meta(Key.down)}, Buffer.forwardParagraph); 117 try map.bind(&.{Key.meta(Key.down)}, Buffer.forwardParagraph);
118 try map.bind(&.{Key.meta(Key.end)}, Buffer.endOfBuffer);
119 try map.bind(&.{Key.meta(Key.home)}, Buffer.beginningOfBuffer);
118 try map.bind(&.{Key.meta(Key.left)}, Buffer.backwardWord); 120 try map.bind(&.{Key.meta(Key.left)}, Buffer.backwardWord);
119 try map.bind(&.{Key.meta(Key.right)}, Buffer.forwardWord); 121 try map.bind(&.{Key.meta(Key.right)}, Buffer.forwardWord);
120 try map.bind(&.{Key.meta(Key.up)}, Buffer.backwardParagraph); 122 try map.bind(&.{Key.meta(Key.up)}, Buffer.backwardParagraph);
@@ -131,6 +133,8 @@ pub fn defaultMap(allocator: Allocator) !KeyMap {
131 try map.bind(&.{Key.ctrl(Key.backspace)}, Buffer.backwardDeleteWord); 133 try map.bind(&.{Key.ctrl(Key.backspace)}, Buffer.backwardDeleteWord);
132 try map.bind(&.{Key.ctrl(Key.delete)}, Buffer.deleteWord); 134 try map.bind(&.{Key.ctrl(Key.delete)}, Buffer.deleteWord);
133 try map.bind(&.{Key.ctrl(Key.down)}, Buffer.forwardParagraph); 135 try map.bind(&.{Key.ctrl(Key.down)}, Buffer.forwardParagraph);
136 try map.bind(&.{Key.ctrl(Key.end)}, Buffer.endOfBuffer);
137 try map.bind(&.{Key.ctrl(Key.home)}, Buffer.beginningOfBuffer);
134 try map.bind(&.{Key.ctrl(Key.left)}, Buffer.backwardWord); 138 try map.bind(&.{Key.ctrl(Key.left)}, Buffer.backwardWord);
135 try map.bind(&.{Key.ctrl(Key.right)}, Buffer.forwardWord); 139 try map.bind(&.{Key.ctrl(Key.right)}, Buffer.forwardWord);
136 try map.bind(&.{Key.ctrl(Key.up)}, Buffer.backwardParagraph); 140 try map.bind(&.{Key.ctrl(Key.up)}, Buffer.backwardParagraph);
diff --git a/src/KeyReader.zig b/src/KeyReader.zig
index 5ddef82..64536d1 100644
--- a/src/KeyReader.zig
+++ b/src/KeyReader.zig
@@ -75,6 +75,7 @@ fn modKey(key: Key, num: usize) ?Key {
75 6 => Key.shift(Key.ctrl(key)), 75 6 => Key.shift(Key.ctrl(key)),
76 7 => Key.meta(Key.ctrl(key)), 76 7 => Key.meta(Key.ctrl(key)),
77 8 => Key.shift(Key.meta(Key.ctrl(key))), 77 8 => Key.shift(Key.meta(Key.ctrl(key))),
78 9 => Key.meta(key),
78 else => null, 79 else => null,
79 }; 80 };
80} 81}