diff --git a/build.zig.zon b/build.zig.zon index 566d6ec6..944f33e1 100644 --- a/build.zig.zon +++ b/build.zig.zon @@ -43,8 +43,8 @@ .lazy = true, }, .wio = .{ - .url = "git+https://github.com/neurocyte/wio?ref=master#a5f4ccb81fb6bafa348196747a0051cc65e10db9", - .hash = "wio-0.0.0-8xHrr0MKBgAYo_rlL6A2llfOLjikoWrPdV6Aml3OOBwJ", + .url = "git+https://github.com/neurocyte/wio?ref=master#7e3182c0cd4579bb9d6b8cddb862396a3093e62f", + .hash = "wio-0.0.0-8xHrrzsKBgD1RO_CdfiIc_fe7Ye-Otk06-J1Fg_0o8_p", .lazy = true, }, .sokol = .{ diff --git a/src/git.zig b/src/git.zig index fa2d6abb..53427b0e 100644 --- a/src/git.zig +++ b/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()); diff --git a/src/gui/wio/input.zig b/src/gui/wio/input.zig index 601598ac..577a9bc2 100644 --- a/src/gui/wio/input.zig +++ b/src/gui/wio/input.zig @@ -14,7 +14,7 @@ pub fn fromWioModifiers(modifiers: wio.Modifiers) Mods { .shift = modifiers.shift, .alt = modifiers.alt, .ctrl = modifiers.control, - .super = modifiers.super, + .super = modifiers.gui, }; }