feat: add support for fuzzy finding into git submodules
This commit is contained in:
parent
fb135afe16
commit
9a940eb7a4
1 changed files with 20 additions and 5 deletions
25
src/git.zig
25
src/git.zig
|
|
@ -32,11 +32,18 @@ pub fn current_branch(context_: usize) Error!void {
|
||||||
}
|
}
|
||||||
|
|
||||||
pub fn workspace_files(context: usize) Error!void {
|
pub fn workspace_files(context: usize) Error!void {
|
||||||
return git_line_output(
|
return if (is_file(".gitmodules"))
|
||||||
context,
|
git_line_output(
|
||||||
@src().fn_name,
|
context,
|
||||||
.{ "ls-files", "--cached", "--others", "--exclude-standard" },
|
@src().fn_name,
|
||||||
);
|
.{ "ls-files", "--cached", "--exclude-standard", "--recurse-submodules" },
|
||||||
|
)
|
||||||
|
else
|
||||||
|
git_line_output(
|
||||||
|
context,
|
||||||
|
@src().fn_name,
|
||||||
|
.{ "ls-files", "--cached", "--others", "--exclude-standard" },
|
||||||
|
);
|
||||||
}
|
}
|
||||||
|
|
||||||
pub fn workspace_ignored_files(context: usize) Error!void {
|
pub fn workspace_ignored_files(context: usize) Error!void {
|
||||||
|
|
@ -411,4 +418,12 @@ pub fn blame(context_: usize, file_path: []const u8) !void {
|
||||||
}.result, exit_null(tag));
|
}.result, exit_null(tag));
|
||||||
}
|
}
|
||||||
|
|
||||||
|
fn is_file(rel_path: []const u8) bool {
|
||||||
|
var path_buf: [std.fs.max_path_bytes]u8 = undefined;
|
||||||
|
const abs_path = std.fs.cwd().realpath(rel_path, &path_buf) catch return false;
|
||||||
|
var file = std.fs.openFileAbsolute(abs_path, .{ .mode = .read_only }) catch return false;
|
||||||
|
defer file.close();
|
||||||
|
return true;
|
||||||
|
}
|
||||||
|
|
||||||
const module_name = @typeName(@This());
|
const module_name = @typeName(@This());
|
||||||
|
|
|
||||||
Loading…
Add table
Add a link
Reference in a new issue