gilo/gilo.go
Timothy J. Warren 1d73869db0
All checks were successful
timw4mail/gilo/pipeline/head This commit looks good
Basic search
2021-04-06 10:59:24 -04:00

43 lines
797 B
Go

package main
import (
"fmt"
"golang.org/x/term"
"os"
"timshome.page/gilo/internal/editor"
"timshome.page/gilo/internal/terminal"
)
func cleanup(oldState *term.State) {
defer terminal.RawOff(oldState)
// Recover from panic to allow restoring terminal state
if a := recover(); a != nil {
fmt.Println("RECOVER", a)
}
}
func main() {
// Go to proper raw mode, but restore canonical mode at exit
oldState := terminal.RawOn()
defer cleanup(oldState)
e := editor.NewEditor()
// If there is an argument passed, open it as a file to edit
if len(os.Args) >= 2 && os.Args[1] != "" {
e.Open(os.Args[1])
}
e.SetStatusMessage("HELP: Ctrl-S = save | Ctrl-Q = quit | Ctrl-F = find")
// The input loop
for {
e.RefreshScreen()
if e.ProcessKeypress() == false {
break
}
}
}