Documentation
¶
Overview ¶
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.
Index ¶
Constants ¶
This section is empty.
Variables ¶
var ( Black = string([]byte{keyEscape, '[', '3', '0', 'm'}) Red = string([]byte{keyEscape, '[', '3', '1', 'm'}) Green = string([]byte{keyEscape, '[', '3', '2', 'm'}) Yellow = string([]byte{keyEscape, '[', '3', '3', 'm'}) Blue = string([]byte{keyEscape, '[', '3', '4', 'm'}) Magenta = string([]byte{keyEscape, '[', '3', '5', 'm'}) Cyan = string([]byte{keyEscape, '[', '3', '6', 'm'}) White = string([]byte{keyEscape, '[', '3', '7', 'm'}) BrightBlack = string([]byte{keyEscape, '[', '9', '0', 'm'}) BrightRed = string([]byte{keyEscape, '[', '9', '1', 'm'}) BrightGreen = string([]byte{keyEscape, '[', '9', '2', 'm'}) BrightYellow = string([]byte{keyEscape, '[', '9', '3', 'm'}) BrightBlue = string([]byte{keyEscape, '[', '9', '4', 'm'}) BrightMagenta = string([]byte{keyEscape, '[', '9', '5', 'm'}) BrightCyan = string([]byte{keyEscape, '[', '9', '6', 'm'}) BrightWhite = string([]byte{keyEscape, '[', '9', '7', 'm'}) Reset = string([]byte{keyEscape, '[', '0', 'm'}) )
VT100 Escape codes
Functions ¶
func GetSize ¶
GetSize returns the visible dimensions of the given terminal.
These dimensions don't include any scrollback buffer height.
func IsTerminal ¶
IsTerminal returns whether the given file descriptor is a terminal.
Types ¶
type State ¶
type State struct {
// contains filtered or unexported fields
}
State contains the state of a terminal.
func GetState ¶
GetState returns the current state of a terminal which may be useful to restore the terminal after a signal.
func MakeRawInput ¶ added in v0.3.0
MakeRawInput puts the terminal connected to the given file descriptor into raw input mode and returns the previous state of the terminal so that it can be restored.
func MakeRawOutput ¶ added in v0.3.0
MakeRawOutput puts the terminal connected to the given file descriptor into raw output mode and returns the previous state of the terminal so that it can be restored.
type Terminal ¶
type Terminal struct { // 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. AutoCompleteCallback func(line string, pos int, key rune) (newLine string, newPos int, ok bool) // HistoryTestCallback, if non-null, is called before a line is added to // the terminal's history buffer. If the line should be accepted into the // history, the callback should return true. HistoryTestCallback func(line string) (accept bool) // contains filtered or unexported fields }
Terminal contains the state for running a VT100 terminal that is capable of reading lines of input.
func NewTerminal ¶
func NewTerminal(c io.ReadWriter, prompt string) *Terminal
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. "> ").