# A topbar word runs on a middle click, and it runs WITH whatever is selected: # sweep a word, click Grep, it greps that word. That is acme's 2-1 chord with # no drag to chord into, and it is the whole reason the topbar reads the # selection at all. # # But a selection is only an argument to a builtin that has somewhere to put # one. `Exit`, `Debug`, `NextColor` and the rest match their name WHOLE — that # is what makes `Exit foo` a shell command and not Exit — so splicing a sweep # onto them produced a name matching no builtin, which fell out of the builtin # parser and into a SHELL, as a command nobody typed (`bash: Debug: command # not found`). It only ever bit you with a terminal open, because that is # where the stray text went. # # So both halves are pinned here, against the same live selection: the no-arg # builtin runs, and the arg-taking one still gets the word. file zmarkfile.txt hay ZQNEEDLE stack start 21 90 -n 3 wait 8000 zmarkfile.txt stable 700 20000 # sweep `zmarkfile.txt` out of the shell's own greeting: an ordinary left drag, # and the kind of stale highlight that is simply lying around in real use press left 3 6 drag left 15 6 release left 15 6 stable 700 15000 snap selected # Debug takes NO argument. Middle-clicked with that sweep live it must open the # overlay — not send `Debug zmarkfile.txt` to bash. The box IS the assertion. press middle @Debug 1 release middle @Debug 1 stable 700 15000 snap noarg-runs # ...and off again, so the overlay does not cover what comes next press middle @Debug 1 release middle @Debug 1 stable 700 15000 # Find DOES take one, and still gets it: the sweep is the pattern, so the # results buffer names the file it matched. An empty buffer would mean Find # ran with no argument (which arms the prompt instead), so the ROW is the # assertion — the splice is what put it there. press middle @Find 1 release middle @Find 1 wait 10000 +Search stable 700 15000 snap arg-still-spliced