diff options
Diffstat (limited to 'src')
| -rw-r--r-- | src/Buffer.zig | 10 | ||||
| -rw-r--r-- | src/KeyMap.zig | 4 | ||||
| -rw-r--r-- | src/KeyReader.zig | 1 |
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 | ||
| 137 | pub fn beginningOfBuffer(self: *Buffer) void { | ||
| 138 | self.cx = 0; | ||
| 139 | self.cy = 0; | ||
| 140 | } | ||
| 141 | |||
| 137 | pub fn cleanWhiteSpace(self: *Buffer) !void { | 142 | pub 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 | ||
| 318 | pub fn endOfBuffer(self: *Buffer) void { | ||
| 319 | self.cx = 0; | ||
| 320 | self.cy = self.rows.items.len; | ||
| 321 | } | ||
| 322 | |||
| 313 | pub fn findBackwardWordStart(self: Buffer) usize { | 323 | pub 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 | } |