on main help sign in
refactor(diffview): wrap default styles into functions

Co-authored-by: Christian Rocha <christian@rocha.is>

commit34fa3c1185b9d7fd8ec09397aab975172acf6355 authorAndrey Nering <andreynering@users.noreply.github.com> dateMon 16 Jun 2025, 16:34 (1 year ago) parented06ea2
3 files changed+102−98
internal/exp/diffview/diffview.go+1−1 internal/exp/diffview/diffview_test.go+7−7 internal/exp/diffview/style.go+94−90
internal/exp/diffview/diffview.go+1−1
@@ -69,7 +69,7 @@ func New() *DiffView {
6969 lineNumbers: true,
7070 tabWidth: 8,
7171 }
72− dv.style = DefaultDarkStyle
72+ dv.style = DefaultDarkStyle()
7373 return dv
7474}
7575
internal/exp/diffview/diffview_test.go+7−7
@@ -97,12 +97,12 @@ var (
9797
9898 LightModeFunc = func(dv *diffview.DiffView) *diffview.DiffView {
9999 return dv.
100− Style(diffview.DefaultLightStyle).
100+ Style(diffview.DefaultLightStyle()).
101101 ChromaStyle(styles.Get("catppuccin-latte"))
102102 }
103103 DarkModeFunc = func(dv *diffview.DiffView) *diffview.DiffView {
104104 return dv.
105− Style(diffview.DefaultDarkStyle).
105+ Style(diffview.DefaultDarkStyle()).
106106 ChromaStyle(styles.Get("catppuccin-macchiato"))
107107 }
108108
@@ -165,7 +165,7 @@ func TestDiffViewTabs(t *testing.T) {
165165 dv := diffview.New().
166166 Before("main.go", TestTabsBefore).
167167 After("main.go", TestTabsAfter).
168− Style(diffview.DefaultLightStyle).
168+ Style(diffview.DefaultLightStyle()).
169169 ChromaStyle(styles.Get("catppuccin-latte"))
170170 dv = layoutFunc(dv)
171171
@@ -190,7 +190,7 @@ func TestDiffViewWidth(t *testing.T) {
190190 Before("main.go", TestMultipleHunksBefore).
191191 After("main.go", TestMultipleHunksAfter).
192192 Width(width).
193− Style(diffview.DefaultLightStyle).
193+ Style(diffview.DefaultLightStyle()).
194194 ChromaStyle(styles.Get("catppuccin-latte"))
195195 dv = layoutFunc(dv)
196196
@@ -215,7 +215,7 @@ func TestDiffViewHeight(t *testing.T) {
215215 Before("main.go", TestMultipleHunksBefore).
216216 After("main.go", TestMultipleHunksAfter).
217217 Height(height).
218− Style(diffview.DefaultLightStyle).
218+ Style(diffview.DefaultLightStyle()).
219219 ChromaStyle(styles.Get("catppuccin-latte"))
220220 dv = layoutFunc(dv)
221221
@@ -239,7 +239,7 @@ func TestDiffViewXOffset(t *testing.T) {
239239 dv := diffview.New().
240240 Before("main.go", TestDefaultBefore).
241241 After("main.go", TestDefaultAfter).
242− Style(diffview.DefaultLightStyle).
242+ Style(diffview.DefaultLightStyle()).
243243 ChromaStyle(styles.Get("catppuccin-latte")).
244244 Width(60).
245245 XOffset(xOffset)
@@ -265,7 +265,7 @@ func TestDiffViewYOffset(t *testing.T) {
265265 dv := diffview.New().
266266 Before("main.go", TestMultipleHunksBefore).
267267 After("main.go", TestMultipleHunksAfter).
268− Style(diffview.DefaultLightStyle).
268+ Style(diffview.DefaultLightStyle()).
269269 ChromaStyle(styles.Get("catppuccin-latte")).
270270 Height(5).
271271 YOffset(yOffset)
internal/exp/diffview/style.go+94−90
@@ -24,97 +24,101 @@ type Style struct {
2424}
2525
2626// DefaultLightStyle provides a default light theme style for the diff view.
27−var DefaultLightStyle = Style{
28− DividerLine: LineStyle{
29− LineNumber: lipgloss.NewStyle().
30− Foreground(charmtone.Iron).
31− Background(charmtone.Thunder),
32− Code: lipgloss.NewStyle().
33− Foreground(charmtone.Oyster).
34− Background(charmtone.Anchovy),
35− },
36− MissingLine: LineStyle{
37− LineNumber: lipgloss.NewStyle().
38− Background(charmtone.Ash),
39− Code: lipgloss.NewStyle().
40− Background(charmtone.Ash),
41− },
42− EqualLine: LineStyle{
43− LineNumber: lipgloss.NewStyle().
44− Foreground(charmtone.Charcoal).
45− Background(charmtone.Ash),
46− Code: lipgloss.NewStyle().
47− Foreground(charmtone.Pepper).
48− Background(charmtone.Salt),
49− },
50− InsertLine: LineStyle{
51− LineNumber: lipgloss.NewStyle().
52− Foreground(charmtone.Turtle).
53− Background(lipgloss.Color("#c8e6c9")),
54− Symbol: lipgloss.NewStyle().
55− Foreground(charmtone.Turtle).
56− Background(lipgloss.Color("#e8f5e9")),
57− Code: lipgloss.NewStyle().
58− Foreground(charmtone.Pepper).
59− Background(lipgloss.Color("#e8f5e9")),
60− },
61− DeleteLine: LineStyle{
62− LineNumber: lipgloss.NewStyle().
63− Foreground(charmtone.Cherry).
64− Background(lipgloss.Color("#ffcdd2")),
65− Symbol: lipgloss.NewStyle().
66− Foreground(charmtone.Cherry).
67− Background(lipgloss.Color("#ffebee")),
68− Code: lipgloss.NewStyle().
69− Foreground(charmtone.Pepper).
70− Background(lipgloss.Color("#ffebee")),
71− },
27+func DefaultLightStyle() Style {
28+ return Style{
29+ DividerLine: LineStyle{
30+ LineNumber: lipgloss.NewStyle().
31+ Foreground(charmtone.Iron).
32+ Background(charmtone.Thunder),
33+ Code: lipgloss.NewStyle().
34+ Foreground(charmtone.Oyster).
35+ Background(charmtone.Anchovy),
36+ },
37+ MissingLine: LineStyle{
38+ LineNumber: lipgloss.NewStyle().
39+ Background(charmtone.Ash),
40+ Code: lipgloss.NewStyle().
41+ Background(charmtone.Ash),
42+ },
43+ EqualLine: LineStyle{
44+ LineNumber: lipgloss.NewStyle().
45+ Foreground(charmtone.Charcoal).
46+ Background(charmtone.Ash),
47+ Code: lipgloss.NewStyle().
48+ Foreground(charmtone.Pepper).
49+ Background(charmtone.Salt),
50+ },
51+ InsertLine: LineStyle{
52+ LineNumber: lipgloss.NewStyle().
53+ Foreground(charmtone.Turtle).
54+ Background(lipgloss.Color("#c8e6c9")),
55+ Symbol: lipgloss.NewStyle().
56+ Foreground(charmtone.Turtle).
57+ Background(lipgloss.Color("#e8f5e9")),
58+ Code: lipgloss.NewStyle().
59+ Foreground(charmtone.Pepper).
60+ Background(lipgloss.Color("#e8f5e9")),
61+ },
62+ DeleteLine: LineStyle{
63+ LineNumber: lipgloss.NewStyle().
64+ Foreground(charmtone.Cherry).
65+ Background(lipgloss.Color("#ffcdd2")),
66+ Symbol: lipgloss.NewStyle().
67+ Foreground(charmtone.Cherry).
68+ Background(lipgloss.Color("#ffebee")),
69+ Code: lipgloss.NewStyle().
70+ Foreground(charmtone.Pepper).
71+ Background(lipgloss.Color("#ffebee")),
72+ },
73+ }
7274}
7375
7476// DefaultDarkStyle provides a default dark theme style for the diff view.
75−var DefaultDarkStyle = Style{
76− DividerLine: LineStyle{
77− LineNumber: lipgloss.NewStyle().
78− Foreground(charmtone.Smoke).
79− Background(charmtone.Sapphire),
80− Code: lipgloss.NewStyle().
81− Foreground(charmtone.Smoke).
82− Background(charmtone.Ox),
83− },
84− MissingLine: LineStyle{
85− LineNumber: lipgloss.NewStyle().
86− Background(charmtone.Charcoal),
87− Code: lipgloss.NewStyle().
88− Background(charmtone.Charcoal),
89− },
90− EqualLine: LineStyle{
91− LineNumber: lipgloss.NewStyle().
92− Foreground(charmtone.Ash).
93− Background(charmtone.Charcoal),
94− Code: lipgloss.NewStyle().
95− Foreground(charmtone.Salt).
96− Background(charmtone.Pepper),
97− },
98− InsertLine: LineStyle{
99− LineNumber: lipgloss.NewStyle().
100− Foreground(charmtone.Turtle).
101− Background(lipgloss.Color("#293229")),
102− Symbol: lipgloss.NewStyle().
103− Foreground(charmtone.Turtle).
104− Background(lipgloss.Color("#303a30")),
105− Code: lipgloss.NewStyle().
106− Foreground(charmtone.Salt).
107− Background(lipgloss.Color("#303a30")),
108− },
109− DeleteLine: LineStyle{
110− LineNumber: lipgloss.NewStyle().
111− Foreground(charmtone.Cherry).
112− Background(lipgloss.Color("#332929")),
113− Symbol: lipgloss.NewStyle().
114− Foreground(charmtone.Cherry).
115− Background(lipgloss.Color("#3a3030")),
116− Code: lipgloss.NewStyle().
117− Foreground(charmtone.Salt).
118− Background(lipgloss.Color("#3a3030")),
119− },
77+func DefaultDarkStyle() Style {
78+ return Style{
79+ DividerLine: LineStyle{
80+ LineNumber: lipgloss.NewStyle().
81+ Foreground(charmtone.Smoke).
82+ Background(charmtone.Sapphire),
83+ Code: lipgloss.NewStyle().
84+ Foreground(charmtone.Smoke).
85+ Background(charmtone.Ox),
86+ },
87+ MissingLine: LineStyle{
88+ LineNumber: lipgloss.NewStyle().
89+ Background(charmtone.Charcoal),
90+ Code: lipgloss.NewStyle().
91+ Background(charmtone.Charcoal),
92+ },
93+ EqualLine: LineStyle{
94+ LineNumber: lipgloss.NewStyle().
95+ Foreground(charmtone.Ash).
96+ Background(charmtone.Charcoal),
97+ Code: lipgloss.NewStyle().
98+ Foreground(charmtone.Salt).
99+ Background(charmtone.Pepper),
100+ },
101+ InsertLine: LineStyle{
102+ LineNumber: lipgloss.NewStyle().
103+ Foreground(charmtone.Turtle).
104+ Background(lipgloss.Color("#293229")),
105+ Symbol: lipgloss.NewStyle().
106+ Foreground(charmtone.Turtle).
107+ Background(lipgloss.Color("#303a30")),
108+ Code: lipgloss.NewStyle().
109+ Foreground(charmtone.Salt).
110+ Background(lipgloss.Color("#303a30")),
111+ },
112+ DeleteLine: LineStyle{
113+ LineNumber: lipgloss.NewStyle().
114+ Foreground(charmtone.Cherry).
115+ Background(lipgloss.Color("#332929")),
116+ Symbol: lipgloss.NewStyle().
117+ Foreground(charmtone.Cherry).
118+ Background(lipgloss.Color("#3a3030")),
119+ Code: lipgloss.NewStyle().
120+ Foreground(charmtone.Salt).
121+ Background(lipgloss.Color("#3a3030")),
122+ },
123+ }
120124}