picker

package
v1.6.1 Latest Latest
Warning

This package is not in the latest version of its module.

Go to latest
Published: Aug 12, 2026 License: MIT Imports: 11 Imported by: 0

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

View Source
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.

View Source
var ErrCancelled = errors.New("cancelled")

ErrCancelled is returned on Ctrl-C: leave the whole program.

Functions

func Pick

func Pick(title string, items []Item, def int) (int, error)

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 PickMulti

func PickMulti(title string, items []Item) ([]int, error)

PickMulti lets the person choose several items: Tab marks in the arrow-key list; the numbered fallback understands "3", "1,4", "2-5", "all".

func ReadLine added in v1.4.0

func ReadLine(prompt string) (string, error)

ReadLine prints prompt on stderr and reads one trimmed line from stdin, sharing the program-wide Scanner so buffered piped answers are not lost.

Types

type Item

type Item struct {
	Label  string
	Detail string
}

Item is one selectable row.

Jump to

Keyboard shortcuts

? : This menu
/ : Search site
f or F : Jump to
y or Y : Canonical URL