Documentation ¶
Index ¶
- Variables
- func BisectLeft(a []int, v int) int
- func BisectRight(a []int, v int) int
- func Choose(prefix string, choices []string, opts ...Option) string
- func Input(prefix string, completer Completer, opts ...Option) string
- type ASCIICode
- type Buffer
- func (b *Buffer) CursorDown(count int)
- func (b *Buffer) CursorLeft(count int)
- func (b *Buffer) CursorRight(count int)
- func (b *Buffer) CursorUp(count int)
- func (b *Buffer) Delete(count int) (deleted string)
- func (b *Buffer) DeleteBeforeCursor(count int) (deleted string)
- func (b *Buffer) Document() (d *Document)
- func (b *Buffer) InsertText(v string, overwrite bool, moveCursor bool)
- func (b *Buffer) JoinNextLine(separator string)
- func (b *Buffer) NewLine(copyMargin bool)
- func (b *Buffer) SwapCharactersBeforeCursor()
- func (b *Buffer) Text() string
- type Color
- type Completer
- type CompletionManager
- func (c *CompletionManager) Completing() bool
- func (c *CompletionManager) GetSelectedSuggestion() (s Suggest, ok bool)
- func (c *CompletionManager) GetSuggestions() []Suggest
- func (c *CompletionManager) Next()
- func (c *CompletionManager) Previous()
- func (c *CompletionManager) Reset()
- func (c *CompletionManager) Update(in Document)
- type ConsoleParser
- type ConsoleWriter
- type Document
- func (d *Document) CurrentLine() string
- func (d *Document) CurrentLineAfterCursor() string
- func (d *Document) CurrentLineBeforeCursor() string
- func (d *Document) CursorPositionCol() (col int)
- func (d *Document) CursorPositionRow() (row int)
- func (d *Document) FindStartOfPreviousWord() int
- func (d *Document) FindStartOfPreviousWordWithSpace() int
- func (d *Document) GetCharRelativeToCursor(offset int) (r rune)
- func (d *Document) GetCursorDownPosition(count int, preferredColumn int) int
- func (d *Document) GetCursorLeftPosition(count int) int
- func (d *Document) GetCursorRightPosition(count int) int
- func (d *Document) GetCursorUpPosition(count int, preferredColumn int) int
- func (d *Document) GetEndOfLinePosition() int
- func (d *Document) GetWordBeforeCursor() string
- func (d *Document) GetWordBeforeCursorWithSpace() string
- func (d *Document) LineCount() int
- func (d *Document) Lines() []string
- func (d *Document) OnLastLine() bool
- func (d *Document) TextAfterCursor() string
- func (d *Document) TextBeforeCursor() string
- func (d *Document) TranslateIndexToPosition(index int) (row int, col int)
- func (d *Document) TranslateRowColToIndex(row int, column int) (index int)
- type Exec
- type Executor
- type Filter
- type History
- type Key
- type KeyBind
- type KeyBindFunc
- type KeyBindMode
- type Option
- func OptionAddKeyBind(b ...KeyBind) Option
- func OptionDescriptionBGColor(x Color) Option
- func OptionDescriptionTextColor(x Color) Option
- func OptionHistory(x []string) Option
- func OptionInputBGColor(x Color) Option
- func OptionInputTextColor(x Color) Option
- func OptionLivePrefix(f func() (prefix string, useLivePrefix bool)) Option
- func OptionMaxSuggestion(x uint16) Option
- func OptionParser(x ConsoleParser) Option
- func OptionPrefix(x string) Option
- func OptionPrefixBackgroundColor(x Color) Option
- func OptionPrefixTextColor(x Color) Option
- func OptionPreviewSuggestionBGColor(x Color) Option
- func OptionPreviewSuggestionTextColor(x Color) Option
- func OptionScrollbarBGColor(x Color) Option
- func OptionScrollbarThumbColor(x Color) Option
- func OptionSelectedDescriptionBGColor(x Color) Option
- func OptionSelectedDescriptionTextColor(x Color) Option
- func OptionSelectedSuggestionBGColor(x Color) Option
- func OptionSelectedSuggestionTextColor(x Color) Option
- func OptionSuggestionBGColor(x Color) Option
- func OptionSuggestionTextColor(x Color) Option
- func OptionSwitchKeyBindMode(m KeyBindMode) Option
- func OptionTitle(x string) Option
- func OptionWriter(x ConsoleWriter) Option
- type Prompt
- type Render
- type Suggest
- type WinSize
- type WindowsParser
- type WindowsWriter
- func (w *WindowsWriter) AskForCPR()
- func (w *WindowsWriter) ClearTitle()
- func (w *WindowsWriter) CursorBackward(n int)
- func (w *WindowsWriter) CursorDown(n int)
- func (w *WindowsWriter) CursorForward(n int)
- func (w *WindowsWriter) CursorGoTo(row, col int)
- func (w *WindowsWriter) CursorUp(n int)
- func (w *WindowsWriter) EraseDown()
- func (w *WindowsWriter) EraseEndOfLine()
- func (w *WindowsWriter) EraseLine()
- func (w *WindowsWriter) EraseScreen()
- func (w *WindowsWriter) EraseStartOfLine()
- func (w *WindowsWriter) EraseUp()
- func (w *WindowsWriter) Flush() error
- func (w *WindowsWriter) HideCursor()
- func (w *WindowsWriter) SaveCursor()
- func (w *WindowsWriter) ScrollDown()
- func (w *WindowsWriter) ScrollUp()
- func (w *WindowsWriter) SetColor(fg, bg Color, bold bool)
- func (w *WindowsWriter) SetTitle(title string)
- func (w *WindowsWriter) ShowCursor()
- func (w *WindowsWriter) UnSaveCursor()
- func (w *WindowsWriter) Write(data []byte)
- func (w *WindowsWriter) WriteRaw(data []byte)
- func (w *WindowsWriter) WriteRawStr(data string)
- func (w *WindowsWriter) WriteStr(data string)
Constants ¶
This section is empty.
Variables ¶
var SwitchKeyBindMode = OptionSwitchKeyBindMode
SwitchKeyBindMode to set a key bind mode. Deprecated: Please use OptionSwitchKeyBindMode.
Functions ¶
func BisectLeft ¶
BisectLeft to Locate the insertion point for v in a to maintain sorted order.
func BisectRight ¶
BisectRight to Locate the insertion point for v in a to maintain sorted order.
Types ¶
type Buffer ¶
type Buffer struct { CursorPosition int // contains filtered or unexported fields }
Buffer emulates the console buffer.
func (*Buffer) CursorDown ¶
CursorDown move cursor to the next line. (for multi-line edit).
func (*Buffer) CursorLeft ¶
CursorLeft move to left on the current line.
func (*Buffer) CursorRight ¶
CursorRight move to right on the current line.
func (*Buffer) DeleteBeforeCursor ¶
DeleteBeforeCursor delete specified number of characters before cursor and return the deleted text.
func (*Buffer) Document ¶
Document method to return document instance from the current text and cursor position.
func (*Buffer) InsertText ¶
InsertText insert string from current line.
func (*Buffer) JoinNextLine ¶
JoinNextLine joins the next line to the current one by deleting the line ending after the current line.
func (*Buffer) SwapCharactersBeforeCursor ¶
func (b *Buffer) SwapCharactersBeforeCursor()
SwapCharactersBeforeCursor swaps the last two characters before the cursor.
type CompletionManager ¶
type CompletionManager struct {
// contains filtered or unexported fields
}
CompletionManager manages which suggestion is now selected.
func NewCompletionManager ¶
func NewCompletionManager(completer Completer, max uint16) *CompletionManager
NewCompletionManager returns initialized CompletionManager object.
func (*CompletionManager) Completing ¶
func (c *CompletionManager) Completing() bool
Completing returns whether the CompletionManager selects something one.
func (*CompletionManager) GetSelectedSuggestion ¶
func (c *CompletionManager) GetSelectedSuggestion() (s Suggest, ok bool)
GetSelectedSuggestion returns the selected item.
func (*CompletionManager) GetSuggestions ¶
func (c *CompletionManager) GetSuggestions() []Suggest
GetSelectedSuggestion returns the list of suggestion.
func (*CompletionManager) Next ¶
func (c *CompletionManager) Next()
Next to select the next suggestion item.
func (*CompletionManager) Previous ¶
func (c *CompletionManager) Previous()
Previous to select the previous suggestion item.
func (*CompletionManager) Update ¶
func (c *CompletionManager) Update(in Document)
Update to update the suggestions.
type ConsoleParser ¶
type ConsoleParser interface { // Setup Setup() error // TearDown TearDown() error // GetSCIICode returns ASCIICode correspond to input byte codes. GetKey(b []byte) Key // GetWinSize returns winsize struct which is the response of ioctl(2). GetWinSize() *WinSize // Read returns byte array. Read() ([]byte, error) }
type ConsoleWriter ¶
type ConsoleWriter interface { WriteRaw(data []byte) Write(data []byte) WriteStr(data string) WriteRawStr(data string) Flush() error EraseScreen() EraseUp() EraseDown() EraseStartOfLine() EraseEndOfLine() EraseLine() ShowCursor() HideCursor() CursorGoTo(row, col int) CursorUp(n int) CursorDown(n int) CursorForward(n int) CursorBackward(n int) AskForCPR() SaveCursor() UnSaveCursor() ScrollDown() ScrollUp() SetTitle(title string) ClearTitle() SetColor(fg, bg Color, bold bool) }
type Document ¶
Document has text displayed in terminal and cursor position.
func (*Document) CurrentLine ¶
CurrentLine return the text on the line where the cursor is. (when the input consists of just one line, it equals `text`.
func (*Document) CurrentLineAfterCursor ¶
CurrentLineAfterCursor returns the text from the cursor until the end of the line.
func (*Document) CurrentLineBeforeCursor ¶
CurrentLineBeforeCursor returns the text from the start of the line until the cursor.
func (*Document) CursorPositionCol ¶
CursorPositionCol returns the current column. (0-based.)
func (*Document) CursorPositionRow ¶
CursorPositionRow returns the current row. (0-based.)
func (*Document) FindStartOfPreviousWord ¶
FindStartOfPreviousWord returns an index relative to the cursor position pointing to the start of the previous word. Return `None` if nothing was found.
func (*Document) FindStartOfPreviousWordWithSpace ¶ added in v0.1.1
FindStartOfPreviousWordWithSpace is almost the same as FindStartOfPreviousWord. The only difference is to ignore contiguous spaces.
func (*Document) GetCharRelativeToCursor ¶
GetCharRelativeToCursor return character relative to cursor position, or empty string
func (*Document) GetCursorDownPosition ¶
GetCursorDownPosition return the relative cursor position (character index) where we would be if the user pressed the arrow-down button.
func (*Document) GetCursorLeftPosition ¶
GetCursorLeftPosition returns the relative position for cursor left.
func (*Document) GetCursorRightPosition ¶
GetCursorRightPosition returns relative position for cursor right.
func (*Document) GetCursorUpPosition ¶
GetCursorUpPosition return the relative cursor position (character index) where we would be if the user pressed the arrow-up button.
func (*Document) GetEndOfLinePosition ¶
GetEndOfLinePosition returns relative position for the end of this line.
func (*Document) GetWordBeforeCursor ¶
GetWordBeforeCursor returns the word before the cursor. If we have whitespace before the cursor this returns an empty string.
func (*Document) GetWordBeforeCursorWithSpace ¶ added in v0.1.1
GetWordBeforeCursorWithSpace returns the word before the cursor. Unlike GetWordBeforeCursor, it returns string containing space
func (*Document) LineCount ¶
LineCount return the number of lines in this document. If the document ends with a trailing \n, that counts as the beginning of a new line.
func (*Document) OnLastLine ¶
OnLastLine returns true when we are at the last line.
func (*Document) TextAfterCursor ¶
TextAfterCursor returns the text after the cursor.
func (*Document) TextBeforeCursor ¶
TextBeforeCursor returns the text before the cursor.
func (*Document) TranslateIndexToPosition ¶
TranslateIndexToPosition given an index for the text, return the corresponding (row, col) tuple. (0-based. Returns (0, 0) for index=0.)
type Exec ¶
type Exec struct {
// contains filtered or unexported fields
}
Exec is the struct contains user input context.
type History ¶
type History struct {
// contains filtered or unexported fields
}
func NewHistory ¶
func NewHistory() *History
type Key ¶
type Key int
Key is the type express the key inserted from user.
const ( Escape Key = iota ControlA ControlB ControlC ControlD ControlE ControlF ControlG ControlH ControlI ControlJ ControlK ControlL ControlM ControlN ControlO ControlP ControlQ ControlR ControlS ControlT ControlU ControlV ControlW ControlX ControlY ControlZ ControlSpace ControlBackslash ControlSquareClose ControlCircumflex ControlUnderscore ControlLeft ControlRight ControlUp ControlDown Up Down Right Left ShiftLeft ShiftUp ShiftDown ShiftRight Home End Delete ShiftDelete ControlDelete PageUp PageDown BackTab Insert Backspace // Aliases. Tab Enter F1 F2 F3 F4 F5 F6 F7 F8 F9 F10 F11 F12 F13 F14 F15 F16 F17 F18 F19 F20 F21 F22 F23 F24 // Matches any key. Any // Special CPRResponse Vt100MouseEvent WindowsMouseEvent BracketedPaste // Key which is ignored. (The key binding for this key should not do anything.) Ignore // Key is not defined NotDefined )
type KeyBind ¶
type KeyBind struct { Key Key Fn KeyBindFunc }
type KeyBindFunc ¶
type KeyBindFunc func(*Buffer)
type KeyBindMode ¶
type KeyBindMode string
const ( CommonKeyBind KeyBindMode = "common" EmacsKeyBind KeyBindMode = "emacs" )
type Option ¶ added in v0.1.1
Option is the type to replace default parameters. prompt.New accepts any number of options (this is functional option pattern).
func OptionAddKeyBind ¶
OptionAddKeyBind to set a custom key bind.
func OptionHistory ¶
OptionHistory to set history expressed by string array.
func OptionInputBGColor ¶
func OptionInputTextColor ¶
func OptionLivePrefix ¶ added in v0.2.0
OptionLivePrefix to change the prefix dynamically by callback function
func OptionMaxSuggestion ¶
OptionMaxSuggestion specify the max number of displayed suggestions.
func OptionParser ¶
func OptionParser(x ConsoleParser) Option
OptionParser to set a custom ConsoleParser object. An argument should implement ConsoleParser interface.
func OptionPrefixTextColor ¶
func OptionScrollbarBGColor ¶ added in v0.2.0
func OptionScrollbarThumbColor ¶ added in v0.2.0
func OptionSuggestionBGColor ¶
func OptionSwitchKeyBindMode ¶ added in v0.1.1
func OptionSwitchKeyBindMode(m KeyBindMode) Option
OptionSwitchKeyBindMode set a key bind mode.
func OptionTitle ¶
OptionTitle to set title displayed at the header bar of terminal.
func OptionWriter ¶
func OptionWriter(x ConsoleWriter) Option
OptionWriter to set a custom ConsoleWriter object. An argument should implement ConsoleWriter interace.
type Prompt ¶
type Prompt struct {
// contains filtered or unexported fields
}
Prompt is core struct of go-prompt.
type Render ¶
type Render struct {
// contains filtered or unexported fields
}
Render to render prompt information from state of Buffer.
func (*Render) Render ¶
func (r *Render) Render(buffer *Buffer, completion *CompletionManager)
Render renders to the console.
func (*Render) UpdateWinSize ¶
UpdateWinSize called when window size is changed.
type Suggest ¶
Suggest is printed when completing.
func FilterContains ¶
FilterContains checks whether the completion.Text contains sub.
func FilterHasPrefix ¶
FilterHasPrefix checks whether the string completions.Text begins with sub.
type WindowsParser ¶ added in v0.2.0
type WindowsParser struct {
// contains filtered or unexported fields
}
func NewStandardInputParser ¶ added in v0.2.0
func NewStandardInputParser() *WindowsParser
func (*WindowsParser) GetKey ¶ added in v0.2.0
func (p *WindowsParser) GetKey(b []byte) Key
func (*WindowsParser) GetWinSize ¶ added in v0.2.0
func (p *WindowsParser) GetWinSize() *WinSize
GetWinSize returns winsize struct which is the response of ioctl(2).
func (*WindowsParser) Read ¶ added in v0.2.0
func (p *WindowsParser) Read() ([]byte, error)
func (*WindowsParser) Setup ¶ added in v0.2.0
func (p *WindowsParser) Setup() error
func (*WindowsParser) TearDown ¶ added in v0.2.0
func (p *WindowsParser) TearDown() error
type WindowsWriter ¶ added in v0.2.0
type WindowsWriter struct {
// contains filtered or unexported fields
}
func NewStandardOutputWriter ¶ added in v0.2.0
func NewStandardOutputWriter() *WindowsWriter
func (*WindowsWriter) AskForCPR ¶ added in v0.2.0
func (w *WindowsWriter) AskForCPR()
func (*WindowsWriter) ClearTitle ¶ added in v0.2.0
func (w *WindowsWriter) ClearTitle()
func (*WindowsWriter) CursorBackward ¶ added in v0.2.0
func (w *WindowsWriter) CursorBackward(n int)
func (*WindowsWriter) CursorDown ¶ added in v0.2.0
func (w *WindowsWriter) CursorDown(n int)
func (*WindowsWriter) CursorForward ¶ added in v0.2.0
func (w *WindowsWriter) CursorForward(n int)
func (*WindowsWriter) CursorGoTo ¶ added in v0.2.0
func (w *WindowsWriter) CursorGoTo(row, col int)
func (*WindowsWriter) CursorUp ¶ added in v0.2.0
func (w *WindowsWriter) CursorUp(n int)
func (*WindowsWriter) EraseDown ¶ added in v0.2.0
func (w *WindowsWriter) EraseDown()
func (*WindowsWriter) EraseEndOfLine ¶ added in v0.2.0
func (w *WindowsWriter) EraseEndOfLine()
func (*WindowsWriter) EraseLine ¶ added in v0.2.0
func (w *WindowsWriter) EraseLine()
func (*WindowsWriter) EraseScreen ¶ added in v0.2.0
func (w *WindowsWriter) EraseScreen()
func (*WindowsWriter) EraseStartOfLine ¶ added in v0.2.0
func (w *WindowsWriter) EraseStartOfLine()
func (*WindowsWriter) EraseUp ¶ added in v0.2.0
func (w *WindowsWriter) EraseUp()
func (*WindowsWriter) Flush ¶ added in v0.2.0
func (w *WindowsWriter) Flush() error
func (*WindowsWriter) HideCursor ¶ added in v0.2.0
func (w *WindowsWriter) HideCursor()
func (*WindowsWriter) SaveCursor ¶ added in v0.2.0
func (w *WindowsWriter) SaveCursor()
func (*WindowsWriter) ScrollDown ¶ added in v0.2.0
func (w *WindowsWriter) ScrollDown()
func (*WindowsWriter) ScrollUp ¶ added in v0.2.0
func (w *WindowsWriter) ScrollUp()
func (*WindowsWriter) SetColor ¶ added in v0.2.0
func (w *WindowsWriter) SetColor(fg, bg Color, bold bool)
func (*WindowsWriter) SetTitle ¶ added in v0.2.0
func (w *WindowsWriter) SetTitle(title string)
func (*WindowsWriter) ShowCursor ¶ added in v0.2.0
func (w *WindowsWriter) ShowCursor()
func (*WindowsWriter) UnSaveCursor ¶ added in v0.2.0
func (w *WindowsWriter) UnSaveCursor()
func (*WindowsWriter) Write ¶ added in v0.2.0
func (w *WindowsWriter) Write(data []byte)
func (*WindowsWriter) WriteRaw ¶ added in v0.2.0
func (w *WindowsWriter) WriteRaw(data []byte)
func (*WindowsWriter) WriteRawStr ¶ added in v0.2.0
func (w *WindowsWriter) WriteRawStr(data string)
func (*WindowsWriter) WriteStr ¶ added in v0.2.0
func (w *WindowsWriter) WriteStr(data string)