From 6c9558c0d2201d933b1d396febeb6e70ceaad058 Mon Sep 17 00:00:00 2001 From: tjp Date: Wed, 3 Jan 2024 08:29:40 -0700 Subject: working basic navigation and marks --- main.go | 51 +++++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 51 insertions(+) (limited to 'main.go') diff --git a/main.go b/main.go index da29a2c..c1a833b 100644 --- a/main.go +++ b/main.go @@ -1,4 +1,55 @@ package main +import ( + "fmt" + "io" + "log" + "os" + + "github.com/chzyer/readline" +) + func main() { + conf, err := getConfig() + if err != nil { + log.Fatal(err) + } + + state := NewBrowserState() + + rl, err := readline.New(Prompt) + if err != nil { + log.Fatal(err) + } + + marks, err := getMarks() + if err != nil { + log.Fatal(err) + } + state.Marks = marks + + rl.SetVimMode(true) + state.Readline = rl + + for { + line, err := rl.Readline() + if err == io.EOF { + break + } + if err != nil { + log.Fatal(err) + } + + if c, err := ParseCommand(line); err != nil { + writeError(err.Error()) + } else if err := RunCommand(conf, c, state); err != nil { + writeError(err.Error()) + } + } +} + +const Prompt = "\x1b[38;5;39mX-1\x1b[0m> " + +func writeError(msg string) { + fmt.Fprintf(os.Stdout, "\x1b[31m%s\x1b[0m\n", msg) } -- cgit v1.2.3