# RULE: Help is THE INDEX of the builtins — every one of them, and every way # to run it — not a listing of leader paths. Three columns, all derived at # comptime from config.zig's own tables: the SPC path (leader_path), the name, # and every other shortcut bound to that name (window_keys and jump_keys' `cmd` # columns, look_cmd/exec_cmd with their keys and mouse buttons, a word in # topbar_str). A builtin added tomorrow is a row here with nothing to edit. # # The cases this exists for are the ones a leader listing could not show: # Look and Exec have NO SPC path — their shortcuts are Enter/Tab and the two # mouse buttons — Theme has no shortcut at all, because a key path can never # carry the name of a theme, and Filter is reached from terminal tags rather # than the leader. All are rows, and their blank columns are the information. # # `SPC ?` mid-chord is the SAME array read with a non-empty prefix, which is # why there is one builtin here and not two: the group filter drops the # path-less rows by itself, and the reference page is the filter's empty case. lines notes.txt 6 start 66 120 notes.txt wait 8000 notes.txt stable 700 20000 snap boot # SPC ? at the ROOT. Focus follows the listing — you asked to read it. key space ? wait 10000 SPC c n stable 700 15000 snap index # The tail of the same listing: the window group carries BOTH spellings of # each Ctrl-w chord (the table carries both), and past the last path come the # builtins SPC cannot reach. `ge` walks the buffer's own body to the end. key g e stable 700 15000 snap index-tail # n/N here run NOTHING, and no longer could: they are a MOTION, and the only # thing they do is move the selection onto look-able text. A row here is a key # path and a NAME — this list holds Kill, Del and Delcol — and a name is not a # path, so the ring finds nothing to stop on in this buffer or in the file # above it. Three presses, and the panes and the listing are all where they # were. Picking a command is executing its row, two snaps down. key n key n key n stable 700 15000 snap not-a-picker # and the mid-chord filter is untouched: `SPC w ?` still answers "what can w # still reach", rewriting the same +Help buffer with just that group — the four # directional moves, each now also showing the Ctrl-w chord that is the other # way in, and none of the path-less builtins, which `w` cannot reach. key space w ? wait 10000 Right stable 700 15000 snap window-group # back to the whole index, and a NAME in it is live text like anywhere else: # middle-click `Tutor` and the tutor opens. That is how a list of commands is # picked from — you run the row you want and the ones you passed stay unrun, # which is the whole reason n/N were never allowed to be the picker. # # The one place in this suite a builtin cannot be added for free: the click is # a SCREEN coordinate, so every row inserted above `SPC h t` in the listing # moves Tutor down one and this number with it. The five clipboard builtins # put three there — SPC P, SPC R and SPC Y, uppercase sorting ahead of the # lowercase `SPC h`; the eleven panel effects now follow them as well. key space ? wait 10000 SPC c n stable 700 15000 press middle 20 65 release middle 20 65 wait 10000 PARDES TUTOR stable 700 15000 snap tutor-from-index