feat: implement scroll_view_center_cycle to replace cmd_cycle3
This commit is contained in:
parent
43c49125f8
commit
e172590ba8
13 changed files with 33 additions and 95 deletions
|
@ -13,7 +13,7 @@
|
||||||
["ctrl+o", "open_file"],
|
["ctrl+o", "open_file"],
|
||||||
["ctrl+w", "close_file"],
|
["ctrl+w", "close_file"],
|
||||||
["ctrl+s", "save_file"],
|
["ctrl+s", "save_file"],
|
||||||
["ctrl+l", "cmd_cycle3", "scroll_view_center", "scroll_view_top", "scroll_view_bottom"],
|
["ctrl+l", "scroll_view_center_cycle"],
|
||||||
["ctrl+n", "goto_next_match"],
|
["ctrl+n", "goto_next_match"],
|
||||||
["ctrl+p", "goto_prev_match"],
|
["ctrl+p", "goto_prev_match"],
|
||||||
["ctrl+b", "move_to_char", false],
|
["ctrl+b", "move_to_char", false],
|
||||||
|
@ -245,7 +245,7 @@
|
||||||
["ctrl+u", "mini_mode_reset"],
|
["ctrl+u", "mini_mode_reset"],
|
||||||
["ctrl+g", "mini_mode_cancel"],
|
["ctrl+g", "mini_mode_cancel"],
|
||||||
["ctrl+c", "mini_mode_cancel"],
|
["ctrl+c", "mini_mode_cancel"],
|
||||||
["ctrl+l", "scroll_view_center"],
|
["ctrl+l", "scroll_view_center_cycle"],
|
||||||
["ctrl+space", "mini_mode_cancel"],
|
["ctrl+space", "mini_mode_cancel"],
|
||||||
|
|
||||||
["escape", "mini_mode_cancel"],
|
["escape", "mini_mode_cancel"],
|
||||||
|
@ -278,7 +278,7 @@
|
||||||
["ctrl+u", "mini_mode_reset"],
|
["ctrl+u", "mini_mode_reset"],
|
||||||
["ctrl+g", "mini_mode_cancel"],
|
["ctrl+g", "mini_mode_cancel"],
|
||||||
["ctrl+c", "mini_mode_cancel"],
|
["ctrl+c", "mini_mode_cancel"],
|
||||||
["ctrl+l", "scroll_view_center"],
|
["ctrl+l", "scroll_view_center_cycle"],
|
||||||
["ctrl+i", "mini_mode_insert_bytes", "\t"],
|
["ctrl+i", "mini_mode_insert_bytes", "\t"],
|
||||||
["ctrl+space", "mini_mode_cancel"],
|
["ctrl+space", "mini_mode_cancel"],
|
||||||
["ctrl+backspace", "mini_mode_delete_to_previous_path_segment"],
|
["ctrl+backspace", "mini_mode_delete_to_previous_path_segment"],
|
||||||
|
@ -307,7 +307,7 @@
|
||||||
["ctrl+u", "mini_mode_reset"],
|
["ctrl+u", "mini_mode_reset"],
|
||||||
["ctrl+g", "exit_mini_mode"],
|
["ctrl+g", "exit_mini_mode"],
|
||||||
["ctrl+c", "exit_mini_mode"],
|
["ctrl+c", "exit_mini_mode"],
|
||||||
["ctrl+l", "scroll_view_center"],
|
["ctrl+l", "scroll_view_center_cycle"],
|
||||||
["ctrl+f", "goto_next_match"],
|
["ctrl+f", "goto_next_match"],
|
||||||
["ctrl+n", "goto_next_match"],
|
["ctrl+n", "goto_next_match"],
|
||||||
["ctrl+p", "goto_prev_match"],
|
["ctrl+p", "goto_prev_match"],
|
||||||
|
@ -344,7 +344,7 @@
|
||||||
["ctrl+u", "mini_mode_reset"],
|
["ctrl+u", "mini_mode_reset"],
|
||||||
["ctrl+g", "mini_mode_cancel"],
|
["ctrl+g", "mini_mode_cancel"],
|
||||||
["ctrl+c", "mini_mode_cancel"],
|
["ctrl+c", "mini_mode_cancel"],
|
||||||
["ctrl+l", "scroll_view_center"],
|
["ctrl+l", "scroll_view_center_cycle"],
|
||||||
["ctrl+f", "goto_next_match"],
|
["ctrl+f", "goto_next_match"],
|
||||||
["ctrl+n", "goto_next_match"],
|
["ctrl+n", "goto_next_match"],
|
||||||
["ctrl+p", "goto_prev_match"],
|
["ctrl+p", "goto_prev_match"],
|
||||||
|
|
|
@ -74,7 +74,7 @@ fn map_press(self: *Self, keypress: input.Key, egc: input.Key, modifiers: input.
|
||||||
'O' => self.cmd("open_file", .{}),
|
'O' => self.cmd("open_file", .{}),
|
||||||
'W' => self.cmd("close_file", .{}),
|
'W' => self.cmd("close_file", .{}),
|
||||||
'S' => self.cmd("save_file", .{}),
|
'S' => self.cmd("save_file", .{}),
|
||||||
'L' => self.cmd_cycle3("scroll_view_center", "scroll_view_top", "scroll_view_bottom", .{}),
|
'L' => self.cmd("scroll_view_center_cycle", .{}),
|
||||||
'N' => self.cmd("goto_next_match", .{}),
|
'N' => self.cmd("goto_next_match", .{}),
|
||||||
'P' => self.cmd("goto_prev_match", .{}),
|
'P' => self.cmd("goto_prev_match", .{}),
|
||||||
'B' => self.cmd("move_to_char", command.fmt(.{false})),
|
'B' => self.cmd("move_to_char", command.fmt(.{false})),
|
||||||
|
@ -289,15 +289,6 @@ fn cmd(self: *Self, name_: []const u8, ctx: command.Context) tp.result {
|
||||||
try command.executeName(name_, ctx);
|
try command.executeName(name_, ctx);
|
||||||
}
|
}
|
||||||
|
|
||||||
fn cmd_cycle3(self: *Self, name1: []const u8, name2: []const u8, name3: []const u8, ctx: command.Context) tp.result {
|
|
||||||
return if (std.mem.eql(u8, self.last_cmd, name2))
|
|
||||||
self.cmd(name3, ctx)
|
|
||||||
else if (std.mem.eql(u8, self.last_cmd, name1))
|
|
||||||
self.cmd(name2, ctx)
|
|
||||||
else
|
|
||||||
self.cmd(name1, ctx);
|
|
||||||
}
|
|
||||||
|
|
||||||
fn cmd_async(self: *Self, name_: []const u8) tp.result {
|
fn cmd_async(self: *Self, name_: []const u8) tp.result {
|
||||||
self.last_cmd = name_;
|
self.last_cmd = name_;
|
||||||
return tp.self_pid().send(.{ "cmd", name_ });
|
return tp.self_pid().send(.{ "cmd", name_ });
|
||||||
|
@ -382,9 +373,7 @@ pub const hints = keybind.KeybindHints.initComptime(.{
|
||||||
.{ "references", "S-F12" },
|
.{ "references", "S-F12" },
|
||||||
.{ "save_as", "C-S-s" },
|
.{ "save_as", "C-S-s" },
|
||||||
.{ "save_file", "C-s" },
|
.{ "save_file", "C-s" },
|
||||||
.{ "scroll_view_bottom", "C-l" },
|
.{ "scroll_view_center_cycle", "C-l" },
|
||||||
.{ "scroll_view_center", "C-l" },
|
|
||||||
.{ "scroll_view_top", "C-l" },
|
|
||||||
.{ "select_all", "C-a" },
|
.{ "select_all", "C-a" },
|
||||||
.{ "select_buffer_begin", "C-S-home" },
|
.{ "select_buffer_begin", "C-S-home" },
|
||||||
.{ "select_buffer_end", "C-S-end" },
|
.{ "select_buffer_end", "C-S-end" },
|
||||||
|
|
|
@ -79,7 +79,7 @@ fn map_press(self: *Self, keypress: input.Key, egc: input.Key, modifiers: input.
|
||||||
'Q' => self.cmd("quit", .{}),
|
'Q' => self.cmd("quit", .{}),
|
||||||
'W' => self.cmd("close_file", .{}),
|
'W' => self.cmd("close_file", .{}),
|
||||||
'S' => self.cmd("save_file", .{}),
|
'S' => self.cmd("save_file", .{}),
|
||||||
'L' => self.cmd_cycle3("scroll_view_center", "scroll_view_top", "scroll_view_bottom", .{}),
|
'L' => self.cmd("scroll_view_center_cycle", .{}),
|
||||||
'N' => self.cmd("goto_next_match", .{}),
|
'N' => self.cmd("goto_next_match", .{}),
|
||||||
'P' => self.cmd("goto_prev_match", .{}),
|
'P' => self.cmd("goto_prev_match", .{}),
|
||||||
'B' => self.cmd("move_to_char", command.fmt(.{false})),
|
'B' => self.cmd("move_to_char", command.fmt(.{false})),
|
||||||
|
@ -272,15 +272,6 @@ fn cmd(self: *Self, name_: []const u8, ctx: command.Context) tp.result {
|
||||||
try command.executeName(name_, ctx);
|
try command.executeName(name_, ctx);
|
||||||
}
|
}
|
||||||
|
|
||||||
fn cmd_cycle3(self: *Self, name1: []const u8, name2: []const u8, name3: []const u8, ctx: command.Context) tp.result {
|
|
||||||
return if (std.mem.eql(u8, self.last_cmd, name2))
|
|
||||||
self.cmd(name3, ctx)
|
|
||||||
else if (std.mem.eql(u8, self.last_cmd, name1))
|
|
||||||
self.cmd(name2, ctx)
|
|
||||||
else
|
|
||||||
self.cmd(name1, ctx);
|
|
||||||
}
|
|
||||||
|
|
||||||
fn cmd_async(self: *Self, name_: []const u8) tp.result {
|
fn cmd_async(self: *Self, name_: []const u8) tp.result {
|
||||||
self.last_cmd = name_;
|
self.last_cmd = name_;
|
||||||
return tp.self_pid().send(.{ "cmd", name_ });
|
return tp.self_pid().send(.{ "cmd", name_ });
|
||||||
|
|
|
@ -489,15 +489,6 @@ fn cmd_count(self: *Self, name_: []const u8, ctx: command.Context) tp.result {
|
||||||
try command.executeName(name_, ctx);
|
try command.executeName(name_, ctx);
|
||||||
}
|
}
|
||||||
|
|
||||||
fn cmd_cycle3(self: *Self, name1: []const u8, name2: []const u8, name3: []const u8, ctx: command.Context) tp.result {
|
|
||||||
return if (std.mem.eql(u8, self.last_cmd, name2))
|
|
||||||
self.cmd(name3, ctx)
|
|
||||||
else if (std.mem.eql(u8, self.last_cmd, name1))
|
|
||||||
self.cmd(name2, ctx)
|
|
||||||
else
|
|
||||||
self.cmd(name1, ctx);
|
|
||||||
}
|
|
||||||
|
|
||||||
fn cmd_async(self: *Self, name_: []const u8) tp.result {
|
fn cmd_async(self: *Self, name_: []const u8) tp.result {
|
||||||
self.last_cmd = name_;
|
self.last_cmd = name_;
|
||||||
return tp.self_pid().send(.{ "cmd", name_ });
|
return tp.self_pid().send(.{ "cmd", name_ });
|
||||||
|
@ -600,9 +591,7 @@ pub const hints = keybind.KeybindHints.initComptime(.{
|
||||||
.{ "quit_without_saving", "C-S-q" },
|
.{ "quit_without_saving", "C-S-q" },
|
||||||
.{ "redo", "C-S-z, C-y" },
|
.{ "redo", "C-S-z, C-y" },
|
||||||
.{ "save_file", "C-s" },
|
.{ "save_file", "C-s" },
|
||||||
.{ "scroll_view_bottom", "C-l, z z" },
|
.{ "scroll_view_center_cycle", "C-l, z z" },
|
||||||
.{ "scroll_view_center", "C-l, z z" },
|
|
||||||
.{ "scroll_view_top", "C-l, z z" },
|
|
||||||
.{ "select_all", "C-a" },
|
.{ "select_all", "C-a" },
|
||||||
.{ "select_buffer_begin", "C-S-home" },
|
.{ "select_buffer_begin", "C-S-home" },
|
||||||
.{ "select_buffer_end", "C-S-end" },
|
.{ "select_buffer_end", "C-S-end" },
|
||||||
|
|
|
@ -489,15 +489,6 @@ fn cmd_count(self: *Self, name_: []const u8, ctx: command.Context) tp.result {
|
||||||
try command.executeName(name_, ctx);
|
try command.executeName(name_, ctx);
|
||||||
}
|
}
|
||||||
|
|
||||||
fn cmd_cycle3(self: *Self, name1: []const u8, name2: []const u8, name3: []const u8, ctx: command.Context) tp.result {
|
|
||||||
return if (std.mem.eql(u8, self.last_cmd, name2))
|
|
||||||
self.cmd(name3, ctx)
|
|
||||||
else if (std.mem.eql(u8, self.last_cmd, name1))
|
|
||||||
self.cmd(name2, ctx)
|
|
||||||
else
|
|
||||||
self.cmd(name1, ctx);
|
|
||||||
}
|
|
||||||
|
|
||||||
fn cmd_async(self: *Self, name_: []const u8) tp.result {
|
fn cmd_async(self: *Self, name_: []const u8) tp.result {
|
||||||
self.last_cmd = name_;
|
self.last_cmd = name_;
|
||||||
return tp.self_pid().send(.{ "cmd", name_ });
|
return tp.self_pid().send(.{ "cmd", name_ });
|
||||||
|
@ -600,9 +591,7 @@ pub const hints = keybind.KeybindHints.initComptime(.{
|
||||||
.{ "quit_without_saving", "C-S-q" },
|
.{ "quit_without_saving", "C-S-q" },
|
||||||
.{ "redo", "C-S-z, C-y" },
|
.{ "redo", "C-S-z, C-y" },
|
||||||
.{ "save_file", "C-s" },
|
.{ "save_file", "C-s" },
|
||||||
.{ "scroll_view_bottom", "C-l, z z" },
|
.{ "scroll_view_center_cycle", "C-l, z z" },
|
||||||
.{ "scroll_view_center", "C-l, z z" },
|
|
||||||
.{ "scroll_view_top", "C-l, z z" },
|
|
||||||
.{ "select_all", "C-a" },
|
.{ "select_all", "C-a" },
|
||||||
.{ "select_buffer_begin", "C-S-home" },
|
.{ "select_buffer_begin", "C-S-home" },
|
||||||
.{ "select_buffer_end", "C-S-end" },
|
.{ "select_buffer_end", "C-S-end" },
|
||||||
|
|
|
@ -129,7 +129,7 @@ fn map_press(self: *Self, keypress: input.Key, egc: input.Key, modifiers: input.
|
||||||
'Q' => self.cmd("quit", .{}),
|
'Q' => self.cmd("quit", .{}),
|
||||||
'W' => self.cmd("close_file", .{}),
|
'W' => self.cmd("close_file", .{}),
|
||||||
'S' => self.cmd("save_file", .{}),
|
'S' => self.cmd("save_file", .{}),
|
||||||
'L' => self.cmd_cycle3("scroll_view_center", "scroll_view_top", "scroll_view_bottom", .{}),
|
'L' => self.cmd("scroll_view_center_cycle", .{}),
|
||||||
'N' => self.cmd("goto_next_match", .{}),
|
'N' => self.cmd("goto_next_match", .{}),
|
||||||
'P' => self.cmd("goto_prev_match", .{}),
|
'P' => self.cmd("goto_prev_match", .{}),
|
||||||
'B' => self.cmd("move_to_char", command.fmt(.{false})),
|
'B' => self.cmd("move_to_char", command.fmt(.{false})),
|
||||||
|
@ -323,15 +323,6 @@ fn cmd(self: *Self, name_: []const u8, ctx: command.Context) tp.result {
|
||||||
try command.executeName(name_, ctx);
|
try command.executeName(name_, ctx);
|
||||||
}
|
}
|
||||||
|
|
||||||
fn cmd_cycle3(self: *Self, name1: []const u8, name2: []const u8, name3: []const u8, ctx: command.Context) tp.result {
|
|
||||||
return if (std.mem.eql(u8, self.last_cmd, name2))
|
|
||||||
self.cmd(name3, ctx)
|
|
||||||
else if (std.mem.eql(u8, self.last_cmd, name1))
|
|
||||||
self.cmd(name2, ctx)
|
|
||||||
else
|
|
||||||
self.cmd(name1, ctx);
|
|
||||||
}
|
|
||||||
|
|
||||||
fn cmd_async(self: *Self, name_: []const u8) tp.result {
|
fn cmd_async(self: *Self, name_: []const u8) tp.result {
|
||||||
self.last_cmd = name_;
|
self.last_cmd = name_;
|
||||||
return tp.self_pid().send(.{ "cmd", name_ });
|
return tp.self_pid().send(.{ "cmd", name_ });
|
||||||
|
|
|
@ -85,7 +85,7 @@ fn mapPress(self: *Self, keypress: input.Key, egc: input.Key, modifiers: input.M
|
||||||
'Q' => self.cmd("quit", .{}),
|
'Q' => self.cmd("quit", .{}),
|
||||||
'W' => self.cmd("close_file", .{}),
|
'W' => self.cmd("close_file", .{}),
|
||||||
'S' => self.cmd("save_file", .{}),
|
'S' => self.cmd("save_file", .{}),
|
||||||
'L' => self.cmd_cycle3("scroll_view_center", "scroll_view_top", "scroll_view_bottom", .{}),
|
'L' => self.cmd("scroll_view_center_cycle", .{}),
|
||||||
'N' => self.cmd("goto_next_match", .{}),
|
'N' => self.cmd("goto_next_match", .{}),
|
||||||
'P' => self.cmd("goto_prev_match", .{}),
|
'P' => self.cmd("goto_prev_match", .{}),
|
||||||
'B' => self.cmd("move_to_char", command.fmt(.{false})),
|
'B' => self.cmd("move_to_char", command.fmt(.{false})),
|
||||||
|
@ -354,7 +354,7 @@ fn mapFollower(self: *Self, keypress: input.Key, egc: input.Key, modifiers: inpu
|
||||||
},
|
},
|
||||||
'Z' => switch (modifiers) {
|
'Z' => switch (modifiers) {
|
||||||
0 => switch (keypress) {
|
0 => switch (keypress) {
|
||||||
'Z' => self.cmd_cycle3("scroll_view_center", "scroll_view_top", "scroll_view_bottom", .{}),
|
'Z' => self.cmd("scroll_view_center_cycle", .{}),
|
||||||
else => {},
|
else => {},
|
||||||
},
|
},
|
||||||
else => {},
|
else => {},
|
||||||
|
@ -455,15 +455,6 @@ fn cmd_count(self: *Self, name_: []const u8, ctx: command.Context) tp.result {
|
||||||
try command.executeName(name_, ctx);
|
try command.executeName(name_, ctx);
|
||||||
}
|
}
|
||||||
|
|
||||||
fn cmd_cycle3(self: *Self, name1: []const u8, name2: []const u8, name3: []const u8, ctx: command.Context) tp.result {
|
|
||||||
return if (std.mem.eql(u8, self.last_cmd, name2))
|
|
||||||
self.cmd(name3, ctx)
|
|
||||||
else if (std.mem.eql(u8, self.last_cmd, name1))
|
|
||||||
self.cmd(name2, ctx)
|
|
||||||
else
|
|
||||||
self.cmd(name1, ctx);
|
|
||||||
}
|
|
||||||
|
|
||||||
fn cmd_async(self: *Self, name_: []const u8) tp.result {
|
fn cmd_async(self: *Self, name_: []const u8) tp.result {
|
||||||
self.last_cmd = name_;
|
self.last_cmd = name_;
|
||||||
return tp.self_pid().send(.{ "cmd", name_ });
|
return tp.self_pid().send(.{ "cmd", name_ });
|
||||||
|
@ -566,9 +557,7 @@ pub const hints = keybind.KeybindHints.initComptime(.{
|
||||||
.{ "quit_without_saving", "C-S-q" },
|
.{ "quit_without_saving", "C-S-q" },
|
||||||
.{ "redo", "C-S-z, C-y" },
|
.{ "redo", "C-S-z, C-y" },
|
||||||
.{ "save_file", "C-s" },
|
.{ "save_file", "C-s" },
|
||||||
.{ "scroll_view_bottom", "C-l, z z" },
|
.{ "scroll_view_center_cycle", "C-l, z z" },
|
||||||
.{ "scroll_view_center", "C-l, z z" },
|
|
||||||
.{ "scroll_view_top", "C-l, z z" },
|
|
||||||
.{ "select_all", "C-a" },
|
.{ "select_all", "C-a" },
|
||||||
.{ "select_buffer_begin", "C-S-home" },
|
.{ "select_buffer_begin", "C-S-home" },
|
||||||
.{ "select_buffer_end", "C-S-end" },
|
.{ "select_buffer_end", "C-S-end" },
|
||||||
|
|
|
@ -85,7 +85,7 @@ fn map_press(self: *Self, keypress: input.Key, egc: input.Key, modifiers: input.
|
||||||
'Q' => self.cmd("quit", .{}),
|
'Q' => self.cmd("quit", .{}),
|
||||||
'W' => self.cmd("close_file", .{}),
|
'W' => self.cmd("close_file", .{}),
|
||||||
'S' => self.cmd("save_file", .{}),
|
'S' => self.cmd("save_file", .{}),
|
||||||
'L' => self.cmd_cycle3("scroll_view_center", "scroll_view_top", "scroll_view_bottom", .{}),
|
'L' => self.cmd("scroll_view_center_cycle", .{}),
|
||||||
'N' => self.cmd("goto_next_match", .{}),
|
'N' => self.cmd("goto_next_match", .{}),
|
||||||
'P' => self.cmd("goto_prev_match", .{}),
|
'P' => self.cmd("goto_prev_match", .{}),
|
||||||
'B' => self.cmd("move_to_char", command.fmt(.{false})),
|
'B' => self.cmd("move_to_char", command.fmt(.{false})),
|
||||||
|
@ -332,7 +332,7 @@ fn mapFollower(self: *Self, keypress: input.Key, egc: input.Key, modifiers: inpu
|
||||||
},
|
},
|
||||||
'Z' => switch (modifiers) {
|
'Z' => switch (modifiers) {
|
||||||
0 => switch (keypress) {
|
0 => switch (keypress) {
|
||||||
'Z' => self.cmd_cycle3("scroll_view_center", "scroll_view_top", "scroll_view_bottom", .{}),
|
'Z' => self.cmd("scroll_view_center_cycle", .{}),
|
||||||
else => {},
|
else => {},
|
||||||
},
|
},
|
||||||
else => {},
|
else => {},
|
||||||
|
@ -406,15 +406,6 @@ fn cmd_count(self: *Self, name_: []const u8, ctx: command.Context) tp.result {
|
||||||
try command.executeName(name_, ctx);
|
try command.executeName(name_, ctx);
|
||||||
}
|
}
|
||||||
|
|
||||||
fn cmd_cycle3(self: *Self, name1: []const u8, name2: []const u8, name3: []const u8, ctx: command.Context) tp.result {
|
|
||||||
return if (std.mem.eql(u8, self.last_cmd, name2))
|
|
||||||
self.cmd(name3, ctx)
|
|
||||||
else if (std.mem.eql(u8, self.last_cmd, name1))
|
|
||||||
self.cmd(name2, ctx)
|
|
||||||
else
|
|
||||||
self.cmd(name1, ctx);
|
|
||||||
}
|
|
||||||
|
|
||||||
fn cmd_async(self: *Self, name_: []const u8) tp.result {
|
fn cmd_async(self: *Self, name_: []const u8) tp.result {
|
||||||
self.last_cmd = name_;
|
self.last_cmd = name_;
|
||||||
return tp.self_pid().send(.{ "cmd", name_ });
|
return tp.self_pid().send(.{ "cmd", name_ });
|
||||||
|
@ -514,9 +505,7 @@ pub const hints = keybind.KeybindHints.initComptime(.{
|
||||||
.{ "quit_without_saving", "C-S-q" },
|
.{ "quit_without_saving", "C-S-q" },
|
||||||
.{ "redo", "C-S-z, C-y" },
|
.{ "redo", "C-S-z, C-y" },
|
||||||
.{ "save_file", "C-s" },
|
.{ "save_file", "C-s" },
|
||||||
.{ "scroll_view_bottom", "C-l, z z" },
|
.{ "scroll_view_center_cycle", "C-l, z z" },
|
||||||
.{ "scroll_view_center", "C-l, z z" },
|
|
||||||
.{ "scroll_view_top", "C-l, z z" },
|
|
||||||
.{ "select_all", "C-a" },
|
.{ "select_all", "C-a" },
|
||||||
.{ "select_buffer_begin", "C-S-home" },
|
.{ "select_buffer_begin", "C-S-home" },
|
||||||
.{ "select_buffer_end", "C-S-end" },
|
.{ "select_buffer_end", "C-S-end" },
|
||||||
|
|
|
@ -36,7 +36,7 @@ fn map_press(keypress: input.Key, egc: input.Key, modifiers: input.Mods) !void {
|
||||||
'U' => command.executeName("mini_mode_reset", .{}),
|
'U' => command.executeName("mini_mode_reset", .{}),
|
||||||
'G' => command.executeName("mini_mode_cancel", .{}),
|
'G' => command.executeName("mini_mode_cancel", .{}),
|
||||||
'C' => command.executeName("mini_mode_cancel", .{}),
|
'C' => command.executeName("mini_mode_cancel", .{}),
|
||||||
'L' => command.executeName("scroll_view_center", .{}),
|
'L' => command.executeName("scroll_view_center_cycle", .{}),
|
||||||
'I' => command.executeName("mini_mode_insert_bytes", command.fmt(.{"\t"})),
|
'I' => command.executeName("mini_mode_insert_bytes", command.fmt(.{"\t"})),
|
||||||
input.key.space => command.executeName("mini_mode_cancel", .{}),
|
input.key.space => command.executeName("mini_mode_cancel", .{}),
|
||||||
input.key.backspace => command.executeName("mini_mode_delete_to_previous_path_segment", .{}),
|
input.key.backspace => command.executeName("mini_mode_delete_to_previous_path_segment", .{}),
|
||||||
|
|
|
@ -36,7 +36,7 @@ fn map_press(keypress: input.Key, egc: input.Key, modifiers: input.Mods) !void {
|
||||||
'U' => command.executeName("mini_mode_reset", .{}),
|
'U' => command.executeName("mini_mode_reset", .{}),
|
||||||
'G' => command.executeName("mini_mode_cancel", .{}),
|
'G' => command.executeName("mini_mode_cancel", .{}),
|
||||||
'C' => command.executeName("mini_mode_cancel", .{}),
|
'C' => command.executeName("mini_mode_cancel", .{}),
|
||||||
'L' => command.executeName("scroll_view_center", .{}),
|
'L' => command.executeName("scroll_view_center_cycle", .{}),
|
||||||
'F' => command.executeName("goto_next_match", .{}),
|
'F' => command.executeName("goto_next_match", .{}),
|
||||||
'N' => command.executeName("goto_next_match", .{}),
|
'N' => command.executeName("goto_next_match", .{}),
|
||||||
'P' => command.executeName("goto_prev_match", .{}),
|
'P' => command.executeName("goto_prev_match", .{}),
|
||||||
|
|
|
@ -37,7 +37,7 @@ fn map_press(keypress: input.Key, egc: input.Key, modifiers: input.Mods) !void {
|
||||||
'U' => command.executeName("mini_mode_reset", .{}),
|
'U' => command.executeName("mini_mode_reset", .{}),
|
||||||
'G' => command.executeName("exit_mini_mode", .{}),
|
'G' => command.executeName("exit_mini_mode", .{}),
|
||||||
'C' => command.executeName("exit_mini_mode", .{}),
|
'C' => command.executeName("exit_mini_mode", .{}),
|
||||||
'L' => command.executeName("scroll_view_center", .{}),
|
'L' => command.executeName("scroll_view_center_cycle", .{}),
|
||||||
'F' => command.executeName("goto_next_match", .{}),
|
'F' => command.executeName("goto_next_match", .{}),
|
||||||
'N' => command.executeName("goto_next_match", .{}),
|
'N' => command.executeName("goto_next_match", .{}),
|
||||||
'P' => command.executeName("goto_prev_match", .{}),
|
'P' => command.executeName("goto_prev_match", .{}),
|
||||||
|
|
|
@ -33,7 +33,7 @@ fn map_press(keypress: input.Key, modifiers: input.Mods) tp.result {
|
||||||
'U' => command.executeName("mini_mode_reset", .{}),
|
'U' => command.executeName("mini_mode_reset", .{}),
|
||||||
'G' => command.executeName("mini_mode_cancel", .{}),
|
'G' => command.executeName("mini_mode_cancel", .{}),
|
||||||
'C' => command.executeName("mini_mode_cancel", .{}),
|
'C' => command.executeName("mini_mode_cancel", .{}),
|
||||||
'L' => command.executeName("scroll_view_center", .{}),
|
'L' => command.executeName("scroll_view_center_cycle", .{}),
|
||||||
input.key.space => command.executeName("mini_mode_cancel", .{}),
|
input.key.space => command.executeName("mini_mode_cancel", .{}),
|
||||||
else => {},
|
else => {},
|
||||||
},
|
},
|
||||||
|
|
|
@ -1943,7 +1943,18 @@ pub const Editor = struct {
|
||||||
pub fn scroll_view_center(self: *Self, _: Context) Result {
|
pub fn scroll_view_center(self: *Self, _: Context) Result {
|
||||||
return self.scroll_view_offset(self.view.rows / 2);
|
return self.scroll_view_offset(self.view.rows / 2);
|
||||||
}
|
}
|
||||||
pub const scroll_view_center_meta = .{ .description = "Scroll cursor to center/top/bottom of view" };
|
pub const scroll_view_center_meta = .{ .description = "Scroll cursor to center of view" };
|
||||||
|
|
||||||
|
pub fn scroll_view_center_cycle(self: *Self, _: Context) Result {
|
||||||
|
const cursor_row = self.get_primary().cursor.row;
|
||||||
|
return if (cursor_row == self.view.row + scroll_cursor_min_border_distance)
|
||||||
|
self.scroll_view_bottom(.{})
|
||||||
|
else if (cursor_row == self.view.row + self.view.rows / 2)
|
||||||
|
self.scroll_view_top(.{})
|
||||||
|
else
|
||||||
|
self.scroll_view_offset(self.view.rows / 2);
|
||||||
|
}
|
||||||
|
pub const scroll_view_center_cycle_meta = .{ .description = "Scroll cursor to center/top/bottom of view" };
|
||||||
|
|
||||||
pub fn scroll_view_top(self: *Self, _: Context) Result {
|
pub fn scroll_view_top(self: *Self, _: Context) Result {
|
||||||
return self.scroll_view_offset(scroll_cursor_min_border_distance);
|
return self.scroll_view_offset(scroll_cursor_min_border_distance);
|
||||||
|
|
Loading…
Add table
Reference in a new issue