Documentation ¶
Index ¶
- Variables
- func MakeHelpText(lines ...string) (s string)
- type Argument
- type Cmd
- type Command
- type EscapeCodes
- type Flag
- type Node
- type ParsedLine
- func (pl *ParsedLine) ArgumentsAsStrings() (out []string)
- func (pl *ParsedLine) ExpectArgs(flag string, needs int) ([]Argument, error)
- func (pl *ParsedLine) GetArg(flag string) (Argument, error)
- func (pl *ParsedLine) GetArgString(flag string) (string, error)
- func (pl *ParsedLine) GetArgs(flag string) ([]Argument, error)
- func (pl *ParsedLine) GetArgsString(flag string) ([]string, error)
- func (pl *ParsedLine) IsSet(flag string) bool
- type Terminal
- func (t *Terminal) AddCommands(m map[string]Command) error
- func (t *Terminal) AddValueAutoComplete(placement string, trie *trie.Trie) error
- func (t *Terminal) DisableRaw()
- func (t *Terminal) EnableRaw()
- func (t *Terminal) Read(b []byte) (n int, err error)
- func (t *Terminal) ReadLine() (line string, err error)
- func (t *Terminal) ReadPassword(prompt string) (line string, err error)
- func (t *Terminal) Run() error
- func (t *Terminal) SetBracketedPasteMode(on bool)
- func (t *Terminal) SetPrompt(prompt string)
- func (t *Terminal) SetSize(width, height int) error
- func (t *Terminal) Write(buf []byte) (n int, err error)
- type TerminalFunctionCallback
Constants ¶
This section is empty.
Variables ¶
var ErrCtrlC = errors.New("Ctrl + C")
var ErrCtrlD = errors.New("Ctrl + D")
var ErrFlagNotSet = errors.New("Flag not set")
var ErrPasteIndicator = pasteIndicatorError{}
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.
var ErrTrample = errors.New("Function already registered")
Functions ¶
func MakeHelpText ¶ added in v1.0.2
Types ¶
type Command ¶
type Command interface { // Returns the expected syntax for the command, used in the autocomplete process with text tokens to indicate where autocomplete can occur Expect(line ParsedLine) []string // Run the command with the given arguments Run(output io.ReadWriter, line ParsedLine) error // Give helptext for commands Help(explain bool) string }
type EscapeCodes ¶
type EscapeCodes struct {
// Foreground colors
Black, Red, Green, Yellow, Blue, Magenta, Cyan, White []byte
// Reset all attributes
Reset []byte
}
EscapeCodes contains escape sequences that can be written to the terminal in order to achieve different styles of text.
type ParsedLine ¶
type ParsedLine struct { FlagsOrdered []Flag Flags map[string]Flag Arguments []Argument Focus Node Section *Flag Command *Cmd RawLine string }
func ParseLine ¶
func ParseLine(line string, cursorPosition int) (pl ParsedLine)
func ParseLineValidFlags ¶
func (*ParsedLine) ArgumentsAsStrings ¶
func (pl *ParsedLine) ArgumentsAsStrings() (out []string)
func (*ParsedLine) ExpectArgs ¶
func (pl *ParsedLine) ExpectArgs(flag string, needs int) ([]Argument, error)
func (*ParsedLine) GetArgString ¶
func (pl *ParsedLine) GetArgString(flag string) (string, error)
func (*ParsedLine) GetArgsString ¶
func (pl *ParsedLine) GetArgsString(flag string) ([]string, error)
func (*ParsedLine) IsSet ¶
func (pl *ParsedLine) IsSet(flag string) bool
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(term *Terminal, line string, pos int, key rune) (newLine string, newPos int, ok bool) // 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. Escape *EscapeCodes // contains filtered or unexported fields }
Terminal contains the state for running a VT100 terminal that is capable of reading lines of input.
func NewAdvancedTerminal ¶
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. "> ").
func (*Terminal) AddValueAutoComplete ¶
func (*Terminal) DisableRaw ¶
func (t *Terminal) DisableRaw()
func (*Terminal) ReadPassword ¶
ReadPassword temporarily changes the prompt and reads a password, without echo, from the terminal.
func (*Terminal) SetBracketedPasteMode ¶
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.