diff --git a/cmd/micro/messenger.go b/cmd/micro/messenger.go index 3a97eb48..530ba4a3 100644 --- a/cmd/micro/messenger.go +++ b/cmd/micro/messenger.go @@ -24,7 +24,7 @@ func TermMessage(msg ...interface{}) { } fmt.Println(msg...) - messenger.addLog(fmt.Sprint(msg...)) + messenger.AddLog(fmt.Sprint(msg...)) fmt.Print("\nPress enter to continue") reader := bufio.NewReader(os.Stdin) @@ -69,9 +69,11 @@ type Messenger struct { gutterMessage bool } -func (m *Messenger) addLog(msg string) { +func (m *Messenger) AddLog(msg string) { buffer := m.getBuffer() buffer.Insert(buffer.End(), msg+"\n") + buffer.Cursor.Loc = buffer.End() + buffer.Cursor.Relocate() } func (m *Messenger) getBuffer() *Buffer { @@ -90,7 +92,7 @@ func (m *Messenger) Message(msg ...interface{}) { if _, ok := colorscheme["message"]; ok { m.style = colorscheme["message"] } - m.addLog(m.message) + m.AddLog(m.message) m.hasMessage = true } @@ -106,7 +108,7 @@ func (m *Messenger) Error(msg ...interface{}) { if _, ok := colorscheme["error-message"]; ok { m.style = colorscheme["error-message"] } - m.addLog(m.message) + m.AddLog(m.message) m.hasMessage = true } @@ -128,16 +130,16 @@ func (m *Messenger) YesNoPrompt(prompt string) (bool, bool) { switch e.Key() { case tcell.KeyRune: if e.Rune() == 'y' { - m.addLog("\t--> y") + m.AddLog("\t--> y") m.hasPrompt = false return true, false } else if e.Rune() == 'n' { - m.addLog("\t--> n") + m.AddLog("\t--> n") m.hasPrompt = false return false, false } case tcell.KeyCtrlC, tcell.KeyCtrlQ, tcell.KeyEscape: - m.addLog("\t--> (cancel)") + m.AddLog("\t--> (cancel)") m.hasPrompt = false return false, true } @@ -164,7 +166,7 @@ func (m *Messenger) LetterPrompt(prompt string, responses ...rune) (rune, bool) case tcell.KeyRune: for _, r := range responses { if e.Rune() == r { - m.addLog("\t--> " + string(r)) + m.AddLog("\t--> " + string(r)) m.Clear() m.Reset() m.hasPrompt = false @@ -172,7 +174,7 @@ func (m *Messenger) LetterPrompt(prompt string, responses ...rune) (rune, bool) } } case tcell.KeyCtrlC, tcell.KeyCtrlQ, tcell.KeyEscape: - m.addLog("\t--> (cancel)") + m.AddLog("\t--> (cancel)") m.Clear() m.Reset() m.hasPrompt = false @@ -218,11 +220,11 @@ func (m *Messenger) Prompt(prompt, historyType string, completionTypes ...Comple switch e.Key() { case tcell.KeyCtrlQ, tcell.KeyCtrlC, tcell.KeyEscape: // Cancel - m.addLog("\t--> (cancel)") + m.AddLog("\t--> (cancel)") m.hasPrompt = false case tcell.KeyEnter: // User is done entering their response - m.addLog("\t--> " + m.response) + m.AddLog("\t--> " + m.response) m.hasPrompt = false response, canceled = m.response, false m.history[historyType][len(m.history[historyType])-1] = response