summaryrefslogtreecommitdiff
path: root/src/output_pane.zig
diff options
context:
space:
mode:
Diffstat (limited to 'src/output_pane.zig')
-rw-r--r--src/output_pane.zig36
1 files changed, 22 insertions, 14 deletions
diff --git a/src/output_pane.zig b/src/output_pane.zig
index 8ff98845..37ec6033 100644
--- a/src/output_pane.zig
+++ b/src/output_pane.zig
@@ -83,19 +83,27 @@ pub const Traits = struct {
/// look path resolves, so the buffer IS helix's picker. Prose (a hover
/// blurb, a formatting diff) has nowhere to step to.
steps: bool = false,
- /// ...and what a step DOES with the row it lands on. Off, the row is a
- /// LOCATION and its leading word is LOOKED. On, the row is a COMMAND LINE
- /// and the whole of it is EXECUTED — so walking the list runs each row in
- /// turn, which is what makes a picker over things that take effect
- /// immediately (ThemeSel) a plain list of the words you would have typed.
- /// Both go through the ordinary builtin (config.look_cmd / exec_cmd), so a
- /// row does exactly what the matching mouse button on it would.
+ /// ...and WHAT THE ROWS ARE. Off, each is a LOCATION with a look-able
+ /// `path:LINE:COL` word inside it. On, each is a COMMAND LINE — the whole
+ /// row, exactly as you would have typed it (ThemeSel's `Theme gruvbox`) —
+ /// with no path in it to pick out.
+ ///
+ /// TWO readers, one fact, which is why the column is named for the fact:
+ /// n/N (lookWalk) select the look-able span inside a location row, and
+ /// THE WHOLE LINE of a command row, since the line is
+ /// the unit there. Either way they only select; Enter
+ /// looks what they left, Tab runs it.
+ /// searchStep Looks a location row's leading word and Execs a
+ /// command row whole — still how `]d`/`[d` and acme's
+ /// button-3 arrive somewhere in one gesture.
+ /// Both go through the ordinary builtins (config.look_cmd / exec_cmd), so
+ /// a row does exactly what the matching mouse button on it would.
///
/// Nothing about this is output-pane specific, which is why it is a column
- /// here and not a branch in searchStep: `file_row` answers it too, so a
+ /// here and not a branch in either reader: `file_row` answers it too, so a
/// file pane whose lines happen to be commands is one word away from
/// behaving the same.
- executes: bool = false,
+ commands: bool = false,
/// an answer of exactly ONE row jumps straight there instead of opening
/// this buffer at all — helix: the gotos jump on a single location and
/// show a picker on several, a symbol list is always a picker.
@@ -129,7 +137,7 @@ pub fn traits(o: Origin) Traits {
.name = meta.name,
.steps = meta.steps,
.jumps = meta.jumps,
- .executes = meta.executes,
+ .commands = meta.commands,
};
},
.query => |k| switch (k) {
@@ -358,10 +366,10 @@ pub fn openJumps(p: *Pardes, id: usize) !void {
/// The ThemeSel builtin: the theme ring written out as one `Theme <name>` row
/// per theme — the ordinary builtin with its argument, exactly the line you
-/// would type — into a buffer whose `executes` trait makes n/N RUN each row
-/// rather than look it. So walking the list is trying the themes on, and
-/// stopping on one is choosing it; there is no picker mode, no preview state
-/// and nothing to commit or cancel, because every step already did the thing.
+/// would type — into a buffer whose `commands` trait says the rows are words
+/// and not places. n/N therefore select each row WHOLE and Tab runs it, so
+/// walking the list is trying the themes on and stopping on one is choosing
+/// it: no picker mode, no preview state, nothing to commit or cancel.
///
/// The command's own name comes from the builtin rather than a literal: the
/// word is derived from the struct in exactly one place (builtins.word), and a