Implements the ANSI VT100 control set. Please refer to http://www.termsys.demon.co.uk/vtansi.htm
go get github.com/jpillora/ansi
Get ANSI control code bytes:
ansi.Goto(2,4)
ansi.Set(ansi.Green, ansi.BlueBG)
Wrap an io.ReadWriteCloser
:
a := ansi.Wrap(tcpConn)
//Read, Write, Close as normal
a.Read()
a.Write()
a.Close()
//Shorthand for a.Write(ansi.Set(..))
a.Set(ansi.Green, ansi.BlueBG)
//Send query
a.QueryCursorPosition()
//Await report
report := <- a.Reports
report.Type//=> ansi.Position
report.Pos.Row
report.Pos.Col
Wrapped connections will intercept and remove ANSI report codes from a.Read()