diff options
Diffstat (limited to 'src/output_pane.zig')
| -rw-r--r-- | src/output_pane.zig | 36 |
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 |
