diff --git a/config/config.go b/config/config.go index a7b7a8a..1860f44 100644 --- a/config/config.go +++ b/config/config.go @@ -17,10 +17,10 @@ type IdentifyConfig struct { } type KeysConfig struct { - ToggleGuildsTree string `toml:"toggle_guilds_tree"` - ToggleChannelsTree string `toml:"toggle_channels_tree"` - ToggleMessagesTextView string `toml:"toggle_messages_text_view"` - ToggleMessageInput string `toml:"toggle_message_input"` + ToggleGuildsTree string `toml:"toggle_guilds_tree"` + ToggleChannelsTree string `toml:"toggle_channels_tree"` + ToggleMessagesPanel string `toml:"toggle_messages_panel"` + ToggleMessageInput string `toml:"toggle_message_input"` OpenMessageActionsList string `toml:"open_message_actions_list"` OpenExternalEditor string `toml:"open_external_editor"` @@ -68,10 +68,10 @@ func New() *Config { Title: "white", }, Keys: KeysConfig{ - ToggleGuildsTree: "Rune[g]", - ToggleChannelsTree: "Rune[c]", - ToggleMessagesTextView: "Rune[m]", - ToggleMessageInput: "Rune[i]", + ToggleGuildsTree: "Rune[g]", + ToggleChannelsTree: "Rune[c]", + ToggleMessagesPanel: "Rune[m]", + ToggleMessageInput: "Rune[i]", OpenMessageActionsList: "Rune[a]", OpenExternalEditor: "Ctrl+E", diff --git a/ui/app.go b/ui/app.go index ad5c8f2..bbe74a8 100644 --- a/ui/app.go +++ b/ui/app.go @@ -18,7 +18,7 @@ type App struct { MainFlex *tview.Flex GuildsTree *GuildsTree ChannelsTree *ChannelsTree - MessagesTextView *MessagesTextView + MessagesPanel *MessagesPanel MessageInputField *MessageInput Config *config.Config @@ -48,7 +48,7 @@ func NewApp(token string, c *config.Config) *App { app.GuildsTree = NewGuildsTree(app) app.ChannelsTree = NewChannelsTree(app) - app.MessagesTextView = NewMessagesTextView(app) + app.MessagesPanel = NewMessagesPanel(app) app.MessageInputField = NewMessageInput(app) app.EnableMouse(app.Config.Mouse) app.MainFlex.SetInputCapture(app.onInputCapture) @@ -83,8 +83,8 @@ func (app *App) onInputCapture(e *tcell.EventKey) *tcell.EventKey { case app.Config.Keys.ToggleChannelsTree: app.SetFocus(app.ChannelsTree) return nil - case app.Config.Keys.ToggleMessagesTextView: - app.SetFocus(app.MessagesTextView) + case app.Config.Keys.ToggleMessagesPanel: + app.SetFocus(app.MessagesPanel) return nil case app.Config.Keys.ToggleMessageInput: app.SetFocus(app.MessageInputField) @@ -102,7 +102,7 @@ func (app *App) DrawMainFlex() { AddItem(app.ChannelsTree, 0, 1, false) rightFlex := tview.NewFlex(). SetDirection(tview.FlexRow). - AddItem(app.MessagesTextView, 0, 1, false). + AddItem(app.MessagesPanel, 0, 1, false). AddItem(app.MessageInputField, 3, 1, false) app.MainFlex. AddItem(leftFlex, 0, 1, false). @@ -194,13 +194,13 @@ func (app *App) onStateGuildDelete(g *gateway.GuildDeleteEvent) { func (app *App) onStateMessageCreate(m *gateway.MessageCreateEvent) { if app.SelectedChannel != nil && app.SelectedChannel.ID == m.ChannelID { - _, err := app.MessagesTextView.Write(buildMessage(app, m.Message)) + _, err := app.MessagesPanel.Write(buildMessage(app, m.Message)) if err != nil { return } - if len(app.MessagesTextView.GetHighlights()) == 0 { - app.MessagesTextView.ScrollToEnd() + if len(app.MessagesPanel.GetHighlights()) == 0 { + app.MessagesPanel.ScrollToEnd() } } } diff --git a/ui/channels.go b/ui/channels.go index 79d88b5..4c15269 100644 --- a/ui/channels.go +++ b/ui/channels.go @@ -31,7 +31,7 @@ func NewChannelsTree(app *App) *ChannelsTree { func (ct *ChannelsTree) onSelected(node *tview.TreeNode) { ct.app.SelectedChannel = nil ct.app.SelectedMessage = -1 - ct.app.MessagesTextView. + ct.app.MessagesPanel. Highlight(). Clear(). SetTitle("") @@ -56,7 +56,7 @@ func (ct *ChannelsTree) onSelected(node *tview.TreeNode) { if c.Topic != "" { title += " - " + parseMarkdown(c.Topic) } - ct.app.MessagesTextView.SetTitle(title) + ct.app.MessagesPanel.SetTitle(title) go func() { // The returned slice will be sorted from latest to oldest. @@ -66,12 +66,12 @@ func (ct *ChannelsTree) onSelected(node *tview.TreeNode) { } for i := len(ms) - 1; i >= 0; i-- { - _, err = ct.app.MessagesTextView.Write(buildMessage(ct.app, ms[i])) + _, err = ct.app.MessagesPanel.Write(buildMessage(ct.app, ms[i])) if err != nil { return } } - ct.app.MessagesTextView.ScrollToEnd() + ct.app.MessagesPanel.ScrollToEnd() }() } diff --git a/ui/guilds.go b/ui/guilds.go index 7795388..b1ea11f 100644 --- a/ui/guilds.go +++ b/ui/guilds.go @@ -38,7 +38,7 @@ func (gt *GuildsTree) onSelected(node *tview.TreeNode) { gt.app.SelectedMessage = -1 rootNode := gt.app.ChannelsTree.GetRoot() rootNode.ClearChildren() - gt.app.MessagesTextView. + gt.app.MessagesPanel. Highlight(). Clear(). SetTitle("") diff --git a/ui/messages.go b/ui/messages.go index 8e1d124..14cd887 100644 --- a/ui/messages.go +++ b/ui/messages.go @@ -20,13 +20,13 @@ import ( var linkRegex = regexp.MustCompile("https?://.+") -type MessagesTextView struct { +type MessagesPanel struct { *tview.TextView app *App } -func NewMessagesTextView(app *App) *MessagesTextView { - mtv := &MessagesTextView{ +func NewMessagesPanel(app *App) *MessagesPanel { + mtv := &MessagesPanel{ TextView: tview.NewTextView(), app: app, } @@ -46,66 +46,66 @@ func NewMessagesTextView(app *App) *MessagesTextView { return mtv } -func (mtv *MessagesTextView) onInputCapture(e *tcell.EventKey) *tcell.EventKey { - if mtv.app.SelectedChannel == nil { +func (mp *MessagesPanel) onInputCapture(e *tcell.EventKey) *tcell.EventKey { + if mp.app.SelectedChannel == nil { return nil } // Messages should return messages ordered from latest to earliest. - ms, err := mtv.app.State.Cabinet.Messages(mtv.app.SelectedChannel.ID) + ms, err := mp.app.State.Cabinet.Messages(mp.app.SelectedChannel.ID) if err != nil || len(ms) == 0 { return nil } switch e.Name() { - case mtv.app.Config.Keys.SelectPreviousMessage: - // If there are no highlighted regions, select the latest (last) message in the messages TextView. - if len(mtv.app.MessagesTextView.GetHighlights()) == 0 { - mtv.app.SelectedMessage = 0 + case mp.app.Config.Keys.SelectPreviousMessage: + // If there are no highlighted regions, select the latest (last) message in the messages panel. + if len(mp.app.MessagesPanel.GetHighlights()) == 0 { + mp.app.SelectedMessage = 0 } else { - // If the selected message is the oldest (first) message, select the latest (last) message in the messages TextView. - if mtv.app.SelectedMessage == len(ms)-1 { - mtv.app.SelectedMessage = 0 + // If the selected message is the oldest (first) message, select the latest (last) message in the messages panel. + if mp.app.SelectedMessage == len(ms)-1 { + mp.app.SelectedMessage = 0 } else { - mtv.app.SelectedMessage++ + mp.app.SelectedMessage++ } } - mtv.app.MessagesTextView. - Highlight(ms[mtv.app.SelectedMessage].ID.String()). + mp.app.MessagesPanel. + Highlight(ms[mp.app.SelectedMessage].ID.String()). ScrollToHighlight() return nil - case mtv.app.Config.Keys.SelectNextMessage: - // If there are no highlighted regions, select the latest (last) message in the messages TextView. - if len(mtv.app.MessagesTextView.GetHighlights()) == 0 { - mtv.app.SelectedMessage = 0 + case mp.app.Config.Keys.SelectNextMessage: + // If there are no highlighted regions, select the latest (last) message in the messages panel. + if len(mp.app.MessagesPanel.GetHighlights()) == 0 { + mp.app.SelectedMessage = 0 } else { - // If the selected message is the latest (last) message, select the oldest (first) message in the messages TextView. - if mtv.app.SelectedMessage == 0 { - mtv.app.SelectedMessage = len(ms) - 1 + // If the selected message is the latest (last) message, select the oldest (first) message in the messages panel. + if mp.app.SelectedMessage == 0 { + mp.app.SelectedMessage = len(ms) - 1 } else { - mtv.app.SelectedMessage-- + mp.app.SelectedMessage-- } } - mtv.app.MessagesTextView. - Highlight(ms[mtv.app.SelectedMessage].ID.String()). + mp.app.MessagesPanel. + Highlight(ms[mp.app.SelectedMessage].ID.String()). ScrollToHighlight() return nil - case mtv.app.Config.Keys.SelectFirstMessage: - mtv.app.SelectedMessage = len(ms) - 1 - mtv.app.MessagesTextView. - Highlight(ms[mtv.app.SelectedMessage].ID.String()). + case mp.app.Config.Keys.SelectFirstMessage: + mp.app.SelectedMessage = len(ms) - 1 + mp.app.MessagesPanel. + Highlight(ms[mp.app.SelectedMessage].ID.String()). ScrollToHighlight() return nil - case mtv.app.Config.Keys.SelectLastMessage: - mtv.app.SelectedMessage = 0 - mtv.app.MessagesTextView. - Highlight(ms[mtv.app.SelectedMessage].ID.String()). + case mp.app.Config.Keys.SelectLastMessage: + mp.app.SelectedMessage = 0 + mp.app.MessagesPanel. + Highlight(ms[mp.app.SelectedMessage].ID.String()). ScrollToHighlight() return nil - case mtv.app.Config.Keys.OpenMessageActionsList: - hs := mtv.app.MessagesTextView.GetHighlights() + case mp.app.Config.Keys.OpenMessageActionsList: + hs := mp.app.MessagesPanel.GetHighlights() if len(hs) == 0 { return nil } @@ -120,13 +120,13 @@ func (mtv *MessagesTextView) onInputCapture(e *tcell.EventKey) *tcell.EventKey { return nil } - actionsList := NewMessageActionsList(mtv.app, m) - mtv.app.SetRoot(actionsList, true) + actionsList := NewMessageActionsList(mp.app, m) + mp.app.SetRoot(actionsList, true) return nil case "Esc": - mtv.app.SelectedMessage = -1 - mtv.app.SetFocus(mtv.app.MainFlex) - mtv.app.MessagesTextView. + mp.app.SelectedMessage = -1 + mp.app.SetFocus(mp.app.MainFlex) + mp.app.MessagesPanel. Clear(). Highlight(). SetTitle("") @@ -153,7 +153,7 @@ func NewMessageActionsList(app *App, m *discord.Message) *MessageActionsList { mal.SetDoneFunc(func() { app. SetRoot(app.MainFlex, true). - SetFocus(app.MessagesTextView) + SetFocus(app.MessagesPanel) }) // If the client user has the `SEND_MESSAGES` permission, add "Reply" and "Mention Reply" actions. @@ -176,7 +176,7 @@ func NewMessageActionsList(app *App, m *discord.Message) *MessageActionsList { } app.SetRoot(app.MainFlex, true) - app.SetFocus(app.MessagesTextView) + app.SetFocus(app.MessagesPanel) }) } @@ -225,13 +225,13 @@ func (mal *MessageActionsList) selectReplyAction() { } mal.app.SelectedMessage, _ = findMessageByID(ms, mal.message.ReferencedMessage.ID) - mal.app.MessagesTextView. + mal.app.MessagesPanel. Highlight(mal.message.ReferencedMessage.ID.String()). ScrollToHighlight() mal.app. SetRoot(mal.app.MainFlex, true). - SetFocus(mal.app.MessagesTextView) + SetFocus(mal.app.MessagesPanel) } func (mal *MessageActionsList) openAttachmentAction() { @@ -259,7 +259,7 @@ func (mal *MessageActionsList) openAttachmentAction() { mal.app. SetRoot(mal.app.MainFlex, true). - SetFocus(mal.app.MessagesTextView) + SetFocus(mal.app.MessagesPanel) } func (mal *MessageActionsList) downloadAttachmentAction() { @@ -285,11 +285,11 @@ func (mal *MessageActionsList) downloadAttachmentAction() { mal.app. SetRoot(mal.app.MainFlex, true). - SetFocus(mal.app.MessagesTextView) + SetFocus(mal.app.MessagesPanel) } func (mal *MessageActionsList) deleteAction() { - mal.app.MessagesTextView.Clear() + mal.app.MessagesPanel.Clear() err := mal.app.State.MessageRemove(mal.message.ChannelID, mal.message.ID) if err != nil { @@ -308,7 +308,7 @@ func (mal *MessageActionsList) deleteAction() { } for i := len(ms) - 1; i >= 0; i-- { - _, err = mal.app.MessagesTextView.Write(buildMessage(mal.app, ms[i])) + _, err = mal.app.MessagesPanel.Write(buildMessage(mal.app, ms[i])) if err != nil { return } @@ -316,7 +316,7 @@ func (mal *MessageActionsList) deleteAction() { mal.app. SetRoot(mal.app.MainFlex, true). - SetFocus(mal.app.MessagesTextView) + SetFocus(mal.app.MessagesPanel) } func (mal *MessageActionsList) copyContentAction() { @@ -326,7 +326,7 @@ func (mal *MessageActionsList) copyContentAction() { } mal.app.SetRoot(mal.app.MainFlex, true) - mal.app.SetFocus(mal.app.MessagesTextView) + mal.app.SetFocus(mal.app.MessagesPanel) } func (mal *MessageActionsList) copyIDAction() { @@ -336,7 +336,7 @@ func (mal *MessageActionsList) copyIDAction() { } mal.app.SetRoot(mal.app.MainFlex, true) - mal.app.SetFocus(mal.app.MessagesTextView) + mal.app.SetFocus(mal.app.MessagesPanel) } type MessageInput struct { @@ -379,8 +379,8 @@ func (mi *MessageInput) onInputCapture(e *tcell.EventKey) *tcell.EventKey { return nil } - if len(mi.app.MessagesTextView.GetHighlights()) != 0 { - mID, err := discord.ParseSnowflake(mi.app.MessagesTextView.GetHighlights()[0]) + if len(mi.app.MessagesPanel.GetHighlights()) != 0 { + mID, err := discord.ParseSnowflake(mi.app.MessagesPanel.GetHighlights()[0]) if err != nil { return nil } @@ -400,7 +400,7 @@ func (mi *MessageInput) onInputCapture(e *tcell.EventKey) *tcell.EventKey { go mi.app.State.SendMessageComplex(m.ChannelID, d) mi.app.SelectedMessage = -1 - mi.app.MessagesTextView.Highlight() + mi.app.MessagesPanel.Highlight() mi.app.MessageInputField.SetTitle("") } else { @@ -423,7 +423,7 @@ func (mi *MessageInput) onInputCapture(e *tcell.EventKey) *tcell.EventKey { mi.app.SetFocus(mi.app.MainFlex) mi.app.SelectedMessage = -1 - mi.app.MessagesTextView.Highlight() + mi.app.MessagesPanel.Highlight() return nil case mi.app.Config.Keys.OpenExternalEditor: