diff options
| author | Gabriel Schneider <[email protected]> | 2026-07-31 00:52:02 -0300 |
|---|---|---|
| committer | Gabriel Schneider <[email protected]> | 2026-08-01 15:02:08 -0300 |
| commit | a77e342eb7fa4add700a96a661226649e8c4763f (patch) | |
| tree | 3ad4978cca350090463e58840dc94404ea8a1a33 /src/builtins.zig | |
| parent | ea228d1b832401db8efe33a5db4099ba41d42509 (diff) | |
| download | pardes-a77e342eb7fa4add700a96a661226649e8c4763f.tar.gz pardes-a77e342eb7fa4add700a96a661226649e8c4763f.zip | |
output panes remember the command that opened them
An output buffer was a file pane with a flag, and everything special about it
was re-derived from outside by asking the wrong question: the buffer NAME
("+Search", "+Help"), a parallel search_kind field, and f.output predicates
sprinkled through kind-agnostic code.
Now it carries its Origin — the Builtin, or the lsp.Kind for the five gotos
helix binds as motions rather than words — plus that command's argument, and
one Traits table answers every question the scattered code used to ask: what
it is called, whether n/N steps it, whether it is a doc for layout, whether
Esc dismisses it, whether it saves. The name is derived FROM the command
instead of being the thing that identifies it.
Adding a kind of output pane is adding a row. No golden moved.
Diffstat (limited to 'src/builtins.zig')
| -rw-r--r-- | src/builtins.zig | 2 |
1 files changed, 1 insertions, 1 deletions
diff --git a/src/builtins.zig b/src/builtins.zig index d32e4ed3..500ce264 100644 --- a/src/builtins.zig +++ b/src/builtins.zig @@ -198,7 +198,7 @@ pub const Ascii = struct { pub const Save = struct { pub fn run(c: Ctx) void { // an output buffer has no file behind it — nothing to write - if (c.pane.file) |f| if (!f.output) c.p.emit(.{ .save_file = .{ .pane = @intCast(c.id) } }); + if (c.pane.file) |f| if (output_pane.fileTraits(f.output).saves) c.p.emit(.{ .save_file = .{ .pane = @intCast(c.id) } }); } }; |
