package term

Import Path
	golang.org/x/term (on go.dev)

Dependency Relation
	imports 8 packages, and imported by one package

Involved Source Files Package term provides support functions for dealing with terminals, as commonly found on UNIX systems. Putting a terminal into raw mode is the most common requirement: oldState, err := term.MakeRaw(int(os.Stdin.Fd())) if err != nil { panic(err) } defer term.Restore(int(os.Stdin.Fd()), oldState) Note that on non-Unix systems os.Stdin.Fd() may not be 0. term_unix.go term_unix_other.go terminal.go
Package-Level Type Names (total 4)
/* sort by: | */
EscapeCodes contains escape sequences that can be written to the terminal in order to achieve different styles of text. Foreground colors Foreground colors Foreground colors Foreground colors Foreground colors Foreground colors Reset all attributes Foreground colors Foreground colors
A History provides a (possibly bounded) queue of input lines read by [Terminal.ReadLine]. Add will be called by [Terminal.ReadLine] to add a new, most recent entry to the history. It is allowed to drop any entry, including the entry being added (e.g., if it's deemed an invalid entry), the least-recent entry (e.g., to keep the history bounded), or any other entry. At returns an entry from the history. Index 0 is the most-recently added entry and index Len()-1 is the least-recently added entry. If index is < 0 or >= Len(), it panics. Len returns the number of entries in the history.
State contains the state of a terminal. func GetState(fd int) (*State, error) func MakeRaw(fd int) (*State, error) func Restore(fd int, oldState *State) error
Terminal contains the state for running a VT100 terminal that is capable of reading lines of input. AutoCompleteCallback, if non-null, is called for each keypress with the full input line and the current position of the cursor (in bytes, as an index into |line|). If it returns ok=false, the key press is processed normally. Otherwise it returns a replacement line and the new cursor position. This will be disabled during ReadPassword. Escape contains a pointer to the escape codes for this terminal. It's always a valid pointer, although the escape codes themselves may be empty if the terminal doesn't support them. History records and retrieves lines of input read by [ReadLine] which a user can retrieve and navigate using the up and down arrow keys. It is not safe to call ReadLine concurrently with any methods on History. [NewTerminal] sets this to a default implementation that records the last 100 lines of input. ReadLine returns a line of input from the terminal. ReadPassword temporarily changes the prompt and reads a password, without echo, from the terminal. The AutoCompleteCallback is disabled during this call. SetBracketedPasteMode requests that the terminal bracket paste operations with markers. Not all terminals support this but, if it is supported, then enabling this mode will stop any autocomplete callback from running due to pastes. Additionally, any lines that are completely pasted will be returned from ReadLine with the error set to ErrPasteIndicator. SetPrompt sets the prompt to be used when reading subsequent lines. (*Terminal) SetSize(width, height int) error (*Terminal) Write(buf []byte) (n int, err error) *Terminal : github.com/miekg/dns.Writer *Terminal : internal/bisect.Writer *Terminal : io.Writer func NewTerminal(c io.ReadWriter, prompt string) *Terminal
Package-Level Functions (total 7)
GetSize returns the visible dimensions of the given terminal. These dimensions don't include any scrollback buffer height.
GetState returns the current state of a terminal which may be useful to restore the terminal after a signal.
IsTerminal returns whether the given file descriptor is a terminal.
MakeRaw puts the terminal connected to the given file descriptor into raw mode and returns the previous state of the terminal so that it can be restored.
NewTerminal runs a VT100 terminal on the given ReadWriter. If the ReadWriter is a local terminal, that terminal must first have been put into raw mode. prompt is a string that is written at the start of each input line (i.e. "> ").
ReadPassword reads a line of input from a terminal without local echo. This is commonly used for inputting passwords and other sensitive data. The slice returned does not include the \n.
Restore restores the terminal connected to the given file descriptor to a previous state.
Package-Level Variables (only one)
ErrPasteIndicator may be returned from ReadLine as the error, in addition to valid line data. It indicates that bracketed paste mode is enabled and that the returned line consists only of pasted data. Programs may wish to interpret pasted data more literally than typed data.