From 1541b77fc12d5b0fc488702ebe06aa2db87ea8e1 Mon Sep 17 00:00:00 2001 From: ayntgl Date: Thu, 7 Oct 2021 22:02:50 +0400 Subject: [PATCH] perf: efficiently convert string to []byte and use *tview.TextView.Write() --- renderer.go | 16 +++++++++++----- 1 file changed, 11 insertions(+), 5 deletions(-) diff --git a/renderer.go b/renderer.go index 91065f9..c82328e 100644 --- a/renderer.go +++ b/renderer.go @@ -1,7 +1,6 @@ package main import ( - "fmt" "regexp" "strings" @@ -36,8 +35,10 @@ func renderMessage(m *discordgo.Message) { b.WriteString(parseMarkdown(rm.Content)) } - b.WriteString("[::-]\n") + b.WriteString("[::-]") + b.WriteByte('\n') } + // Render the author of the message. parseAuthor(&b, m.Author) // If the message content is not empty, parse the message mentions @@ -66,14 +67,19 @@ func renderMessage(m *discordgo.Message) { // Tags with no region ID ([""]) do not start new regions. They can // therefore be used to mark the end of a region. b.WriteString("[\"\"]") - - fmt.Fprintln(messagesTextView, b.String()) + b.WriteByte('\n') case discordgo.MessageTypeGuildMemberJoin: b.WriteString("[#5865F2]") b.WriteString(m.Author.Username) b.WriteString("[-] joined the server") + b.WriteByte('\n') + } - fmt.Fprintln(messagesTextView, b.String()) + if str := b.String(); str != "" { + b := make([]byte, len(str)+1) + copy(b, str) + + messagesTextView.Write(b) } }