ソースを参照

fix(config): reset style instead of merging for StyleWrapper (#759)

Co-authored-by: ayn2op <ayn2op@gmail.com>
xqrs 2 ヶ月 前
コミット
66b81b765d
2 ファイル変更6 行追加7 行削除
  1. 3 0
      internal/config/theme.go
  2. 3 7
      internal/markdown/renderer.go

+ 3 - 0
internal/config/theme.go

@@ -41,6 +41,9 @@ func (sw *StyleWrapper) UnmarshalTOML(v any) error {
 		return errInvalidType
 	}
 
+	// Reset on new styles
+	sw.Style = tcell.StyleDefault
+
 	for key, val := range m {
 		switch key {
 		case "foreground":

+ 3 - 7
internal/markdown/renderer.go

@@ -76,8 +76,7 @@ func (r *Renderer) RenderLines(source []byte, node ast.Node, base tcell.Style) [
 			}
 		case *ast.AutoLink:
 			if entering {
-				style := ui.MergeStyle(currentStyle(), theme.URLStyle.Style)
-				builder.Write(string(node.URL(source)), style)
+				builder.Write(string(node.URL(source)), ui.MergeStyle(currentStyle(), theme.URLStyle.Style))
 			}
 		case *ast.Link:
 			if entering {
@@ -119,14 +118,11 @@ func (r *Renderer) RenderLines(source []byte, node ast.Node, base tcell.Style) [
 			}
 		case *discordmd.Mention:
 			if entering {
-				style := ui.MergeStyle(currentStyle(), theme.MentionStyle.Style)
-				style = style.Bold(true)
-				builder.Write(mentionText(node), style)
+				builder.Write(mentionText(node), ui.MergeStyle(currentStyle(), theme.MentionStyle.Style))
 			}
 		case *discordmd.Emoji:
 			if entering {
-				style := ui.MergeStyle(currentStyle(), theme.EmojiStyle.Style)
-				builder.Write(":"+node.Name+":", style)
+				builder.Write(":"+node.Name+":", ui.MergeStyle(currentStyle(), theme.EmojiStyle.Style))
 			}
 		}
 		return ast.WalkContinue, nil