chat/message: Add PublicMsg.RenderSelf(...) to support old-style formatting
authorAndrey Petrov <andrey.petrov@shazow.net>
Fri, 15 Mar 2019 20:20:13 +0000 (16:20 -0400)
committerAndrey Petrov <andrey.petrov@shazow.net>
Sat, 16 Mar 2019 15:52:07 +0000 (11:52 -0400)
chat/message/message.go
chat/message/user.go

index 5b4f76a7ba356ec9dd02becf8411404f0761b536..143096a2d9c9643c436b778c1db6ed75de17e7fc 100644 (file)
@@ -112,6 +112,7 @@ func (m PublicMsg) Render(t *Theme) string {
        return fmt.Sprintf("%s: %s", t.ColorName(m.from), m.body)
 }
 
+// RenderFor renders the message for other users to see.
 func (m PublicMsg) RenderFor(cfg UserConfig) string {
        if cfg.Highlight == nil || cfg.Theme == nil {
                return m.Render(cfg.Theme)
@@ -128,6 +129,11 @@ func (m PublicMsg) RenderFor(cfg UserConfig) string {
        return fmt.Sprintf("%s: %s", cfg.Theme.ColorName(m.from), body)
 }
 
+// RenderSelf renders the message for when it's echoing your own message.
+func (m PublicMsg) RenderSelf(cfg UserConfig) string {
+       return fmt.Sprintf("[%s] %s", cfg.Theme.ColorName(m.from), m.body)
+}
+
 func (m PublicMsg) String() string {
        return fmt.Sprintf("%s: %s", m.from.Name(), m.body)
 }
index 807d1f4d611ac3a961a47860ea97b5a3fc9e818f..f8cebf4de7a2c1885f8c6770b846318664c7db13 100644 (file)
@@ -161,7 +161,11 @@ func (u *User) render(m Message) string {
        var out string
        switch m := m.(type) {
        case PublicMsg:
-               out += m.RenderFor(cfg)
+               if u == m.From() {
+                       out += m.RenderSelf(cfg)
+               } else {
+                       out += m.RenderFor(cfg)
+               }
        case *PrivateMsg:
                out += m.Render(cfg.Theme)
                if cfg.Bell {