Documentation
¶
Overview ¶
Package picker is the CLI's interactive list chooser: a numbered table on stderr, a prompt on stdin. Typing a number picks, typing text filters the list (case-insensitive substring), an empty answer takes the default. No alternate screen, no raw mode — it works in any terminal and is scriptable by piping answers, which is also how the test suite drives it.
Index ¶
Constants ¶
This section is empty.
Variables ¶
var ErrBack = errors.New("back")
ErrBack is returned on Esc (with an empty filter): go one screen back. Screens without a parent treat it like ErrCancelled.
var ErrCancelled = errors.New("cancelled")
ErrCancelled is returned on Ctrl-C: leave the whole program.
var ErrTab = errors.New("tab")
ErrTab is returned when Tab is pressed on a single-select screen — the application-wide "switch to the downloads screen" gesture. Multi-select keeps Tab for marking.
var ExtraHint func() string
ExtraHint, when set, contributes an application status fragment to every picker's hint line (e.g. "tab: downloads (2 active)").
Functions ¶
func Pick ¶
Pick lets the person choose exactly one item and returns its index: the arrow-key list on a real terminal, the numbered prompt otherwise (piped answers, WEBTOR_PLAIN_PICKER=1, dumb terminals). def is the default index (-1 for none).
func PickLive ¶ added in v1.7.0
PickLive is Pick for data that changes underneath: refresh is called before every frame (and every ~500ms of idle time when the platform supports polling reads), so progress-style screens stay current without keystrokes. Enter returns the selected index into the LAST refreshed slice, Esc returns ErrBack, Ctrl-C ErrCancelled. Plain environments fall back to a one-shot numbered prompt over a snapshot.
func PickMulti ¶
PickMulti lets the person choose several items: Tab marks in the arrow-key list; the numbered fallback understands "3", "1,4", "2-5", "all".