summaryrefslogtreecommitdiff
path: root/src/builtins.zig
diff options
context:
space:
mode:
authorGabriel Schneider <[email protected]>2026-09-28 17:25:41 -0300
committerGabriel Schneider <[email protected]>2026-10-01 00:12:15 -0300
commitcf45be79a5ab96d3b81078e7e5e2ba58bd5e5cee (patch)
tree929851769f85a12da753d12f127789aa8a81b9e1 /src/builtins.zig
parentc0302211818a95acb7a276abdba7a32eac2358d5 (diff)
downloadpardes-cf45be79a5ab96d3b81078e7e5e2ba58bd5e5cee.tar.gz
pardes-cf45be79a5ab96d3b81078e7e5e2ba58bd5e5cee.zip
Undo and Redo are builtins, as in acme's tags, so a pane's ctl and exec can step its body
Over 9P there was no way to take back an edit: acme's Undo and Redo were keys only. They are now pane builtins, reached from a tag, a pane ctl and exec, and listed in /commands. They are not added to the default tags, which would change every tag. Co-Authored-By: Claude Opus 5.5 <[email protected]>
Diffstat (limited to 'src/builtins.zig')
-rw-r--r--src/builtins.zig14
1 files changed, 14 insertions, 0 deletions
diff --git a/src/builtins.zig b/src/builtins.zig
index 23d853c8..a755969b 100644
--- a/src/builtins.zig
+++ b/src/builtins.zig
@@ -850,6 +850,20 @@ pub const Togglettymode = struct {
}
};
+/// acme's Undo and Redo (exec.c `undo`): step the pane's body back or
+/// forward through its edits, from a tag, a pane ctl or exec.
+pub const Undo = struct {
+ pub fn run(c: Ctx) void {
+ edit.doUndo(c.p, &c.pane.body);
+ }
+};
+
+pub const Redo = struct {
+ pub fn run(c: Ctx) void {
+ edit.doRedo(c.p, &c.pane.body);
+ }
+};
+
/// Fold a pane to its tag, or restore its share of the column.
pub const Collapse = struct {
pub fn run(c: Ctx) void {