diff --git a/src/tui/mainview.zig b/src/tui/mainview.zig index 928c5b3..82c6041 100644 --- a/src/tui/mainview.zig +++ b/src/tui/mainview.zig @@ -551,6 +551,17 @@ const cmds = struct { tui.current().rdr.request_system_clipboard(); } pub const system_paste_meta = .{ .description = "Paste from system clipboard" }; + + pub fn find_in_files_query(self: *Self, ctx: Ctx) Result { + var query: []const u8 = undefined; + if (!try ctx.args.match(.{tp.extract(&query)})) return error.InvalidArgument; + log.logger("find").print("finding files...", .{}); + const find_f = ripgrep.find_in_files; + if (std.mem.indexOfScalar(u8, query, '\n')) |_| return; + var rg = try find_f(self.allocator, query, "FIF"); + defer rg.deinit(); + } + pub const find_in_files_query_meta = .{ .arguments = &.{.string} }; }; pub fn handle_editor_event(self: *Self, _: tp.pid_ref, m: tp.message) tp.result { @@ -587,14 +598,6 @@ pub fn handle_editor_event(self: *Self, _: tp.pid_ref, m: tp.message) tp.result } } -pub fn find_in_files(self: *Self, query: []const u8) !void { - log.logger("find").print("finding files...", .{}); - const find_f = ripgrep.find_in_files; - if (std.mem.indexOfScalar(u8, query, '\n')) |_| return; - var rg = try find_f(self.allocator, query, "FIF"); - defer rg.deinit(); -} - pub fn location_update(self: *Self, m: tp.message) tp.result { var row: usize = 0; var col: usize = 0; diff --git a/src/tui/mode/mini/find_in_files.zig b/src/tui/mode/mini/find_in_files.zig index f945dfb..a628c94 100644 --- a/src/tui/mode/mini/find_in_files.zig +++ b/src/tui/mode/mini/find_in_files.zig @@ -86,7 +86,7 @@ fn flush_input(self: *Self) !void { return; @memcpy(self.last_buf[0..self.input.len], self.input); self.last_input = self.last_buf[0..self.input.len]; - try self.mainview.find_in_files(self.input); + try command.executeName("find_in_files_query", command.fmt(.{self.input})); } }