summaryrefslogtreecommitdiff
path: root/src/Output.zig
diff options
context:
space:
mode:
authorGabriel Schneider <[email protected]>2026-09-30 20:09:32 -0300
committerGabriel Schneider <[email protected]>2026-10-01 00:12:17 -0300
commitf8fe738416fe3a40a7136f2cb5528e8fd57f40df (patch)
tree4f5f3ff990d79523a191c0754a154f3f5ffdee43 /src/Output.zig
parent506ca99f13aec67d593e4a30bbe416dea176d0ba (diff)
downloadpardes-f8fe738416fe3a40a7136f2cb5528e8fd57f40df.tar.gz
pardes-f8fe738416fe3a40a7136f2cb5528e8fd57f40df.zip
Recent and /recent keep PDFs and images as they keep files, and an open file's row is where its dot is now
Only text files were recorded, so a PDF read yesterday was not there to find again, and an open file's row showed the place it last closed at, stale by however far it had moved since. A PDF is kept at its page and reopened there from its row; an image by its path; an open one's row reads its pane's place at the time of the listing. Co-Authored-By: Claude Opus 5.5 <[email protected]>
Diffstat (limited to 'src/Output.zig')
-rw-r--r--src/Output.zig10
1 files changed, 8 insertions, 2 deletions
diff --git a/src/Output.zig b/src/Output.zig
index 06f2f1dc..4aa0c021 100644
--- a/src/Output.zig
+++ b/src/Output.zig
@@ -612,10 +612,16 @@ pub fn openJumps(p: *Pardes, id: usize) !void {
/// The recent list as rows: `<path>:<line>:<col> open|closed`, most recent
/// first; a look at a row opens the file there, as a +Jumps row does.
pub fn recentText(p: *Pardes, w: *std.Io.Writer, look_rows: bool) !void {
- for (p.recent.entries.items) |e| {
+ for (p.recent.entries.items) |stored| {
+ // An open one's row is where it is now, not where it last closed.
+ var e = stored;
var is_open = false;
- for (p.panes) |slot| if (slot) |pane| if (pane.file) |f| if (f.output == null and std.mem.eql(u8, f.path, e.path)) {
+ for (p.panes) |slot| if (slot) |pane| if (Pardes.recentPlace(pane)) |d| if (std.mem.eql(u8, d.path, e.path)) {
is_open = true;
+ e.line = d.line;
+ e.col = d.col;
+ e.aline = d.aline;
+ e.acol = d.acol;
};
const state: []const u8 = if (is_open) "open" else "(closed)";
if (!look_rows) {