terminal

package
v1.8.8 Latest Latest
Warning

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: 110

README

survey/terminal

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

Documentation

Index

Constants

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'
)

Variables

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

Functions

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.

Types

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
	ERASE_LINE_START
	ERASE_LINE_ALL
)

type FileReader added in v1.6.0

type FileReader interface {
	io.Reader
	Fd() uintptr
}

FileReader provides a minimal interface for Stdout.

type FileWriter added in v1.6.0

type FileWriter interface {
	io.Writer
	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
var COORDINATE_SYSTEM_BEGIN Short = 1

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