feat: update terminal working directory on project change

This commit is contained in:
CJ van den Berg 2024-08-19 21:53:30 +02:00
parent 849ef606a7
commit 53310cc2dd
3 changed files with 10 additions and 2 deletions

View file

@ -30,8 +30,8 @@
.hash = "122019f077d09686b1ec47928ca2b4bf264422f3a27afc5b49dafb0129a4ceca0d01", .hash = "122019f077d09686b1ec47928ca2b4bf264422f3a27afc5b49dafb0129a4ceca0d01",
}, },
.vaxis = .{ .vaxis = .{
.url = "https://github.com/rockorager/libvaxis/archive/26072bd85e419e3c33b73f1cd29890b31a1933cc.tar.gz", .url = "https://github.com/neurocyte/libvaxis/archive/f127e9e8a4dc8fa00e2d27806b1c506a3d0480b1.tar.gz",
.hash = "12209fb0db1467d24882f4a0fca367d25d7ef7353882270ba3b76382c185332c52ae", .hash = "1220276c7128ae663647a054c25ee6b8761fb346b3256f9b60ad03f9447d3d191221",
}, },
}, },
.paths = .{ .paths = .{

View file

@ -330,6 +330,10 @@ pub fn set_terminal_style(self: *Self, style_: Style) void {
self.vx.state.changed_default_bg = false; self.vx.state.changed_default_bg = false;
} }
pub fn set_terminal_working_directory(self: *Self, absolute_path: []const u8) void {
self.vx.setTerminalWorkingDirectory(self.tty.anyWriter(), absolute_path) catch {};
}
pub fn copy_to_system_clipboard(self: *Self, text: []const u8) void { pub fn copy_to_system_clipboard(self: *Self, text: []const u8) void {
var bufferedWriter = self.tty.bufferedWriter(); var bufferedWriter = self.tty.bufferedWriter();
self.vx.copyToSystemClipboard(bufferedWriter.writer().any(), text, self.a) catch |e| log.logger(log_name).err("copy_to_system_clipboard", e); self.vx.copyToSystemClipboard(bufferedWriter.writer().any(), text, self.a) catch |e| log.logger(log_name).err("copy_to_system_clipboard", e);

View file

@ -233,6 +233,8 @@ const cmds = struct {
if (!try ctx.args.match(.{tp.extract(&project_dir)})) if (!try ctx.args.match(.{tp.extract(&project_dir)}))
return; return;
try project_manager.open(project_dir); try project_manager.open(project_dir);
const project = tp.env.get().str("project");
tui.current().rdr.set_terminal_working_directory(project);
_ = try self.statusbar.msg(.{ "PRJ", "open" }); _ = try self.statusbar.msg(.{ "PRJ", "open" });
} }
@ -253,6 +255,8 @@ const cmds = struct {
if (self.file_list_type == .diagnostics and self.is_panel_view_showing(filelist_view)) if (self.file_list_type == .diagnostics and self.is_panel_view_showing(filelist_view))
try self.toggle_panel_view(filelist_view, false); try self.toggle_panel_view(filelist_view, false);
try project_manager.open(project_dir); try project_manager.open(project_dir);
const project = tp.env.get().str("project");
tui.current().rdr.set_terminal_working_directory(project);
_ = try self.statusbar.msg(.{ "PRJ", "open" }); _ = try self.statusbar.msg(.{ "PRJ", "open" });
} }