summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorGabriel Schneider <[email protected]>2026-09-28 19:41:44 -0300
committerGabriel Schneider <[email protected]>2026-10-01 00:12:15 -0300
commite0b3f11f008e54174d5169147b8cf5dac56e915a (patch)
tree888e1cfb21a381b599ae59f1b1942572aba54fa9
parentfb87946e09bf33c0fe663ccba6db14a63e7cfda4 (diff)
downloadpardes-e0b3f11f008e54174d5169147b8cf5dac56e915a.tar.gz
pardes-e0b3f11f008e54174d5169147b8cf5dac56e915a.zip
A tag no longer marks an unsaved file with *: the grip shows it
The grip button now shows a pane's unsaved text in every state, as acme's modbutton does, and acme's tag has no asterisk. The computed prefix is the name alone, so tag reads, event offsets that count the path and the tag's text lose the " *". dirty, index's flag and the refuse-once guards are unchanged; a dump from before still restores its tags past the old mark. Co-Authored-By: Claude Opus 5.5 <[email protected]>
-rw-r--r--docs/fs.md5
-rw-r--r--docs/macos.md4
-rw-r--r--docs/tags.md8
-rw-r--r--src/pardes.zig28
-rw-r--r--src/tagline.zig11
-rw-r--r--test/snapshots/chordcut.golden3
-rw-r--r--test/snapshots/delask.golden6
-rw-r--r--test/snapshots/fileedit.golden2
-rw-r--r--test/snapshots/filewatch.golden4
-rw-r--r--test/snapshots/lsp-client-edit.golden5
-rw-r--r--test/snapshots/lsp-rename.golden4
-rw-r--r--test/snapshots/lspcomplete.golden10
-rw-r--r--test/snapshots/lspcompletemoved.golden2
-rw-r--r--test/snapshots/lsprelpath.golden12
-rw-r--r--test/snapshots/msg.golden1
-rw-r--r--test/snapshots/multicursor.golden2
-rw-r--r--test/snapshots/ninep.golden12
-rw-r--r--test/snapshots/pipe.golden2
-rw-r--r--test/snapshots/savepane.golden2
-rw-r--r--test/snapshots/selregex.golden2
-rw-r--r--test/snapshots/tagbottom.golden1
-rw-r--r--test/snapshots/tagcmd.golden7
-rw-r--r--test/snapshots/tagpath.golden9
-rw-r--r--test/snapshots/yankpaste.golden2
24 files changed, 54 insertions, 90 deletions
diff --git a/docs/fs.md b/docs/fs.md
index 9a77beee..f6516ea1 100644
--- a/docs/fs.md
+++ b/docs/fs.md
@@ -458,8 +458,9 @@ The three flag files `dirty`, `mark` and `scroll` read `0` or `1` and take
an undo point (writing `1` pushes one now), and whether a write scrolls the
pane.
-`tag` reads the whole tag as the pane shows it: the computed path, dirty
-marker or PDF page, then the text you may edit. A write appends to that text,
+`tag` reads the whole tag as the pane shows it: the computed path or PDF
+page (no mark for unsaved text: the grip shows that, and `dirty` says it),
+then the text you may edit. A write appends to that text,
newlines included, and a tag with more than one line takes a row per line on
screen; truncating `tag` clears it, as acme's `cleartag` does -- the default
words (`Del`, `Put` and the rest) with it, since they are that text until
diff --git a/docs/macos.md b/docs/macos.md
index 5166e2d5..cf7091e6 100644
--- a/docs/macos.md
+++ b/docs/macos.md
@@ -355,8 +355,8 @@ The dirty half needed one core watermark. `File` counted `revision` but never
recorded which edit was last *written*, so no shell could derive "unsaved" —
`File.saved_revision` is that watermark, advanced by `Save` at the moment the
write is asked for and by a successful external-file reload whose bytes
-already came from disk. The core renders the same answer as ` *` after the
-path in every tagline, while this host also puts it in the native close button.
+already came from disk. The core shows the same answer on each pane's grip
+button, while this host also puts it in the native close button.
Save is marked at ask-time rather than on completion because `save_file`
carries none back, which makes both indicators exactly as honest as the Save
request.
diff --git a/docs/tags.md b/docs/tags.md
index 9b9a23c5..0339f1db 100644
--- a/docs/tags.md
+++ b/docs/tags.md
@@ -77,13 +77,13 @@ a collapsed pane shows only the first line. The column and workspace tags
are one line, as acme's (cols.c:244 gives a column tag one font height): a
newline typed, pasted or written into one becomes a space, and a dump that
holds a column or workspace tag of several lines, from before, comes back
-with its lines joined by spaces. The path, the dirty marker and a PDF's page at the start of a
+with its lines joined by spaces. The path and a PDF's page at the start of a
pane tag are computed, never stored, and read-only. The keyboard reaches
them as the mouse does: `0` goes to the line's start, the path's, as in
acme, and motions select and yank across the path and the commands. An edit
that would change them is refused and leaves the cursor where it was; typing
into a file's path instead drafts a new name, as clicking it does. When they
-grow or shrink (a rename, the dirty marker, a PDF's page) the cursor keeps
+grow or shrink (a rename, a PDF's page) the cursor keeps
its place in the text after them.
Left-click a tag or a header to type into it at the click, in insert mode;
@@ -169,3 +169,7 @@ and subtle pixel separators.
`FocusTint` controls active-column and active-pane emphasis. SDL also honors
the shared bold, underline, and strikethrough attributes, including diagnostic
underlines and the optional `SyntaxBold` keyword weight.
+
+Unsaved text shows on the pane's grip button, as acme's modbutton does,
+not in the tag: the tag names the file and nothing more. The `dirty` file
+and `index`'s flag say the same to a script.
diff --git a/src/pardes.zig b/src/pardes.zig
index 7cdd8461..a232c9c6 100644
--- a/src/pardes.zig
+++ b/src/pardes.zig
@@ -1251,37 +1251,19 @@ test "pane defaults keep creation of scratch panes in column tags" {
try std.testing.expectEqualStrings(tagline.file_pane_tail, tagline.curTail(file));
}
-test "an unsaved file marker sits between its path and builtins until Save" {
+test "an unsaved file's tag is its name alone: the grip, not a mark, says it is unsaved" {
const gpa = std.testing.allocator;
const p = try Pardes.init(gpa, .{ .tty_only = true, .cols = 100, .rows = 30 });
defer p.deinit();
while (p.nextEffect()) |_| {}
const pane = try p.setTestFile("before\n");
-
const clean = try tagline.tagText(p, p.scratch.allocator(), pane);
- try std.testing.expect(std.mem.indexOf(u8, clean, "/test.txt *") == null);
-
panes.File.setContent(p, &pane.file.?, try gpa.dupe(u8, "after\n"));
const dirty = try tagline.tagText(p, p.scratch.allocator(), pane);
- const marker_at = std.mem.indexOf(u8, dirty, "/test.txt *") orelse return error.MissingDirtyMarker;
- const save_at = std.mem.indexOf(u8, dirty, "Save") orelse return error.MissingSaveBuiltin;
- try std.testing.expect(marker_at < save_at);
-
- try std.testing.expect(p.executeBuiltinLine(0, "Save"));
- while (p.nextEffect()) |effect| p.perform(effect);
- const saved = try tagline.tagText(p, p.scratch.allocator(), pane);
- try std.testing.expect(std.mem.indexOf(u8, saved, "/test.txt *") == null);
-
- panes.File.changed(p, 0, "external\n");
- const reloaded = try tagline.tagText(p, p.scratch.allocator(), pane);
- try std.testing.expect(std.mem.indexOf(u8, reloaded, "/test.txt *") == null);
-
- // A generated output is file-shaped and Save can write it to a path, but
- // there is no file of its own for it to be dirty against.
- pane.file.?.output = .{ .from = .search };
- panes.File.setContent(p, &pane.file.?, try gpa.dupe(u8, "result\n"));
- const output = try tagline.tagText(p, p.scratch.allocator(), pane);
- try std.testing.expect(std.mem.indexOf(u8, output, "/test.txt *") == null);
+ try std.testing.expectEqualStrings(clean, dirty);
+ try std.testing.expect(std.mem.indexOf(u8, dirty, " *") == null);
+ // The dirty file and index's flag still say it.
+ try std.testing.expect(ctlfs.pane.dirtyOf(pane));
}
test "unknown Exec from a document runs as a command pane in its directory, typed into no terminal" {
diff --git a/src/tagline.zig b/src/tagline.zig
index 858bb9b1..d0d0b413 100644
--- a/src/tagline.zig
+++ b/src/tagline.zig
@@ -23,6 +23,8 @@ pub const context_pane_tail = file_pane_tail ++ " TreeContext";
pub const locations_pane_tail = file_pane_tail ++ " LocationsConfig";
pub const terminal_pane_tail = " " ++ config.terminal_pane_builtins_str;
pub const command_pane_tail = " " ++ config.command_pane_builtins_str;
+/// The mark a tag carried after an unsaved file's name before the grip
+/// showed it; a dump from then still has it in its saved tags.
const dirty_marker = " *";
pub const legacy_pane_tail = " Del";
pub const legacy_file_pane_tail = " Save Del";
@@ -134,12 +136,9 @@ pub fn pathPrefix(arena: std.mem.Allocator, pane: *Pane) ![]const u8 {
var idbuf: [48]u8 = undefined;
return std.fmt.allocPrint(arena, "{s} {s}", .{ pane.cwdSlice(), exec.replId(&idbuf, pane) });
}
- if (pane.file) |f| {
- const name = if (pane.prompt == .name) pane.input.own orelse f.path else f.path;
- if (panes.Output.fileTraits(f.output).saves and f.revision != f.saved_revision)
- return std.fmt.allocPrint(arena, "{s}{s}", .{ name, dirty_marker });
- return name;
- }
+ // Unsaved text shows on the grip, as acme's modbutton does, not as a
+ // mark in the text: the prefix is the name alone.
+ if (pane.file) |f| return if (pane.prompt == .name) pane.input.own orelse f.path else f.path;
return pane.cwdSlice();
}
diff --git a/test/snapshots/chordcut.golden b/test/snapshots/chordcut.golden
index 120b261f..b9805bc6 100644
--- a/test/snapshots/chordcut.golden
+++ b/test/snapshots/chordcut.golden
@@ -20,7 +20,6 @@
| ls
| f.txt g.txt
== snap cut grid=120x31 cursor=7,8
-|6: /tmp/pardes-snap/chordcut/cwd/f.txt * Save Tty Collapse D
|8: 2 2
== snap copied grid=120x31 cursor=10,9
== snap pointpaste grid=120x31 cursor=16,10
@@ -30,7 +29,7 @@
== snap cancelexec grid=120x31 cursor=25,8
|8: 2 2echo B''OO g.txt
== snap execafter grid=120x31 cursor=25,8
-|6: /tmp/pardes-snap/chordcut/cwd/f.txt * Save Tty Collapse D /tmp/pardes-snap/chordcut/cwd (echo B''OO) exit 0 Kill Sa
+|6: /tmp/pardes-snap/chordcut/cwd/f.txt Save Tty Collapse Del /tmp/pardes-snap/chordcut/cwd (echo B''OO) exit 0 Kill Sa
|7: 1 line 1 Exec % echo B''OO
|8: 2 2echo B''OO g.txt BOO
|9: 3 line 3 exit 0
diff --git a/test/snapshots/delask.golden b/test/snapshots/delask.golden
index 6b5331ec..24d2fc03 100644
--- a/test/snapshots/delask.golden
+++ b/test/snapshots/delask.golden
@@ -18,7 +18,7 @@
|
|
|
-| /tmp/pardes-snap/delask/cwd/+New * Save Tty Collapse Del
+| /tmp/pardes-snap/delask/cwd/+New Save Tty Collapse Del
| 1 middle-pane
|
|
@@ -27,7 +27,7 @@
|
|
|
-| /tmp/pardes-snap/delask/cwd/+New * Save Tty Collapse Del
+| /tmp/pardes-snap/delask/cwd/+New Save Tty Collapse Del
| 1 bottom-pane Up
== snap asked grid=100x36 cursor=18,20
|20: 1 middle-pane Del: give space to k above j below
@@ -40,7 +40,7 @@
|29:
== snap typed grid=100x36 cursor=27,20
|20: 1 bottom-pane DelBelow
-|28: /tmp/pardes-snap/delask/cwd/+New * Save Tty Collapse Del
+|28: /tmp/pardes-snap/delask/cwd/+New Save Tty Collapse Del
|29: 1 third-pane
== snap below-took-click grid=100x36 cursor=17,20
|20: 1 third-pane
diff --git a/test/snapshots/fileedit.golden b/test/snapshots/fileedit.golden
index 4d367d72..cef7eb82 100644
--- a/test/snapshots/fileedit.golden
+++ b/test/snapshots/fileedit.golden
@@ -5,7 +5,7 @@
| ls ls
| f.txt f.txt
|
-| /tmp/pardes-snap/fileedit/cwd/f.txt * Save Tty Collapse Del
+| /tmp/pardes-snap/fileedit/cwd/f.txt Save Tty Collapse Del
| 1 liEDIT''MEne 1
| 2 line 2
| 3 line 3
diff --git a/test/snapshots/filewatch.golden b/test/snapshots/filewatch.golden
index de44f0ca..fa7984db 100644
--- a/test/snapshots/filewatch.golden
+++ b/test/snapshots/filewatch.golden
@@ -1,7 +1,7 @@
== snap edited grid=210x31 cursor=15,3
|Newcol Joincol Find Grep Help Changelog Tutor Dump NextColor Debug Exit
| New Tty Find Grep Joincol Delcol New Tty Find Grep Joincol Delcol
-| /tmp/pardes-snap/filewatch/cwd/w.txt * Save Tty Collapse Del /tmp/pardes-snap/filewatch/cwd Tty+bash Save Mode Filter Collapse Del
+| /tmp/pardes-snap/filewatch/cwd/w.txt Save Tty Collapse Del /tmp/pardes-snap/filewatch/cwd Tty+bash Save Mode Filter Collapse Del
| 1 liMYEDITne 1 ls
| 2 line 2 sub w.txt
| 3 /tmp/pardes-snap/filewatch/cwd/sub/s.txt
@@ -27,7 +27,6 @@
| 8 line 8
| 9
== snap reloaded grid=210x31 cursor=15,3
-|2: /tmp/pardes-snap/filewatch/cwd/w.txt Save Tty Collapse Del /tmp/pardes-snap/filewatch/cwd Tty+bash Save Mode Filter Collapse Del
|3: 1 EXTERNAL --:--:-- reloaded /tmp/pardes-snap/filewatch/cwd/w.txt ls
|4: 2 sub w.txt
|5:
@@ -52,7 +51,6 @@
|25:
|26:
== snap undone grid=210x31 cursor=15,3
-|2: /tmp/pardes-snap/filewatch/cwd/w.txt * Save Tty Collapse Del /tmp/pardes-snap/filewatch/cwd Tty+bash Save Mode Filter Collapse Del
|3: 1 liMYEDITne 1 ls
|4: 2 line 2 sub w.txt
|5: 3 /tmp/pardes-snap/filewatch/cwd/sub/s.txt
diff --git a/test/snapshots/lsp-client-edit.golden b/test/snapshots/lsp-client-edit.golden
index 81079615..86e3fdb8 100644
--- a/test/snapshots/lsp-client-edit.golden
+++ b/test/snapshots/lsp-client-edit.golden
@@ -1,7 +1,7 @@
== snap formatted grid=100x25 cursor=7,4
|Newcol Joincol Find Grep Help Changelog Tutor Dump NextColor Debug Exit
| New Tty Find Grep Joincol Delcol
-| /tmp/pardes-snap/lsp-client-edit/cwd/main.rs * Save Tty Collapse Del TreeContext
+| /tmp/pardes-snap/lsp-client-edit/cwd/main.rs Save Tty Collapse Del TreeContext
| 1 // formatted by mock formatted 1 range(s)
| 2 mod lib;
| 3
@@ -12,7 +12,6 @@
| 8 }
| 9
== snap unformatted grid=100x25 cursor=7,3
-|2: /tmp/pardes-snap/lsp-client-edit/cwd/main.rs Save Tty Collapse Del TreeContext
|3: 1 mod lib;
|4: 2
|5: 3 fn main() {
@@ -23,12 +22,10 @@
|10: 8
|11:
== snap renamed grid=100x25 cursor=12,5
-|2: /tmp/pardes-snap/lsp-client-edit/cwd/main.rs * Save Tty Collapse Del TreeContext
|3: 1 mod lib; renamed 2 range(s)
|6: 4 let x = sum(1, 2);
|7: 5 let y = sum(3, 4);
== snap unrenamed grid=100x25 cursor=12,5
-|2: /tmp/pardes-snap/lsp-client-edit/cwd/main.rs Save Tty Collapse Del TreeContext
|3: 1 mod lib;
|6: 4 let x = add(1, 2);
|7: 5 let y = add(3, 4);
diff --git a/test/snapshots/lsp-rename.golden b/test/snapshots/lsp-rename.golden
index 26571b26..0aeb6de9 100644
--- a/test/snapshots/lsp-rename.golden
+++ b/test/snapshots/lsp-rename.golden
@@ -1,7 +1,7 @@
== snap renamed grid=110x25 cursor=17,10
|Newcol Joincol Find Grep Help Changelog Tutor Dump NextColor Debug Exit
| New Tty Find Grep Joincol Delcol
-| /tmp/pardes-snap/lsp-rename/cwd/rename.zig * Save Tty Collapse Del TreeContext
+| /tmp/pardes-snap/lsp-rename/cwd/rename.zig Save Tty Collapse Del TreeContext
| 1 const std = @import("std"); renamed 2 range(s)
| 2
| 3 fn renamed_helper(x: u32) u32 {
@@ -18,11 +18,9 @@
| 14 }
| 15
== snap undone grid=110x25 cursor=17,10
-|2: /tmp/pardes-snap/lsp-rename/cwd/rename.zig Save Tty Collapse Del TreeContext
|3: 1 const std = @import("std");
|5: 3 fn helper(x: u32) u32 {
|10: 8 _ = helper(41);
== snap redone grid=110x25 cursor=17,10
-|2: /tmp/pardes-snap/lsp-rename/cwd/rename.zig * Save Tty Collapse Del TreeContext
|5: 3 fn renamed_helper(x: u32) u32 {
|10: 8 _ = renamed_helper(41);
diff --git a/test/snapshots/lspcomplete.golden b/test/snapshots/lspcomplete.golden
index 8efa7edf..77db6027 100644
--- a/test/snapshots/lspcomplete.golden
+++ b/test/snapshots/lspcomplete.golden
@@ -16,7 +16,7 @@
| 12 // note. see below
| 13
== snap indent grid=120x41 cursor=11,12
-|2: ^ /tmp/pardes-snap/lspcomplete/cwd/a.zig * Save Tty Collapse Del TreeContext
+|2: ^ /tmp/pardes-snap/lspcomplete/cwd/a.zig Save Tty Collapse Del TreeContext
|12: 10 }
== snap commentindent grid=120x41 cursor=19,14
|14: 12 // note. see below
@@ -28,17 +28,17 @@
|40: 2 a.zig:3:5-12 cinnabar cinnabar,
== snap refill grid=120x41 cursor=16,10
== snap step grid=120x41 cursor=19,4
-|2: /tmp/pardes-snap/lspcomplete/cwd/a.zig * Save Tty Collapse Del TreeContext
+|2: /tmp/pardes-snap/lspcomplete/cwd/a.zig Save Tty Collapse Del TreeContext
== snap txtindent grid=120x41 cursor=15,3
|Newcol Joincol Find Grep Help Changelog Tutor Dump NextColor Debug Exit
| New Tty Find Grep Joincol Delcol
-|^ /tmp/pardes-snap/lspcomplete/cwd/notes.txt * Save Tty Collapse Del
+|^ /tmp/pardes-snap/lspcomplete/cwd/notes.txt Save Tty Collapse Del
| 1 abc. def ghi
| 2
== snap nosemi grid=100x19 cursor=29,9
|Newcol Joincol Find Grep Help Changelog Tutor Dump NextColor Debug Exit
| New Tty Find Grep Joincol Delcol
-|^ /tmp/pardes-snap/lspcomplete/cwd/c.zig * Save Tty Collapse Del TreeContext
+|^ /tmp/pardes-snap/lspcomplete/cwd/c.zig Save Tty Collapse Del TreeContext
| 1 const Shade = enum {
| 2 verdigris,
| 3 cinnabar,
@@ -58,7 +58,7 @@
== snap nobrace grid=100x19 cursor=16,10
|Newcol Joincol Find Grep Help Changelog Tutor Dump NextColor Debug Exit
| New Tty Find Grep Joincol Delcol
-|^ /tmp/pardes-snap/lspcomplete/cwd/d.zig * Save Tty Collapse Del TreeContext
+|^ /tmp/pardes-snap/lspcomplete/cwd/d.zig Save Tty Collapse Del TreeContext
| 1 const Shade = enum {
| 2 verdigris,
| 3 cinnabar,
diff --git a/test/snapshots/lspcompletemoved.golden b/test/snapshots/lspcompletemoved.golden
index f12b3f0c..b24938cb 100644
--- a/test/snapshots/lspcompletemoved.golden
+++ b/test/snapshots/lspcompletemoved.golden
@@ -1,7 +1,7 @@
== snap typedthrough grid=120x21 cursor=16,14
|Newcol Joincol Find Grep Help Changelog Tutor Dump NextColor Debug Exit
| New Tty Find Grep Joincol Delcol
-|^ /tmp/pardes-snap/lspcompletemoved/cwd/a.zig * Save Tty Collapse Del TreeContext
+|^ /tmp/pardes-snap/lspcompletemoved/cwd/a.zig Save Tty Collapse Del TreeContext
| 1 const Shade = enum {
| 2 verdigris,
| 3 cinnabar,
diff --git a/test/snapshots/lsprelpath.golden b/test/snapshots/lsprelpath.golden
index 96dc4c99..f78a8c02 100644
--- a/test/snapshots/lsprelpath.golden
+++ b/test/snapshots/lsprelpath.golden
@@ -1,7 +1,7 @@
== snap absrow grid=100x35 cursor=16,7
|Newcol Joincol Find Grep Help Changelog Tutor Dump NextColor Debug Exit
| New Tty Find Grep Joincol Delcol
-|^ /tmp/pardes-snap/lsprelpath/cwd/sub/parent.zig * Save Tty Collapse Del TreeContext
+|^ /tmp/pardes-snap/lsprelpath/cwd/sub/parent.zig Save Tty Collapse Del TreeContext
| 1 const shade = @import("../shade.zig");
| 2
| 3 pub fn pick(s: shade.Shade) u8 {
@@ -35,7 +35,7 @@
| 1 /tmp/pardes-snap/lsprelpath/cwd/shade.zig:2:5-13 verdigris verdigris,
| 2 /tmp/pardes-snap/lsprelpath/cwd/shade.zig:3:5-12 cinnabar cinnabar,
== snap abslook grid=100x35 cursor=19,19
-|2: /tmp/pardes-snap/lsprelpath/cwd/sub/parent.zig * Save Tty Collapse Del TreeContext
+|2: /tmp/pardes-snap/lsprelpath/cwd/sub/parent.zig Save Tty Collapse Del TreeContext
|17: /tmp/pardes-snap/lsprelpath/cwd/shade.zig Save Tty Collapse Del TreeContext
|18: 1 pub const Shade = enum {
|19: 2 verdigris,
@@ -45,7 +45,7 @@
== style abslook grid=100x35
|0: 0-70 #b2c3b8,#1d2824, 71-99 d,#1d2824,
|1: 0-1 #ffffff,#887455, 2-2 d,#26362d, 3-34 #becfc4,#26362d, 35-99 d,#26362d,
-|2: 0-1 #ffffff,#496656, 2-2 d,#1d2824, 3-38 #b2c3b8,#1d2824, 39-48 #d3b0d9,#1d2824, 49-84 #b2c3b8,#1d2824, 85-99 d,#1d2824,
+|2: 0-1 #ffffff,#496656, 2-2 d,#1d2824, 3-38 #b2c3b8,#1d2824, 39-48 #d3b0d9,#1d2824, 49-82 #b2c3b8,#1d2824, 83-99 d,#1d2824,
|3: 0-0 d,#608269, 1-1 d,#0d1410, 2-6 #59675c,#0d1410, 7-20 #e5eee5,#0d1410, 21-27 #c9a7ed,#0d1410, 28-28 #e5eee5,#0d1410, 29-42 #b8d88a,#0d1410, 43-44 #e5eee5,#0d1410, 45-99 d,#0d1410,
|4: 0-0 d,#608269, 1-1 d,#0d1410, 2-6 #59675c,#0d1410, 7-99 d,#0d1410,
|5: 0-0 d,#608269, 1-1 d,#0d1410, 2-6 #59675c,#0d1410, 7-10 #e5eee5,#0d1410, 11-12 #c9a7ed,#0d1410, 13-38 #e5eee5,#0d1410, 39-99 d,#0d1410,
@@ -81,7 +81,7 @@
== snap subrow grid=100x35 cursor=16,7
|Newcol Joincol Find Grep Help Changelog Tutor Dump NextColor Debug Exit
| New Tty Find Grep Joincol Delcol
-|^ /tmp/pardes-snap/lsprelpath/cwd/sub/subdir.zig * Save Tty Collapse Del TreeContext
+|^ /tmp/pardes-snap/lsprelpath/cwd/sub/subdir.zig Save Tty Collapse Del TreeContext
| 1 const tint = @import("inner/tint.zig");
| 2
| 3 pub fn hue(t: tint.Tint) u8 {
@@ -115,7 +115,7 @@
| 1 inner/tint.zig:2:5-9 ochre ochre,
| 2 inner/tint.zig:3:5-10 indigo indigo,
== snap sublook grid=100x35 cursor=15,19
-|2: /tmp/pardes-snap/lsprelpath/cwd/sub/subdir.zig * Save Tty Collapse Del TreeContext
+|2: /tmp/pardes-snap/lsprelpath/cwd/sub/subdir.zig Save Tty Collapse Del TreeContext
|17: /tmp/pardes-snap/lsprelpath/cwd/sub/inner/tint.zig Save Tty Collapse Del TreeContext
|18: 1 pub const Tint = enum {
|19: 2 ochre,
@@ -125,7 +125,7 @@
== style sublook grid=100x35
|0: 0-70 #b2c3b8,#1d2824, 71-99 d,#1d2824,
|1: 0-1 #ffffff,#887455, 2-2 d,#26362d, 3-34 #becfc4,#26362d, 35-99 d,#26362d,
-|2: 0-1 #ffffff,#496656, 2-2 d,#1d2824, 3-38 #b2c3b8,#1d2824, 39-48 #d3b0d9,#1d2824, 49-84 #b2c3b8,#1d2824, 85-99 d,#1d2824,
+|2: 0-1 #ffffff,#496656, 2-2 d,#1d2824, 3-38 #b2c3b8,#1d2824, 39-48 #d3b0d9,#1d2824, 49-82 #b2c3b8,#1d2824, 83-99 d,#1d2824,
|3: 0-0 d,#608269, 1-1 d,#0d1410, 2-6 #59675c,#0d1410, 7-19 #e5eee5,#0d1410, 20-26 #c9a7ed,#0d1410, 27-27 #e5eee5,#0d1410, 28-43 #b8d88a,#0d1410, 44-45 #e5eee5,#0d1410, 46-99 d,#0d1410,
|4: 0-0 d,#608269, 1-1 d,#0d1410, 2-6 #59675c,#0d1410, 7-99 d,#0d1410,
|5: 0-0 d,#608269, 1-1 d,#0d1410, 2-6 #59675c,#0d1410, 7-10 #e5eee5,#0d1410, 11-12 #c9a7ed,#0d1410, 13-35 #e5eee5,#0d1410, 36-99 d,#0d1410,
diff --git a/test/snapshots/msg.golden b/test/snapshots/msg.golden
index d9a4a079..0b13e8be 100644
--- a/test/snapshots/msg.golden
+++ b/test/snapshots/msg.golden
@@ -45,7 +45,6 @@
|3: 1 AGAIN
|4: 2
== snap msgbuiltin grid=70x17 cursor=29,5
-|2: /tmp/pardes-snap/msg/cwd/a.txt * Save Tty Collapse Del
|3: 1 AGAIN hand-written report
|5: 3 Msg hand-written report
== snap msgtail grid=70x17 cursor=32,7
diff --git a/test/snapshots/multicursor.golden b/test/snapshots/multicursor.golden
index 96762bd5..c03b5c13 100644
--- a/test/snapshots/multicursor.golden
+++ b/test/snapshots/multicursor.golden
@@ -52,13 +52,11 @@
|29: 0-0 d,#608269, 1-1 d,#0d1410, 2-74 #e5eee5,#0d1410, 75-75 d,#608269, 76-76 d,#0d1410, 77-149 #e5eee5,#0d1410,
|30: 0-0 d,#608269, 1-1 d,#0d1410, 2-74 #e5eee5,#0d1410, 75-75 d,#608269, 76-76 d,#0d1410, 77-149 #e5eee5,#0d1410,
== snap edited-at-three grid=150x31 cursor=9,9
-|6: /tmp/pardes-snap/multicursor/cwd/f.txt * Save Tty Collapse Del
|7: 1 >>line 1
|8: 2 >>line 2
|9: 3 >>line 3
== snap three-selections grid=150x31 cursor=8,9
== style three-selections grid=150x31
-|6: 0-1 #000000,#add38a, 2-2 d,#26362d, 3-35 #becfc4,#26362d, 36-40 #dfbce5,#26362d, 41-64 #becfc4,#26362d, 65-74 d,#26362d, 75-75 d,#608269, 76-76 d,#0d1410, 77-149 #e5eee5,#0d1410,
|7: 0-0 d,#608269, 1-1 d,#0d1410, 2-6 #59675c,#0d1410, 7-7 #f5f7ee,#243a2d, 8-8 #3c614a,#f5f7ee, 9-14 #e5eee5,#0d1410, 15-74 d,#0d1410, 75-75 d,#608269, 76-76 d,#0d1410, 77-149 #e5eee5,#0d1410,
|8: 0-0 d,#608269, 1-1 d,#0d1410, 2-6 #59675c,#0d1410, 7-7 #f5f7ee,#243a2d, 8-8 #3c614a,#f5f7ee, 9-14 #e5eee5,#0d1410, 15-74 d,#0d1410, 75-75 d,#608269, 76-76 d,#0d1410, 77-149 #e5eee5,#0d1410,
|9: 0-0 d,#608269, 1-1 d,#0d1410, 2-6 #616f64,#0d1410,b 7-8 #f5f7ee,#3c614a, 9-14 #e5eee5,#0d1410, 15-74 d,#0d1410, 75-75 d,#608269, 76-76 d,#0d1410, 77-149 #e5eee5,#0d1410,
diff --git a/test/snapshots/ninep.golden b/test/snapshots/ninep.golden
index 65fb38ec..a336ad94 100644
--- a/test/snapshots/ninep.golden
+++ b/test/snapshots/ninep.golden
@@ -73,7 +73,6 @@
|7: 5 return 7;
@7: 0-0 d,#608269,,body 1-1 d,#0d1410,,body 2-6 #59675c,#0d1410,,body 7-19 #e5eee5,#0d1410,,body 20-89 d,#0d1410,,body
== snap edited-with-colors-off grid=90x15 cursor=7,4
-|2: /tmp/pardes-snap/ninep/cwd/demo.zig * Save Tty Collapse Del TreeContext
|3: 1 // café λ 界
|4: 2 const greeting = "café λ 界 é";
|5: 3
@@ -83,8 +82,6 @@
|9: 7 }
|10: 8
== 9p edited-with-colors-off grid=90x15 cursor=7,4,block
-|2: /tmp/pardes-snap/ninep/cwd/demo.zig * Save Tty Collapse Del TreeContext
-@2: 0-1 #000000,#add38a,,tagline 2-2 d,#26362d,,tagline 3-29 #becfc4,#26362d,,tagline 30-37 #dfbce5,#26362d,,tagline 38-73 #becfc4,#26362d,,tagline 74-89 d,#26362d,,tagline
|3: 1 // café λ 界
+3: 13="é" 15="λ" 17="界" 18=""
@3: 0-0 d,#608269,,body 1-1 d,#0d1410,,body 2-6 #59675c,#0d1410,,body 7-18 #e5eee5,#0d1410,,body 19-89 d,#0d1410,,body
@@ -104,7 +101,6 @@
|10: 8
@10: 0-0 d,#608269,,body 1-1 d,#0d1410,,body 2-6 #59675c,#0d1410,,body 7-89 d,#0d1410,,body
== style colors-on grid=90x15
-|2: 0-1 #000000,#add38a, 2-2 d,#26362d, 3-29 #becfc4,#26362d, 30-37 #dfbce5,#26362d, 38-73 #becfc4,#26362d, 74-89 d,#26362d,
|3: 0-0 d,#608269, 1-1 d,#0d1410, 2-6 #59675c,#0d1410, 7-17 #b9f480,#0d1410, 18-18 d,d, 19-81 d,#0d1410, 82-82 d,#1d2824, 83-88 #b2c3b8,#1d2824, 89-89 d,#1d2824,
|4: 0-0 d,#608269, 1-1 d,#0d1410, 2-6 #616f64,#0d1410,b 7-23 #e5eee5,#0d1410, 24-32 #b8d88a,#0d1410, 33-33 d,d, 34-36 #b8d88a,#0d1410, 37-37 #e5eee5,#0d1410, 38-89 d,#0d1410,
|5: 0-0 d,#608269, 1-1 d,#0d1410, 2-6 #59675c,#0d1410, 7-89 d,#0d1410,
@@ -128,7 +124,7 @@
== style resized grid=105x20
|0: 0-70 #b2c3b8,#1d2824, 71-104 d,#1d2824,
|1: 0-1 #ffffff,#887455, 2-2 d,#26362d, 3-34 #becfc4,#26362d, 35-104 d,#26362d,
-|2: 0-1 #000000,#add38a, 2-2 d,#26362d, 3-29 #becfc4,#26362d, 30-37 #dfbce5,#26362d, 38-73 #becfc4,#26362d, 74-104 d,#26362d,
+|2: 0-1 #000000,#add38a, 2-2 d,#26362d, 3-29 #becfc4,#26362d, 30-37 #dfbce5,#26362d, 38-71 #becfc4,#26362d, 72-104 d,#26362d,
|3: 0-0 d,#608269, 1-1 d,#0d1410, 2-6 #59675c,#0d1410, 7-17 #b9f480,#0d1410, 18-18 d,d, 19-96 d,#0d1410, 97-97 d,#1d2824, 98-103 #b2c3b8,#1d2824, 104-104 d,#1d2824,
|4: 0-0 d,#608269, 1-1 d,#0d1410, 2-6 #616f64,#0d1410,b 7-23 #e5eee5,#0d1410, 24-32 #b8d88a,#0d1410, 33-33 d,d, 34-36 #b8d88a,#0d1410, 37-37 #e5eee5,#0d1410, 38-104 d,#0d1410,
|5: 0-0 d,#608269, 1-1 d,#0d1410, 2-6 #59675c,#0d1410, 7-104 d,#0d1410,
@@ -151,8 +147,8 @@
@0: 0-70 #b2c3b8,#1d2824,,tagline 71-104 d,#1d2824,,tagline
|1: New Tty Find Grep Joincol Delcol
@1: 0-1 #ffffff,#887455,,tagline 2-2 d,#26362d,,tagline 3-34 #becfc4,#26362d,,tagline 35-104 d,#26362d,,tagline
-|2: /tmp/pardes-snap/ninep/cwd/demo.zig * Save Tty Collapse Del TreeContext
-@2: 0-1 #000000,#add38a,,tagline 2-2 d,#26362d,,tagline 3-29 #becfc4,#26362d,,tagline 30-37 #dfbce5,#26362d,,tagline 38-73 #becfc4,#26362d,,tagline 74-104 d,#26362d,,tagline
+|2: /tmp/pardes-snap/ninep/cwd/demo.zig Save Tty Collapse Del TreeContext
+@2: 0-1 #000000,#add38a,,tagline 2-2 d,#26362d,,tagline 3-29 #becfc4,#26362d,,tagline 30-37 #dfbce5,#26362d,,tagline 38-71 #becfc4,#26362d,,tagline 72-104 d,#26362d,,tagline
|3: 1 // café λ 界 Colors
+3: 13="é" 15="λ" 17="界" 18=""
@3: 0-0 d,#608269,,body 1-1 d,#0d1410,,body 2-6 #59675c,#0d1410,,body 7-18 #b9f480,#0d1410,,body 19-96 d,#0d1410,,body 97-97 d,#1d2824,,tagline 98-103 #b2c3b8,#1d2824,,tagline 104-104 d,#1d2824,,tagline
@@ -192,7 +188,7 @@
== snap resized grid=105x20 cursor=7,4
|Newcol Joincol Find Grep Help Changelog Tutor Dump NextColor Debug Exit
| New Tty Find Grep Joincol Delcol
-| /tmp/pardes-snap/ninep/cwd/demo.zig * Save Tty Collapse Del TreeContext
+| /tmp/pardes-snap/ninep/cwd/demo.zig Save Tty Collapse Del TreeContext
| 1 // café λ 界 Colors
| 2 const greeting = "café λ 界 é";
| 3
diff --git a/test/snapshots/pipe.golden b/test/snapshots/pipe.golden
index 6b7347bf..df628736 100644
--- a/test/snapshots/pipe.golden
+++ b/test/snapshots/pipe.golden
@@ -5,8 +5,6 @@
| 1 alpha beta |tr a-z A-Z
| 2 gamma delta
== snap filtered grid=180x13 cursor=17,3
-|2: /tmp/pardes-snap/pipe/cwd/pipe.txt * Save Tty Collapse Del
|3: 1 ALPHA BETA
== snap undone grid=180x13 cursor=17,3
-|2: /tmp/pardes-snap/pipe/cwd/pipe.txt Save Tty Collapse Del
|3: 1 alpha beta
diff --git a/test/snapshots/savepane.golden b/test/snapshots/savepane.golden
index 5fcdf656..110af681 100644
--- a/test/snapshots/savepane.golden
+++ b/test/snapshots/savepane.golden
@@ -4,7 +4,7 @@
| /tmp/pardes-snap/savepane/cwd Tty+bash Save Mode Filter Collapse Del
| ls
|
-| /tmp/pardes-snap/savepane/cwd/+New * Save Tty Collapse Del
+| /tmp/pardes-snap/savepane/cwd/+New Save Tty Collapse Del
| 1 scratch bytes
== snap prompt grid=100x31 cursor=99,7
|6: 1 scratch bytes Save
diff --git a/test/snapshots/selregex.golden b/test/snapshots/selregex.golden
index 7362a85a..13cd2c8c 100644
--- a/test/snapshots/selregex.golden
+++ b/test/snapshots/selregex.golden
@@ -51,12 +51,10 @@
|4: 0-0 d,#608269, 1-1 d,#0d1410, 2-6 #59675c,#0d1410, 7-10 #f5f7ee,#243a2d, 11-11 #3c614a,#f5f7ee, 12-18 #e5eee5,#0d1410, 19-19 #f8c082,#0d1410, 20-20 #e5eee5,#0d1410, 21-159 d,#0d1410,
|5: 0-0 d,#608269, 1-1 d,#0d1410, 2-6 #59675c,#0d1410, 7-10 #f5f7ee,#243a2d, 11-11 #3c614a,#f5f7ee, 12-20 #e5eee5,#0d1410, 21-21 #f8c082,#0d1410, 22-22 #e5eee5,#0d1410, 23-159 d,#0d1410,
== snap commented grid=160x25 cursor=14,3
-|2: /tmp/pardes-snap/selregex/cwd/m.zig * Save Tty Collapse Del TreeContext
|3: 1 // const one = 1;
|4: 2 // const two = 2;
|5: 3 // const three = 3;
== snap uncommented grid=160x25 cursor=11,3
-|2: /tmp/pardes-snap/selregex/cwd/m.zig Save Tty Collapse Del TreeContext
|3: 1 const one = 1;
|4: 2 const two = 2;
|5: 3 const three = 3;
diff --git a/test/snapshots/tagbottom.golden b/test/snapshots/tagbottom.golden
index 8d770358..9b99499e 100644
--- a/test/snapshots/tagbottom.golden
+++ b/test/snapshots/tagbottom.golden
@@ -164,7 +164,6 @@
|8: 7 mmm
|9: 8 nnn
|10: 9 ooo
-|11: /tmp/pardes-snap/tagbottom/cwd/top.txt * Save Tty Collapse Del bottom.txt
|12: 1 ZZONE
== file cut-buffer
aaa
diff --git a/test/snapshots/tagcmd.golden b/test/snapshots/tagcmd.golden
index 7853de32..1aa6819f 100644
--- a/test/snapshots/tagcmd.golden
+++ b/test/snapshots/tagcmd.golden
@@ -1,7 +1,7 @@
== snap edited grid=100x31 cursor=13,3
|Newcol Joincol Find Grep Help Changelog Tutor Dump NextColor Debug Exit
| New Tty Find Grep Joincol Delcol
-| /tmp/pardes-snap/tagcmd/cwd/c.txt * Save Tty Collapse Del
+| /tmp/pardes-snap/tagcmd/cwd/c.txt Save Tty Collapse Del
| 1 ZZEDITline 1
| 2 line 2
| 3 line 3
@@ -9,10 +9,9 @@
| 5 line 5
| 6 line 6
| 7
-== snap colon grid=100x31 cursor=39,2
-== snap word grid=100x31 cursor=43,2
+== snap colon grid=100x31 cursor=37,2
+== snap word grid=100x31 cursor=41,2
== snap saved grid=100x31 cursor=13,3
-|2: /tmp/pardes-snap/tagcmd/cwd/c.txt Save Tty Collapse Del
|3: 1 ZZEDITline 1 --:--:-- saved /tmp/pardes-snap/tagcmd/cwd/c.txt
== file written
ZZEDITline 1
diff --git a/test/snapshots/tagpath.golden b/test/snapshots/tagpath.golden
index ba22a859..04398668 100644
--- a/test/snapshots/tagpath.golden
+++ b/test/snapshots/tagpath.golden
@@ -43,15 +43,14 @@
|29: 0-0 d,#608269, 1-1 d,#0d1410, 2-6 #59675c,#0d1410, 7-99 d,#0d1410,
|30: 0-0 d,#608269, 1-1 d,#0d1410, 2-6 #59675c,#0d1410, 7-99 d,#0d1410,
== snap yanked-path grid=100x31 cursor=41,3
-|2: /tmp/pardes-snap/tagpath/cwd/c.txt * Save Tty Collapse Del
|3: 1 l/tmp/pardes-snap/tagpath/cwd/c.txtine 1
== snap drag-cross grid=100x31 cursor=41,2
== style drag-cross grid=100x31
-|2: 0-1 #000000,#add38a, 2-2 d,#26362d, 3-10 #becfc4,#26362d, 11-41 #f5f7ee,#3c614a, 42-60 #becfc4,#26362d, 61-99 d,#26362d,
+|2: 0-1 #000000,#add38a, 2-2 d,#26362d, 3-10 #becfc4,#26362d, 11-41 #f5f7ee,#3c614a, 42-58 #becfc4,#26362d, 59-99 d,#26362d,
|3: 0-0 d,#608269, 1-1 d,#0d1410, 2-6 #59675c,#0d1410, 7-7 #e5eee5,#0d1410, 8-41 #f5f7ee,#3c614a, 42-46 #e5eee5,#0d1410, 47-99 d,#0d1410,
== snap name-draft grid=100x31 cursor=11,2
-|2: /renamed/tmp/pardes-snap/tagpath/cwd/c.txt * Save Tty Collapse Del
+|2: /renamed/tmp/pardes-snap/tagpath/cwd/c.txt Save Tty Collapse Del
== snap name-cancelled grid=100x31 cursor=41,3
-|2: /tmp/pardes-snap/tagpath/cwd/c.txt * Save Tty Collapse Del
+|2: /tmp/pardes-snap/tagpath/cwd/c.txt Save Tty Collapse Del
== snap name-committed grid=100x31 cursor=41,3
-|2: /renamed/tmp/pardes-snap/tagpath/cwd/c.txt * Save Tty Collapse Del
+|2: /renamed/tmp/pardes-snap/tagpath/cwd/c.txt Save Tty Collapse Del
diff --git a/test/snapshots/yankpaste.golden b/test/snapshots/yankpaste.golden
index 2efcd66d..5e86d1d1 100644
--- a/test/snapshots/yankpaste.golden
+++ b/test/snapshots/yankpaste.golden
@@ -1,7 +1,7 @@
== snap linewise-below grid=100x31 cursor=13,6
|Newcol Joincol Find Grep Help Changelog Tutor Dump NextColor Debug Exit
| New Tty Find Grep Joincol Delcol
-| /tmp/pardes-snap/yankpaste/cwd/f.txt * Save Tty Collapse Del
+| /tmp/pardes-snap/yankpaste/cwd/f.txt Save Tty Collapse Del
| 1 line 1
| 2 line 2
| 3 line 3