Documentation ¶
Index ¶
- Constants
- Variables
- func Beep()
- func CarriageReturn()
- func CheckUnicode(str string) error
- func ClearAllScreen()
- func ClearAllScreenAndHistory()
- func ClearBeginOfLine()
- func ClearBeginOfScreen()
- func ClearEndOfLine()
- func ClearEndOfScreen()
- func ClearLine()
- func CursorOffset(str string, p, w int) (px, py, l int)
- func IsPrintable(r Char) bool
- func IsSpace(r Char) bool
- func MoveDown(c int)
- func MoveLeft(c int)
- func MoveLineDown(c int)
- func MoveLineUp(c int)
- func MoveRight(c int)
- func MoveToColumn(c int)
- func MoveToScreen(l, c int)
- func MoveTopLeft()
- func MoveUp(c int)
- func NewLines(c int)
- func NextUnescape(str string) (string, bool)
- func RestoreCursorPosition()
- func SaveCursorPosition()
- func VisibleWidth(str string) int
- type Buffer
- func (b *Buffer) Back() (string, bool)
- func (b *Buffer) BackWord() (shifted string, ok bool)
- func (b *Buffer) Backn(n int) (shifted string, ok bool)
- func (b *Buffer) Begin() (ok bool)
- func (b *Buffer) Clear() (shifted string, ok bool)
- func (b *Buffer) Clone() *Buffer
- func (b *Buffer) Cursor() int
- func (b *Buffer) Del() (string, bool)
- func (b *Buffer) DelWord() (shifted string, ok bool)
- func (b *Buffer) Deln(n int) (shifted string, ok bool)
- func (b *Buffer) End() (ok bool)
- func (b *Buffer) Insert(data ...rune)
- func (b *Buffer) Left() (ok bool)
- func (b *Buffer) Len() int
- func (b *Buffer) Move(inc int) (ok bool)
- func (b *Buffer) NextWord() (ok bool)
- func (b *Buffer) PrevWord() (ok bool)
- func (b *Buffer) RemoveBegin() (shifted string, ok bool)
- func (b *Buffer) RemoveEnd() (shifted string, ok bool)
- func (b *Buffer) Replace(data ...rune)
- func (b *Buffer) Right() (ok bool)
- func (b *Buffer) String() string
- func (b *Buffer) Transpose() (ok bool)
- type Char
- type Cycler
- type History
- type Key
- type Sequence
- type State
- func (st *State) AppendHistory(line string)
- func (st *State) AppendYank(yank string)
- func (st *State) Back() bool
- func (st *State) BackWord() bool
- func (st *State) Beep()
- func (st *State) Begin() bool
- func (st *State) Buffer() (string, int)
- func (st *State) BufferLen() int
- func (st *State) Cancel() (ok bool)
- func (st *State) Clear() bool
- func (st *State) ClearHistory()
- func (st *State) Close() error
- func (st *State) Del() bool
- func (st *State) DelWord() bool
- func (st *State) End() bool
- func (st *State) FixState() (ok bool)
- func (st *State) HistoryNext() (ok bool)
- func (st *State) HistoryPrev() (ok bool)
- func (st *State) InputWaiting() bool
- func (st *State) Insert(data ...Char) (ok bool)
- func (st *State) IsHistoryMode() (ok bool)
- func (st *State) IsHistorySearchMode() (ok bool)
- func (st *State) IsReplaceMode() (ok bool)
- func (st *State) IsTmpMode() (ok bool)
- func (st *State) IsYankMode() (ok bool)
- func (st *State) Left() bool
- func (st *State) LoadHistory(r io.Reader) (int, error)
- func (st *State) Next() (key Key, err error)
- func (st *State) NextWord() bool
- func (st *State) PrevWord() bool
- func (st *State) Print(str string, cursor int) error
- func (st *State) RemoveBegin() bool
- func (st *State) RemoveEnd() bool
- func (st *State) RemoveHistorySearch() (ok bool)
- func (st *State) RemoveSavedBuffer() (ok bool)
- func (st *State) Restart()
- func (st *State) RestoreBuffer() (ok bool)
- func (st *State) Return()
- func (st *State) Right() bool
- func (st *State) SaveBuffer(force ...bool) (ok bool)
- func (st *State) SaveHistory(w io.Writer) (int, error)
- func (st *State) SearchHistoryNext(insensitive ...bool) (ok bool)
- func (st *State) SearchHistoryPrev(insensitive ...bool) (ok bool)
- func (st *State) SetBuffer(value string) bool
- func (st *State) SetPrompt(p string) error
- func (st *State) Start()
- func (st *State) Stop()
- func (st *State) ToggleReplace()
- func (st *State) Transpose() bool
- func (st *State) UnfocusHistory() (ok bool)
- func (st *State) UnfocusYank() (ok bool)
- func (st *State) Width() int
- func (st *State) Yank() (ok bool)
- func (st *State) YankPrev() (ok bool)
- type TerminalSize
Constants ¶
const ( Bs = '\u007f' // \? Sp = '\u0020' )
const ( C_A rune = iota + 1 C_B C_C C_D C_E C_F C_G C_H C_I // \t C_J // \n C_K C_L C_M // \r C_N C_O C_P C_Q C_R C_S C_T C_U C_V C_W C_X C_Y C_Z Esc // \e )
const ( Tab = C_I Lf = C_J Cr = C_M )
const ( S_Up = shift | Up // ^[[1;2A S_down = shift | Down // ^[[1;2B S_Right = shift | Right // ^[[1;2C S_Left = shift | Left // ^[[1;2D S_Ins = shift | Ins // ^[[2;2~ S_Del = shift | Del // ^[[3;2~ S_PgUp = shift | PgUp // ^[[5;2~ S_PgDown = shift | PgDown // ^[[6;2~ S_End = shift | End // ^[[1;2F S_Home = shift | Home // ^[[1;2H S_F1 = shift | F1 // ^[O2P S_F2 = shift | F2 // ^[O2Q S_F3 = shift | F3 // ^[O2R S_F4 = shift | F4 // ^[O2S S_F5 = shift | F5 // ^[[15;2~ S_F6 = shift | F6 // ^[[17;2~ S_F7 = shift | F7 // ^[[18;2~ S_F8 = shift | F8 // ^[[19;2~ S_F9 = shift | F9 // ^[[20;2~ S_F10 = shift | F10 // ^[[21;2~ S_F11 = shift | F11 // ^[[23;2~ S_F12 = shift | F12 // ^[[24;2~ S_Tab = shift | Sequence(Tab) // ^[[Z A_Up = alt | Up // ^[[1;3A A_down = alt | Down // ^[[1;3B A_Right = alt | Right // ^[[1;3C A_Left = alt | Left // ^[[1;3D A_Ins = alt | Ins // ^[[2;3~ A_Del = alt | Del // ^[[3;3~ A_PgUp = alt | PgUp // ^[[5;3~ A_PgDown = alt | PgDown // ^[[6;3~ A_End = alt | End // ^[[1;3F A_Home = alt | Home // ^[[1;3H A_F1 = alt | F1 // ^[O3P A_F2 = alt | F2 // ^[O3Q A_F3 = alt | F3 // ^[O3R A_F4 = alt | F4 // ^[O3S A_F5 = alt | F5 // ^[[15;3~ A_F6 = alt | F6 // ^[[17;3~ A_F7 = alt | F7 // ^[[18;3~ A_F8 = alt | F8 // ^[[19;3~ A_F9 = alt | F9 // ^[[20;3~ A_F10 = alt | F10 // ^[[21;3~ A_F11 = alt | F11 // ^[[23;3~ A_F12 = alt | F12 // ^[[24;3~ A_Bs = alt | Sequence(Bs) // ^[<BACK> AS_Up = altShit | Up // ^[[1;4A AS_down = altShit | Down // ^[[1;4B AS_Right = altShit | Right // ^[[1;4C AS_Left = altShit | Left // ^[[1;4D AS_Ins = altShit | Ins // ^[[2;4~ AS_Del = altShit | Del // ^[[3;4~ AS_PgUp = altShit | PgUp // ^[[5;4~ AS_PgDown = altShit | PgDown // ^[[6;4~ AS_End = altShit | End // ^[[1;4F AS_Home = altShit | Home // ^[[1;4H AS_F1 = altShit | F1 // ^[O4P AS_F2 = altShit | F2 // ^[O4Q AS_F3 = altShit | F3 // ^[O4R AS_F4 = altShit | F4 // ^[O4S AS_F5 = altShit | F5 // ^[[15;4~ AS_F6 = altShit | F6 // ^[[17;4~ AS_F7 = altShit | F7 // ^[[18;4~ AS_F8 = altShit | F8 // ^[[19;4~ AS_F9 = altShit | F9 // ^[[20;4~ AS_F10 = altShit | F10 // ^[[21;4~ AS_F11 = altShit | F11 // ^[[23;4~ AS_F12 = altShit | F12 // ^[[24;4~ C_Up = ctrl | Up // ^[[1;5A C_down = ctrl | Down // ^[[1;5B C_Right = ctrl | Right // ^[[1;5C C_Left = ctrl | Left // ^[[1;5D C_Ins = ctrl | Ins // ^[[2;5~ C_Del = ctrl | Del // ^[[3;5~ C_PgUp = ctrl | PgUp // ^[[5;5~ C_PgDown = ctrl | PgDown // ^[[6;5~ C_End = ctrl | End // ^[[1;5F C_Home = ctrl | Home // ^[[1;5H C_F1 = ctrl | F1 // ^[O5P C_F2 = ctrl | F2 // ^[O5Q C_F3 = ctrl | F3 // ^[O5R C_F4 = ctrl | F4 // ^[O5S C_F5 = ctrl | F5 // ^[[15;5~ C_F6 = ctrl | F6 // ^[[17;5~ C_F7 = ctrl | F7 // ^[[18;5~ C_F8 = ctrl | F8 // ^[[19;5~ C_F9 = ctrl | F9 // ^[[20;5~ C_F10 = ctrl | F10 // ^[[21;5~ C_F11 = ctrl | F11 // ^[[23;5~ C_F12 = ctrl | F12 // ^[[34;5~ CS_Up = ctrlShift | Up // ^[[1;6A CS_down = ctrlShift | Down // ^[[1;6B CS_Right = ctrlShift | Right // ^[[1;6C CS_Left = ctrlShift | Left // ^[[1;6D CS_Ins = ctrlShift | Ins // ^[[2;6~ CS_Del = ctrlShift | Del // ^[[3;6~ CS_PgUp = ctrlShift | PgUp // ^[[5;6~ CS_PgDown = ctrlShift | PgDown // ^[[6;6~ CS_End = ctrlShift | End // ^[[1;6F CS_Home = ctrlShift | Home // ^[[1;6H CS_F1 = ctrlShift | F1 // ^[O6P CS_F2 = ctrlShift | F2 // ^[O6Q CS_F3 = ctrlShift | F3 // ^[O6R CS_F4 = ctrlShift | F4 // ^[O6S CS_F5 = ctrlShift | F5 // ^[[15;6~ CS_F6 = ctrlShift | F6 // ^[[17;6~ CS_F7 = ctrlShift | F7 // ^[[18;6~ CS_F8 = ctrlShift | F8 // ^[[19;6~ CS_F9 = ctrlShift | F9 // ^[[20;6~ CS_F10 = ctrlShift | F10 // ^[[21;6~ CS_F11 = ctrlShift | F11 // ^[[23;6~ CS_F12 = ctrlShift | F12 // ^[[24;6~ CA_Up = ctrlAlt | Up // ^[[1;7A CA_down = ctrlAlt | Down // ^[[1;7B CA_Right = ctrlAlt | Right // ^[[1;7C CA_Left = ctrlAlt | Left // ^[[1;7D CA_Ins = ctrlAlt | Ins // ^[[2;7~ CA_Del = ctrlAlt | Del // ^[[3;7~ CA_PgUp = ctrlAlt | PgUp // ^[[5;7~ CA_PgDown = ctrlAlt | PgDown // ^[[6;7~ CA_End = ctrlAlt | End // ^[[1;7F CA_Home = ctrlAlt | Home // ^[[1;7H CA_F1 = ctrlAlt | F1 // ^[O7P CA_F2 = ctrlAlt | F2 // ^[O7Q CA_F3 = ctrlAlt | F3 // ^[O7R CA_F4 = ctrlAlt | F4 // ^[O7S CA_F5 = ctrlAlt | F5 // ^[[15;7~ CA_F6 = ctrlAlt | F6 // ^[[17;7~ CA_F7 = ctrlAlt | F7 // ^[[18;7~ CA_F8 = ctrlAlt | F8 // ^[[19;7~ CA_F9 = ctrlAlt | F9 // ^[[20;7~ CA_F10 = ctrlAlt | F10 // ^[[21;7~ CA_F11 = ctrlAlt | F11 // ^[[23;7~ CA_F12 = ctrlAlt | F12 // ^[[24;7~ CAS_Up = ctrlAltShift | Up // ^[[1;8A CAS_down = ctrlAltShift | Down // ^[[1;8B CAS_Right = ctrlAltShift | Right // ^[[1;8C CAS_Left = ctrlAltShift | Left // ^[[1;8D CAS_Ins = ctrlAltShift | Ins // ^[[2;8~ CAS_Del = ctrlAltShift | Del // ^[[3;8~ CAS_PgUp = ctrlAltShift | PgUp // ^[[5;8~ CAS_PgDown = ctrlAltShift | PgDown // ^[[6;8~ CAS_End = ctrlAltShift | End // ^[[1;8F CAS_Home = ctrlAltShift | Home // ^[[1;8H CAS_F1 = ctrlAltShift | F1 // ^[O8P CAS_F2 = ctrlAltShift | F2 // ^[O8Q CAS_F3 = ctrlAltShift | F3 // ^[O8R CAS_F4 = ctrlAltShift | F4 // ^[O8S CAS_F5 = ctrlAltShift | F5 // ^[[15;8~ CAS_F6 = ctrlAltShift | F6 // ^[[17;8~ CAS_F7 = ctrlAltShift | F7 // ^[[18;8~ CAS_F8 = ctrlAltShift | F8 // ^[[19;8~ CAS_F9 = ctrlAltShift | F9 // ^[[20;8~ CAS_F10 = ctrlAltShift | F10 // ^[[21;8~ CAS_F11 = ctrlAltShift | F11 // ^[[23;8~ CAS_F12 = ctrlAltShift | F12 // ^[[24;8~ )
Variables ¶
var ( ErrInternal = errors.New("internal error") ErrTimeout = errors.New("timeout") )
var (
ErrInvalidUnicode = errors.New("Not unicode")
)
var (
KeyNil = Key{}
)
Functions ¶
func CheckUnicode ¶
CheckUnicode vérifie si la chaîne de caractère ne contient que des caractères imprimables.
func ClearAllScreenAndHistory ¶
func ClearAllScreenAndHistory()
ClearAllScreenAndHistory efface tout l’écran, ainsi que l’historique de l’affichage.
func ClearBeginOfLine ¶
func ClearBeginOfLine()
ClearBeginOfLine efface le début de la ligne, curseur compris
func ClearBeginOfScreen ¶
func ClearBeginOfScreen()
ClearBeginOfScreen efface l’écran jusqu’au curseur, curseur compris.
func ClearEndOfLine ¶
func ClearEndOfLine()
ClearEndOfLine efface la fin de la ligne, curseur compris.
func ClearEndOfScreen ¶
func ClearEndOfScreen()
ClearBeginOfScreen efface l’écran à partir du curseur, curseur compris.
func CursorOffset ¶
CursorOffset calcule la position relative du curseur par rapport au début de la chaîne, ainsi que le le n° de la dernière ligne (en commençant de 0).
func IsPrintable ¶
IsPrintable retourne vrai si le caractère donné est imprimable.
func MoveLineDown ¶
func MoveLineDown(c int)
MoveLineDown se déplace de c lignes vers le bas et revient en début de ligne.
func MoveLineUp ¶
func MoveLineUp(c int)
MoveLineUp se déplace de c lignes vers le haut et revient en début de ligne.
func MoveToColumn ¶
func MoveToColumn(c int)
MoveToColumn se déplace à la colonne c. La colonne commence à 1.
func MoveToScreen ¶
func MoveToScreen(l, c int)
MoveToScreen se déplace à la ligne l et la colonne c de l’écran. l et c commencent à 1.
func NextUnescape ¶
NextUnescape enlève le caractère d’échapement en début de chaìne.
func RestoreCursorPosition ¶
func RestoreCursorPosition()
RestoreCursorPosition revient à la position précédemment enregistrée.
func SaveCursorPosition ¶
func SaveCursorPosition()
SaveCursorPosition enregistre la position du curseur pour pouvoir y revenir plus tard.
func VisibleWidth ¶
VisibleWith indique le nombre de colonnes nécessaires pour afficher d’une chaîne passée à echo.
Types ¶
type Buffer ¶
type Buffer struct {
// contains filtered or unexported fields
}
Buffer stocke l’ensemble des caractère saisis et la position du curseur.
func (*Buffer) Backn ¶
Backn supprime n caractères à gauche du curseur. Si la suppression a bien été effectuée, il retourne la chaîne supprimée et vrai.
func (*Buffer) Deln ¶
Deln supprime n caractères à partir du curseur. Si la suppression a bien été effectuée, il retourne la chaîne supprimée et vrai.
func (*Buffer) Move ¶
Move déplace le curseur avec l’incrément donné. Si l’incrément est négatif, le déplacement se fait vers la gauche. Sinon, il se fait vers la droite. Si la position du curseur sort du buffer, retourne faux.
func (*Buffer) PrevWord ¶
PrevWord déplace le curseur au début du mot, ou au début du précédent mot si le curseur n’est pas positionné sur un mot.
func (*Buffer) RemoveBegin ¶
RemoveBegin supprime les caractères avant le curseur.
func (*Buffer) Replace ¶
Replace remplace les caractères du buffer à partir de la position du curseur par les caractères donnés. Si le buffer n’est pas assez grand, le buffer est agrandi.
type Char ¶
type Char = rune
Char représente un caractère UTF-8 saisi via une touche ou une combinaison de touches.
type Cycler ¶
type Cycler struct {
// contains filtered or unexported fields
}
Cycler stocke les données possibles de l’autocomplétion
func NewCycler ¶
NewCycler crée un nouveau cycler avec les données fournies. Si cycled est vrai, le cycler revient au début s’il a atteint la fin et inversement.
func (*Cycler) Next ¶
Next incrémente le pointeur et retourne vrai si le pointeur pointe sur un élément.
type History ¶
type History struct {
Cycler
}
History stocke l’historique des saisies.
func NewHistory ¶
NewHistory retourne un nouvel historique. Si cycled est faux l’historique ne peut être parcouru en boucle.
func (*History) Next ¶
Next incrémente le pointeur de l’historique et retourne vrai si le pointeur pointe vers un élément.
func (*History) Prev ¶
Prev décrémente le pointeur de l’historique et retourne vrai si le pointeur pointe vers un élément.
func (*History) Read ¶
Read charge l’historique à partir d’un fichier et retourne le nombre d’entrées ajoutées et une erreur si l’import a échoué.
type Key ¶
type Key struct {
// contains filtered or unexported fields
}
Key représente un caractère ou un séquence de caractères.
func (Key) IsSequence ¶
IsSequence retourne vrai si k représente une séquence.
type Sequence ¶
type Sequence rune
Sequence représente une séquence de caractères UTF-8 saisis via une touche ou une combinaison de touche.
const ( A_A Sequence = ('a' + iota) << 16 // ^[a A_B // ^[b A_C // ^[c A_D // ^[d A_E // ^[e A_F // ^[f A_G // ^[g A_H // ^[h A_I // ^[i A_J // ^[j A_K // ^[k A_L // ^[l A_M // ^[m A_N // ^[n A_O // ^[o A_P // ^[p A_Q // ^[q A_R // ^[r A_S // ^[s A_T // ^[t A_U // ^[u A_V // ^[v A_W // ^[w A_X // ^[x A_Y // ^[y A_Z // ^[z )
const ( AS_A Sequence = ('A' + iota) << 16 // ^[A AS_B // ^[B AS_C // ^[C AS_D // ^[D AS_E // ^[E AS_F // ^[F AS_G // ^[G AS_H // ^[H AS_I // ^[I AS_J // ^[J AS_K // ^[K AS_L // ^[L AS_M // ^[M AS_N // ^[N AS_O // ^[O AS_P // ^[P AS_Q // ^[Q AS_R // ^[R AS_S // ^[S AS_T // ^[T AS_U // ^[U AS_V // ^[V AS_W // ^[W AS_X // ^[X AS_Y // ^[Y AS_Z // ^[Z )
const (
MaskKey Sequence = 127 // Permet, en appliquant &, de récupérer la séquence sans les touches modificatrices
)
type State ¶
type State struct {
// contains filtered or unexported fields
}
State représente l’état d’un terminal.
func (*State) AppendHistory ¶
AppendHistory ajoute une entrée dans l’historique.
func (*State) AppendYank ¶
AppendYank ajoute une entrée dans la liste des éléments copiables.
func (*State) Buffer ¶
Buffer retourne la représentation du buffer et la position du curseur dans le buffer.
func (*State) HistoryNext ¶
HistoryNext redescend dans l’historique.
func (*State) HistoryPrev ¶
HistoryPrev remonte dans l’historique.
func (*State) InputWaiting ¶
InputWaiting retourne vrai si une saisie est en attente de traitement.
func (*State) Insert ¶
Insert insert (ou remplace, suivant le mode actuel) les caractères donnés dans le buffer.
func (*State) IsHistoryMode ¶
IsHistoryMode retourne vrai si on est en mode parcours de l’historique.
func (*State) IsHistorySearchMode ¶
IsHistorySearchMode retourne vrai si on est en mode recherche dans l’historique.
func (*State) IsReplaceMode ¶
IsReplaceMode retourne vrai si on est en mode remplacement.
func (*State) IsTmpMode ¶
IsTmpMode retourne vrai si le buffer peut être restauré à un état précédent.
func (*State) IsYankMode ¶
IsYankMode retourne vrai si on est en mode collage.
func (*State) LoadHistory ¶
LoadHistory charge l’historique à partir d’un fichier.n
func (*State) Print ¶
Print imprime le prompt suivie de la chaîne spécifié et place le curseur à la position indiquée (commence à 0 à partir du début de la chaîne).
func (*State) RemoveBegin ¶
RemoveBegin supprime les caractères avant le curseur.
func (*State) RemoveHistorySearch ¶
RemoveHistorySearch supprime la recherche d’historique.
func (*State) RemoveSavedBuffer ¶
RemoveSavedBuffer supprime le buffer de sauvegarde.
func (*State) Restart ¶
func (st *State) Restart()
Restart redémarre la possibilité de saisir des caractères.
func (*State) RestoreBuffer ¶
RestoreBuffer restaure le buffer à partir de sa sauvegarde précédente.
func (*State) SaveBuffer ¶
SaveBuffer enregistre le buffer actuel. Si force, force l’enregistrement du buffer même s’il y a une sauvegarde existante.
func (*State) SaveHistory ¶
SaveHistory persiste l’historique dans un fichier.
func (*State) SearchHistoryNext ¶
SearchHistoryNext remonte dans l’historique de recherche. L’historique de recherche est initialisée avec le préfixe du buffer.
func (*State) SearchHistoryPrev ¶
SearchHistoryPrev redescend dans l’historique de recherche. L’historique de recherche est initialisée avec le préfixe du buffer.
func (*State) SetPrompt ¶
SetPrompt enregistre le prompt à utiiser. Si le prompt contient des caractères non imprimables, retourne une erreur.
func (*State) ToggleReplace ¶
func (st *State) ToggleReplace()
ToggleReplace se place en mode remplacement si on était on mode insertion et vice-versa.
func (*State) Transpose ¶
Transpose transpose le caractère sous le curseur avec le caractère précédent.
func (*State) UnfocusHistory ¶
UnfocusHistory supprime le pointage vers un élément de l’historique.
func (*State) UnfocusYank ¶
UnfocusYank supprime le pointage vers un élément copiable.
type TerminalSize ¶
type TerminalSize struct {
// contains filtered or unexported fields
}
func GetTerminalSize ¶
func GetTerminalSize() (ts TerminalSize, ok bool)
GetTerminalSize retourne les dimensions actuelles du terminal.
func (TerminalSize) Height ¶
func (ts TerminalSize) Height() int
func (TerminalSize) Width ¶
func (ts TerminalSize) Width() int