feat: add up/down/enter keybindings to find_in_files mode to browse and select matches
This commit is contained in:
parent
49b701c9af
commit
953fc8535c
2 changed files with 21 additions and 5 deletions
|
@ -250,7 +250,7 @@ fn handle_menu_action(menu: **Menu.State(*Self), button: *Button.State(*Menu.Sta
|
|||
} }) catch |e| self.logger.err("navigate", e);
|
||||
}
|
||||
|
||||
fn move_next(self: *Self, dir: enum { up, down }) void {
|
||||
fn select_next(self: *Self, dir: enum { up, down }) void {
|
||||
self.selected = if (self.menu.selected) |sel_| sel_ + self.view_pos else self.selected;
|
||||
const sel = switch (dir) {
|
||||
.up => if (self.selected) |sel_| if (sel_ > 0) sel_ - 1 else self.entries.items.len - 1 else self.entries.items.len - 1,
|
||||
|
@ -261,7 +261,6 @@ fn move_next(self: *Self, dir: enum { up, down }) void {
|
|||
if (sel > self.view_pos + self.view_rows - 1) self.view_pos = sel - @min(sel, self.view_rows - 1);
|
||||
self.update_selected();
|
||||
self.update_scrollbar();
|
||||
self.menu.activate_selected();
|
||||
}
|
||||
|
||||
const cmds = struct {
|
||||
|
@ -270,10 +269,25 @@ const cmds = struct {
|
|||
const Result = command.Result;
|
||||
|
||||
pub fn goto_prev_file(self: *Self, _: Ctx) Result {
|
||||
self.move_next(.up);
|
||||
self.select_next(.up);
|
||||
self.menu.activate_selected();
|
||||
}
|
||||
|
||||
pub fn goto_next_file(self: *Self, _: Ctx) Result {
|
||||
self.move_next(.down);
|
||||
self.select_next(.down);
|
||||
self.menu.activate_selected();
|
||||
}
|
||||
|
||||
pub fn select_prev_file(self: *Self, _: Ctx) Result {
|
||||
self.select_next(.up);
|
||||
}
|
||||
|
||||
pub fn select_next_file(self: *Self, _: Ctx) Result {
|
||||
self.select_next(.down);
|
||||
}
|
||||
|
||||
pub fn goto_selected_file(self: *Self, _: Ctx) Result {
|
||||
if (self.menu.selected == null) return tp.exit_error(error.NoSelectedFile, @errorReturnTrace());
|
||||
self.menu.activate_selected();
|
||||
}
|
||||
};
|
||||
|
|
|
@ -124,12 +124,14 @@ fn mapPress(self: *Self, keypress: u32, egc: u32, modifiers: u32) !void {
|
|||
else {},
|
||||
},
|
||||
0 => switch (keypress) {
|
||||
key.UP => self.cmd("select_prev_file", .{}),
|
||||
key.DOWN => self.cmd("select_next_file", .{}),
|
||||
key.F03 => self.cmd("goto_next_match", .{}),
|
||||
key.F15 => self.cmd("goto_prev_match", .{}),
|
||||
key.F09 => self.cmd("theme_prev", .{}),
|
||||
key.F10 => self.cmd("theme_next", .{}),
|
||||
key.ESC => self.cancel(),
|
||||
key.ENTER => self.cmd("exit_mini_mode", .{}),
|
||||
key.ENTER => self.cmd("goto_selected_file", .{}) catch self.cmd("exit_mini_mode", .{}),
|
||||
key.BACKSPACE => if (self.input.len > 0) {
|
||||
self.input = self.input[0 .. self.input.len - 1];
|
||||
},
|
||||
|
|
Loading…
Add table
Reference in a new issue