Clear screen line by line
This commit is contained in:
parent
bb6f7764a1
commit
ca6e38fc51
@ -2,7 +2,11 @@ package ansi
|
|||||||
|
|
||||||
import "fmt"
|
import "fmt"
|
||||||
|
|
||||||
|
const ClearLine = "\x1b[K"
|
||||||
const ClearScreen = "\x1b[2J"
|
const ClearScreen = "\x1b[2J"
|
||||||
|
|
||||||
|
const HideCursor = "\x1b[?25l"
|
||||||
|
const ShowCursor = "\x1b[?25h"
|
||||||
const ResetCursor = "\x1b[H"
|
const ResetCursor = "\x1b[H"
|
||||||
|
|
||||||
func Code (s string) string {
|
func Code (s string) string {
|
||||||
|
@ -26,12 +26,13 @@ func New() *editor {
|
|||||||
func (e *editor) RefreshScreen() {
|
func (e *editor) RefreshScreen() {
|
||||||
ab := newBuffer()
|
ab := newBuffer()
|
||||||
|
|
||||||
ab.append(ansi.ClearScreen)
|
ab.append(ansi.HideCursor)
|
||||||
ab.append(ansi.ResetCursor)
|
ab.append(ansi.ResetCursor)
|
||||||
|
|
||||||
e.drawRows(ab)
|
e.drawRows(ab)
|
||||||
|
|
||||||
ab.append(ansi.ResetCursor)
|
ab.append(ansi.ResetCursor)
|
||||||
|
ab.append(ansi.ShowCursor)
|
||||||
|
|
||||||
terminal.Write(ab.toString())
|
terminal.Write(ab.toString())
|
||||||
}
|
}
|
||||||
@ -41,8 +42,7 @@ func (e *editor) ProcessKeypress() bool {
|
|||||||
|
|
||||||
// Clean up on exit
|
// Clean up on exit
|
||||||
if ch == char.Ctrl('q') {
|
if ch == char.Ctrl('q') {
|
||||||
terminal.Write(ansi.ClearScreen)
|
terminal.Write(ansi.ClearScreen + ansi.ResetCursor)
|
||||||
terminal.Write(ansi.ResetCursor)
|
|
||||||
|
|
||||||
return false
|
return false
|
||||||
}
|
}
|
||||||
@ -53,6 +53,7 @@ func (e *editor) ProcessKeypress() bool {
|
|||||||
func (e *editor) drawRows(ab *buffer) {
|
func (e *editor) drawRows(ab *buffer) {
|
||||||
for y :=0; y < e.rows; y += 1 {
|
for y :=0; y < e.rows; y += 1 {
|
||||||
ab.appendRune('~')
|
ab.appendRune('~')
|
||||||
|
ab.append(ansi.ClearLine)
|
||||||
|
|
||||||
if y < (e.rows - 1) {
|
if y < (e.rows - 1) {
|
||||||
ab.append("\r\n")
|
ab.append("\r\n")
|
||||||
|
Loading…
Reference in New Issue
Block a user