From 7744bdf6c42d0979dc1ef04e26c3c036b301d409 Mon Sep 17 00:00:00 2001 From: CJ van den Berg Date: Wed, 5 Nov 2025 16:33:12 +0100 Subject: [PATCH] fix: update Project.last_used when switching projects --- src/Project.zig | 2 ++ src/project_manager.zig | 7 ++++--- 2 files changed, 6 insertions(+), 3 deletions(-) diff --git a/src/Project.zig b/src/Project.zig index a12ff0f..e1ce93e 100644 --- a/src/Project.zig +++ b/src/Project.zig @@ -31,6 +31,7 @@ persistent: bool = false, logger: log.Logger, logger_lsp: log.Logger, logger_git: log.Logger, +last_used: i128, workspace: ?[]const u8 = null, @@ -100,6 +101,7 @@ pub fn init(allocator: std.mem.Allocator, name: []const u8) OutOfMemoryError!Sel .logger = log.logger("project"), .logger_lsp = log.logger("lsp"), .logger_git = log.logger("git"), + .last_used = std.time.nanoTimestamp(), }; } diff --git a/src/project_manager.zig b/src/project_manager.zig index c658385..ea77ced 100644 --- a/src/project_manager.zig +++ b/src/project_manager.zig @@ -463,15 +463,16 @@ const Process = struct { } fn open(self: *Process, project_directory: []const u8) (SpawnError || std.fs.Dir.OpenError)!void { - if (self.projects.get(project_directory) == null) { + if (self.projects.get(project_directory)) |project| { + project.last_used = std.time.nanoTimestamp(); + self.logger.print("switched to: {s}", .{project_directory}); + } else { self.logger.print("opening: {s}", .{project_directory}); const project = try self.allocator.create(Project); project.* = try Project.init(self.allocator, project_directory); try self.projects.put(self.allocator, try self.allocator.dupe(u8, project_directory), project); self.restore_project(project) catch |e| self.logger.err("restore_project", e); project.query_git(); - } else { - self.logger.print("switched to: {s}", .{project_directory}); } }