Blind pass at adding high performance scrolling into the renderer

This commit is contained in:
Christian Rocha
2020-06-16 16:41:35 -04:00
parent da86f9ac1a
commit 683473c26d
3 changed files with 250 additions and 26 deletions

40
screen.go Normal file
View File

@@ -0,0 +1,40 @@
package tea
import (
"fmt"
"io"
te "github.com/muesli/termenv"
)
func clearLine(w io.Writer) {
fmt.Fprintf(w, te.CSI+te.EraseLineSeq, 2)
}
func cursorUp(w io.Writer) {
fmt.Fprintf(w, te.CSI+te.CursorUpSeq, 1)
}
func cursorDown(w io.Writer) {
fmt.Fprintf(w, te.CSI+te.CursorDownSeq, 1)
}
func insertLine(w io.Writer, numLines int) {
fmt.Fprintf(w, te.CSI+"%dL", numLines)
}
func moveCursor(w io.Writer, row, col int) {
fmt.Fprintf(w, te.CSI+te.CursorPositionSeq, row, col)
}
func saveCursorPosition(w io.Writer) {
fmt.Fprint(w, te.CSI+"s")
}
func restoreCursorPosition(w io.Writer) {
fmt.Fprint(w, te.CSI+"u")
}
func changeScrollingRegion(w io.Writer, top, bottom int) {
fmt.Fprintf(w, te.CSI+"%d;%dr", top, bottom)
}