5 "github.com/gdamore/tcell"
6 "github.com/go-errors/errors"
7 "github.com/mattn/go-isatty"
22 if _, err := os.Stat(filename); err == nil {
24 input, err = ioutil.ReadFile(filename)
31 } else if !isatty.IsTerminal(os.Stdin.Fd()) {
32 bytes, err := ioutil.ReadAll(os.Stdin)
34 fmt.Println("Error reading stdin")
42 s, e := tcell.NewScreen()
44 fmt.Fprintf(os.Stderr, "%v\n", e)
47 if e := s.Init(); e != nil {
48 fmt.Fprintf(os.Stderr, "%v\n", e)
53 if err := recover(); err != nil {
55 fmt.Println("Micro encountered an error:", err)
56 fmt.Print(errors.Wrap(err, 2).ErrorStack())
61 defStyle := tcell.StyleDefault.
62 Background(tcell.ColorDefault).
63 Foreground(tcell.ColorDefault)
68 v := NewView(NewBuffer(string(input), filename), s)
70 // Initially everything needs to be drawn
79 } else if redraw == 1 {
85 event := s.PollEvent()
87 switch e := event.(type) {
89 if e.Key() == tcell.KeyCtrlQ {
95 redraw = v.HandleEvent(event)