terminal

package
v1.6.0 Latest Latest
Warning

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

Go to latest
Published: Jun 21, 2018 License: MIT, MIT Imports: 10 Imported by: 0

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 (
	EVENT_KEY = 0x0001

	// key codes for arrow keys
	// https://msdn.microsoft.com/en-us/library/windows/desktop/dd375731(v=vs.85).aspx
	VK_DELETE = 0x2E
	VK_END    = 0x23
	VK_HOME   = 0x24
	VK_LEFT   = 0x25
	VK_UP     = 0x26
	VK_RIGHT  = 0x27
	VK_DOWN   = 0x28

	RIGHT_CTRL_PRESSED = 0x0004
	LEFT_CTRL_PRESSED  = 0x0008

	ENABLE_ECHO_INPUT      uint32 = 0x0004
	ENABLE_LINE_INPUT      uint32 = 0x0002
	ENABLE_PROCESSED_INPUT uint32 = 0x0001
)
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 added in v1.0.1

func EraseLine(out FileWriter, mode EraseLineMode)

func NewAnsiStderr

func NewAnsiStderr(out FileWriter) io.Writer

func NewAnsiStdout

func NewAnsiStdout(out FileWriter) io.Writer

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)

func (*Cursor) Down added in v1.6.0

func (c *Cursor) Down(n int)

func (*Cursor) Forward added in v1.6.0

func (c *Cursor) Forward(n int)

func (*Cursor) Hide added in v1.6.0

func (c *Cursor) Hide()

func (*Cursor) HorizontalAbsolute added in v1.6.0

func (c *Cursor) HorizontalAbsolute(x int)

func (*Cursor) Location added in v1.6.0

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

func (*Cursor) MoveNextLine added in v1.6.0

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

for comparability purposes between windows in windows we don't have to print out a new line

func (*Cursor) NextLine added in v1.6.0

func (c *Cursor) NextLine(n int)

func (*Cursor) PreviousLine added in v1.6.0

func (c *Cursor) PreviousLine(n int)

func (*Cursor) Restore added in v1.6.0

func (c *Cursor) Restore()

func (*Cursor) Save added in v1.6.0

func (c *Cursor) Save()

save the cursor location

func (*Cursor) Show added in v1.6.0

func (c *Cursor) Show()

func (*Cursor) Size added in v1.6.0

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

func (*Cursor) Up added in v1.6.0

func (c *Cursor) Up(n int)

type EraseLineMode added in v1.0.1

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

type Short added in v1.2.0

type Short int16
var COORDINATE_SYSTEM_BEGIN Short = 0

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.

type Writer

type Writer struct {
	// contains filtered or unexported fields
}

func (*Writer) Write

func (w *Writer) Write(data []byte) (n int, err error)

Jump to

Keyboard shortcuts

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