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 {
|
||||
return git_line_output(
|
||||
context,
|
||||
@src().fn_name,
|
||||
.{ "ls-files", "--cached", "--others", "--exclude-standard" },
|
||||
);
|
||||
return if (is_file(".gitmodules"))
|
||||
git_line_output(
|
||||
context,
|
||||
@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 {
|
||||
|
|
@ -411,4 +418,12 @@ pub fn blame(context_: usize, file_path: []const u8) !void {
|
|||
}.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());
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue