README

survey/terminal

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

Expand ▾ Collapse ▴

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

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

      func (*BufferedReader) Read

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

      type Coord

      type Coord struct {
      	X Short
      	Y Short
      }

      func (Coord) CursorIsAtLineBegin

      func (cur Coord) CursorIsAtLineBegin() bool

      func (Coord) CursorIsAtLineEnd

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

      type Cursor

      type Cursor struct {
      	In  FileReader
      	Out FileWriter
      }

      func (*Cursor) Back

      func (c *Cursor) Back(n int)

        Back moves the cursor n cells to left.

        func (*Cursor) Down

        func (c *Cursor) Down(n int)

          Down moves the cursor n cells to down.

          func (*Cursor) Forward

          func (c *Cursor) Forward(n int)

            Forward moves the cursor n cells to right.

            func (*Cursor) Hide

            func (c *Cursor) Hide()

              Hide hide the cursor.

              func (*Cursor) HorizontalAbsolute

              func (c *Cursor) HorizontalAbsolute(x int)

                HorizontalAbsolute moves cursor horizontally to x.

                func (*Cursor) Location

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

                  Location returns the current location of the cursor in the terminal

                  func (*Cursor) Move

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

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

                    func (*Cursor) MoveNextLine

                    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

                      func (c *Cursor) NextLine(n int)

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

                        func (*Cursor) PreviousLine

                        func (c *Cursor) PreviousLine(n int)

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

                          func (*Cursor) Restore

                          func (c *Cursor) Restore()

                            Restore restores the saved position of the cursor

                            func (*Cursor) Save

                            func (c *Cursor) Save()

                              Save saves the current position

                              func (*Cursor) Show

                              func (c *Cursor) Show()

                                Show shows the cursor.

                                func (*Cursor) Size

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

                                  Size returns the height and width of the terminal.

                                  func (*Cursor) Up

                                  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

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

                                      FileReader provides a minimal interface for Stdout.

                                      type FileWriter

                                      type FileWriter interface {
                                      	io.Writer
                                      	Fd() uintptr
                                      }

                                        FileWriter provides a minimal interface for Stdin.

                                        type RuneReader

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

                                        func NewRuneReader

                                        func NewRuneReader(stdio Stdio) *RuneReader

                                        func (*RuneReader) Buffer

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

                                        func (*RuneReader) ReadLine

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

                                        func (*RuneReader) ReadRune

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

                                        func (*RuneReader) RestoreTermMode

                                        func (rr *RuneReader) RestoreTermMode() error

                                        func (*RuneReader) SetTermMode

                                        func (rr *RuneReader) SetTermMode() error

                                          For reading runes we just want to disable echo.

                                          type Short

                                          type Short int16
                                          var COORDINATE_SYSTEM_BEGIN Short = 1

                                          type Stdio

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

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