Version: v1.8.8 Latest Latest

This package is not in the latest version of its module.

Go to latest
Published: Feb 10, 2020 License: MIT, MIT Imports: 10 Imported by: 90



This package started as a copy of kokuban/go-ansi but has since been modified to fit survey's specific needs.




View Source
const (
	KeyArrowLeft       = '\x02'
	KeyArrowRight      = '\x06'
	KeyArrowUp         = '\x10'
	KeyArrowDown       = '\x0e'
	KeySpace           = ' '
	KeyEnter           = '\r'
	KeyBackspace       = '\b'
	KeyDelete          = '\x7f'
	KeyInterrupt       = '\x03'
	KeyEndTransmission = '\x04'
	KeyEscape          = '\x1b'
	KeyDeleteWord      = '\x17' // Ctrl+W
	KeyDeleteLine      = '\x18' // Ctrl+X
	SpecialKeyHome     = '\x01'
	SpecialKeyEnd      = '\x11'
	SpecialKeyDelete   = '\x12'
	IgnoreKey          = '\000'


View Source
var (
	InterruptErr = errors.New("interrupt")


func EraseLine

func EraseLine(out FileWriter, mode EraseLineMode)

func NewAnsiStderr

func NewAnsiStderr(out FileWriter) io.Writer

NewAnsiStderr returns special stderr, which converts escape sequences to Windows API calls on Windows environment.

func NewAnsiStdout

func NewAnsiStdout(out FileWriter) io.Writer

NewAnsiStdout returns special stdout, which converts escape sequences to Windows API calls on Windows environment.


type BufferedReader added in v1.6.0

type BufferedReader struct {
	In     io.Reader
	Buffer *bytes.Buffer

func (*BufferedReader) Read added in v1.6.0

func (br *BufferedReader) Read(p []byte) (int, error)

type Coord added in v1.2.0

type Coord struct {
	X Short
	Y Short

func (Coord) CursorIsAtLineBegin added in v1.5.2

func (cur Coord) CursorIsAtLineBegin() bool

func (Coord) CursorIsAtLineEnd added in v1.5.2

func (cur Coord) CursorIsAtLineEnd(size *Coord) bool

type Cursor added in v1.6.0

type Cursor struct {
	In  FileReader
	Out FileWriter

func (*Cursor) Back added in v1.6.0

func (c *Cursor) Back(n int)

Back moves the cursor n cells to left.

func (*Cursor) Down added in v1.6.0

func (c *Cursor) Down(n int)

Down moves the cursor n cells to down.

func (*Cursor) Forward added in v1.6.0

func (c *Cursor) Forward(n int)

Forward moves the cursor n cells to right.

func (*Cursor) Hide added in v1.6.0

func (c *Cursor) Hide()

Hide hide the cursor.

func (*Cursor) HorizontalAbsolute added in v1.6.0

func (c *Cursor) HorizontalAbsolute(x int)

HorizontalAbsolute moves cursor horizontally to x.

func (*Cursor) Location added in v1.6.0

func (c *Cursor) Location(buf *bytes.Buffer) (*Coord, error)

Location returns the current location of the cursor in the terminal

func (*Cursor) Move added in v1.6.0

func (c *Cursor) Move(x int, y int)

Move moves the cursor to a specific x,y location.

func (*Cursor) MoveNextLine added in v1.6.0

func (c *Cursor) MoveNextLine(cur *Coord, terminalSize *Coord)

for comparability purposes between windows in unix we need to print out a new line on some terminals

func (*Cursor) NextLine added in v1.6.0

func (c *Cursor) NextLine(n int)

NextLine moves cursor to beginning of the line n lines down.

func (*Cursor) PreviousLine added in v1.6.0

func (c *Cursor) PreviousLine(n int)

PreviousLine moves cursor to beginning of the line n lines up.

func (*Cursor) Restore added in v1.6.0

func (c *Cursor) Restore()

Restore restores the saved position of the cursor

func (*Cursor) Save added in v1.6.0

func (c *Cursor) Save()

Save saves the current position

func (*Cursor) Show added in v1.6.0

func (c *Cursor) Show()

Show shows the cursor.

func (*Cursor) Size added in v1.6.0

func (c *Cursor) Size(buf *bytes.Buffer) (*Coord, error)

Size returns the height and width of the terminal.

func (*Cursor) Up added in v1.6.0

func (c *Cursor) Up(n int)

Up moves the cursor n cells to up.

type EraseLineMode

type EraseLineMode int
const (
	ERASE_LINE_END EraseLineMode = iota

type FileReader added in v1.6.0

type FileReader interface {
	Fd() uintptr

FileReader provides a minimal interface for Stdout.

type FileWriter added in v1.6.0

type FileWriter interface {
	Fd() uintptr

FileWriter provides a minimal interface for Stdin.

type RuneReader added in v1.1.1

type RuneReader struct {
	// contains filtered or unexported fields

func NewRuneReader added in v1.1.1

func NewRuneReader(stdio Stdio) *RuneReader

func (*RuneReader) Buffer added in v1.6.0

func (rr *RuneReader) Buffer() *bytes.Buffer

func (*RuneReader) ReadLine added in v1.1.1

func (rr *RuneReader) ReadLine(mask rune) ([]rune, error)

func (*RuneReader) ReadRune added in v1.1.1

func (rr *RuneReader) ReadRune() (rune, int, error)

func (*RuneReader) RestoreTermMode added in v1.1.1

func (rr *RuneReader) RestoreTermMode() error

func (*RuneReader) SetTermMode added in v1.1.1

func (rr *RuneReader) SetTermMode() error

For reading runes we just want to disable echo.

type Short added in v1.2.0

type Short int16

type Stdio added in v1.6.0

type Stdio struct {
	In  FileReader
	Out FileWriter
	Err io.Writer

Stdio is the standard input/output the terminal reads/writes with.

Jump to

Keyboard shortcuts

? : This menu
/ : Search site
f or F : Jump to
y or Y : Canonical URL