feat: add find_in_files_query command

This commit is contained in:
CJ van den Berg 2024-12-11 20:47:25 +01:00
parent ad43cd4395
commit 4b3904d5f2
Signed by: neurocyte
GPG key ID: 8EB1E1BB660E3FB9
2 changed files with 12 additions and 9 deletions

View file

@ -551,6 +551,17 @@ const cmds = struct {
tui.current().rdr.request_system_clipboard(); tui.current().rdr.request_system_clipboard();
} }
pub const system_paste_meta = .{ .description = "Paste from 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 { 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 { pub fn location_update(self: *Self, m: tp.message) tp.result {
var row: usize = 0; var row: usize = 0;
var col: usize = 0; var col: usize = 0;

View file

@ -86,7 +86,7 @@ fn flush_input(self: *Self) !void {
return; return;
@memcpy(self.last_buf[0..self.input.len], self.input); @memcpy(self.last_buf[0..self.input.len], self.input);
self.last_input = self.last_buf[0..self.input.len]; 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}));
} }
} }