From b116d10348eac53c836f3c4e6f5935f1fd7a4dc8 Mon Sep 17 00:00:00 2001 From: CJ van den Berg Date: Tue, 4 Nov 2025 12:27:34 +0100 Subject: [PATCH 1/2] feat: allow open_previous_file to jump back to a closed tab --- src/tui/mainview.zig | 13 ++++++++----- 1 file changed, 8 insertions(+), 5 deletions(-) diff --git a/src/tui/mainview.zig b/src/tui/mainview.zig index c171a6f..3c83c17 100644 --- a/src/tui/mainview.zig +++ b/src/tui/mainview.zig @@ -1002,7 +1002,7 @@ const cmds = struct { pub const show_diagnostics_meta: Meta = .{ .description = "Show diagnostics panel" }; pub fn open_previous_file(self: *Self, _: Ctx) Result { - self.show_file_async(self.get_next_mru_buffer() orelse return error.Stop); + self.show_file_async(self.get_next_mru_buffer(.all) orelse return error.Stop); } pub const open_previous_file_meta: Meta = .{ .description = "Open the previous file" }; @@ -1228,7 +1228,7 @@ pub fn handle_editor_event(self: *Self, _: tp.pid_ref, m: tp.message) tp.result return self.location_update(m); if (try m.match(.{ "E", "close" })) { - if (self.get_next_mru_buffer()) |file_path| + if (self.get_next_mru_buffer(.non_hidden)) |file_path| self.show_file_async(file_path) else self.show_home_async(); @@ -1498,15 +1498,18 @@ fn send_buffer_did_open(allocator: std.mem.Allocator, buffer: *Buffer) !void { ); } -fn get_next_mru_buffer(self: *Self) ?[]const u8 { +fn get_next_mru_buffer(self: *Self, mode: enum { all, hidden, non_hidden }) ?[]const u8 { const buffers = self.buffer_manager.list_most_recently_used(self.allocator) catch return null; defer self.allocator.free(buffers); const active_file_path = self.get_active_file_path(); for (buffers) |buffer| { if (active_file_path) |fp| if (std.mem.eql(u8, fp, buffer.get_file_path())) continue; - if (buffer.hidden) - continue; + if (switch (mode) { + .all => false, + .hidden => !buffer.hidden, + .non_hidden => buffer.hidden, + }) continue; return buffer.get_file_path(); } return null; From 0b28218a98ab25d665544042b743ad1f413a5172 Mon Sep 17 00:00:00 2001 From: CJ van den Berg Date: Tue, 4 Nov 2025 12:29:14 +0100 Subject: [PATCH 2/2] feat: move open_previous_file keybind to project to work anywhere --- src/keybind/builtin/flow.json | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/keybind/builtin/flow.json b/src/keybind/builtin/flow.json index f527c3b..adf558e 100644 --- a/src/keybind/builtin/flow.json +++ b/src/keybind/builtin/flow.json @@ -11,6 +11,7 @@ ["ctrl+w", "quit"], ["ctrl+o", "open_file"], ["ctrl+e", "open_recent"], + ["alt+o", "open_previous_file"], ["ctrl+shift+f5", "reload_file"], ["ctrl+k ctrl+t", "change_theme"], ["ctrl+shift+p", "open_command_palette"], @@ -129,7 +130,6 @@ ["ctrl+shift+kp_left", "select_word_left"], ["ctrl+shift+kp_right", "select_word_right"], ["ctrl+shift+space", "selections_reverse"], - ["alt+o", "open_previous_file"], ["alt+j", "join_next_line"], ["alt+n", "goto_next_file_or_diagnostic"], ["alt+p", "goto_prev_file_or_diagnostic"],