forked from Mirrors/bubbletea
Move ANSI stuff into its own file
This commit is contained in:
parent
d976902768
commit
cfb899789e
|
@ -0,0 +1,64 @@
|
|||
package tea
|
||||
|
||||
import "fmt"
|
||||
|
||||
// Escape sequence
|
||||
const esc = "\033["
|
||||
|
||||
// Fullscreen switches to the altscreen and clears the terminal. The former
|
||||
// view can be restored with ExitFullscreen().
|
||||
func Fullscreen() {
|
||||
fmt.Print(esc + "?1049h" + esc + "H")
|
||||
}
|
||||
|
||||
// ExitFullscreen exits the altscreen and returns the former terminal view
|
||||
func ExitFullscreen() {
|
||||
fmt.Print(esc + "?1049l")
|
||||
}
|
||||
|
||||
// ClearScreen clears the visible portion of the terminal. Effectively, it
|
||||
// fills the terminal with blank spaces.
|
||||
func ClearScreen() {
|
||||
fmt.Printf(esc + "2J" + esc + "3J" + esc + "1;1H")
|
||||
}
|
||||
|
||||
// Invert inverts the foreground and background colors of a given string
|
||||
func Invert(s string) string {
|
||||
return esc + "7m" + s + esc + "0m"
|
||||
}
|
||||
|
||||
// Hide the cursor
|
||||
func hideCursor() {
|
||||
fmt.Printf(esc + "?25l")
|
||||
}
|
||||
|
||||
// Show the cursor
|
||||
func showCursor() {
|
||||
fmt.Printf(esc + "?25h")
|
||||
}
|
||||
|
||||
// Move the cursor down a given number of lines and place it at the beginning
|
||||
// of the line
|
||||
func cursorNextLine(n int) {
|
||||
fmt.Printf(esc+"%dE", n)
|
||||
}
|
||||
|
||||
// Move the cursor up a given number of lines and place it at the beginning of
|
||||
// the line
|
||||
func cursorPrevLine(n int) {
|
||||
fmt.Printf(esc+"%dF", n)
|
||||
}
|
||||
|
||||
// Clear the current line
|
||||
func clearLine() {
|
||||
fmt.Printf(esc + "2K")
|
||||
}
|
||||
|
||||
// Clear a given number of lines
|
||||
func clearLines(n int) {
|
||||
clearLine()
|
||||
for i := 0; i < n; i++ {
|
||||
cursorPrevLine(1)
|
||||
clearLine()
|
||||
}
|
||||
}
|
62
tea.go
62
tea.go
|
@ -2,7 +2,6 @@ package tea
|
|||
|
||||
import (
|
||||
"errors"
|
||||
"fmt"
|
||||
"io"
|
||||
"log"
|
||||
"log/syslog"
|
||||
|
@ -11,9 +10,6 @@ import (
|
|||
"github.com/pkg/term"
|
||||
)
|
||||
|
||||
// Escape sequence
|
||||
const esc = "\033["
|
||||
|
||||
// The number of lines we last rendered
|
||||
var linesRendered = 0
|
||||
|
||||
|
@ -176,64 +172,6 @@ func (p *Program) render(model Model) {
|
|||
linesRendered = strings.Count(view, "\r\n")
|
||||
}
|
||||
|
||||
// Hide the cursor
|
||||
func hideCursor() {
|
||||
fmt.Printf(esc + "?25l")
|
||||
}
|
||||
|
||||
// Show the cursor
|
||||
func showCursor() {
|
||||
fmt.Printf(esc + "?25h")
|
||||
}
|
||||
|
||||
// Move the cursor down a given number of lines and place it at the beginning
|
||||
// of the line
|
||||
func cursorNextLine(n int) {
|
||||
fmt.Printf(esc+"%dE", n)
|
||||
}
|
||||
|
||||
// Move the cursor up a given number of lines and place it at the beginning of
|
||||
// the line
|
||||
func cursorPrevLine(n int) {
|
||||
fmt.Printf(esc+"%dF", n)
|
||||
}
|
||||
|
||||
// Clear the current line
|
||||
func clearLine() {
|
||||
fmt.Printf(esc + "2K")
|
||||
}
|
||||
|
||||
// Clear a given number of lines
|
||||
func clearLines(n int) {
|
||||
clearLine()
|
||||
for i := 0; i < n; i++ {
|
||||
cursorPrevLine(1)
|
||||
clearLine()
|
||||
}
|
||||
}
|
||||
|
||||
// Fullscreen switches to the altscreen and clears the terminal. The former
|
||||
// view can be restored with ExitFullscreen().
|
||||
func Fullscreen() {
|
||||
fmt.Print(esc + "?1049h" + esc + "H")
|
||||
}
|
||||
|
||||
// ExitFullscreen exits the altscreen and returns the former terminal view
|
||||
func ExitFullscreen() {
|
||||
fmt.Print(esc + "?1049l")
|
||||
}
|
||||
|
||||
// ClearScreen clears the visible portion of the terminal. Effectively, it
|
||||
// fills the terminal with blank spaces.
|
||||
func ClearScreen() {
|
||||
fmt.Printf(esc + "2J" + esc + "3J" + esc + "1;1H")
|
||||
}
|
||||
|
||||
// Invert inverts the foreground and background colors of a given string
|
||||
func Invert(s string) string {
|
||||
return esc + "7m" + s + esc + "0m"
|
||||
}
|
||||
|
||||
// UseSysLog logs to the system log. This becomes helpful when debugging since
|
||||
// we can't easily print to the terminal since our TUI is occupying it!
|
||||
//
|
||||
|
|
Loading…
Reference in New Issue