@@ -10,6 +10,7 @@ import (
10 "github.com/charmbracelet/bubbles/v2/textarea"
10 "github.com/charmbracelet/bubbles/v2/textarea"
11 "github.com/charmbracelet/bubbles/v2/textinput"
11 "github.com/charmbracelet/bubbles/v2/textinput"
12 tea "github.com/charmbracelet/bubbletea/v2"
12 tea "github.com/charmbracelet/bubbletea/v2"
13+ "github.com/charmbracelet/crush/internal/exp/diffview"
13 "github.com/charmbracelet/glamour/v2/ansi"
14 "github.com/charmbracelet/glamour/v2/ansi"
14 "github.com/charmbracelet/lipgloss/v2"
15 "github.com/charmbracelet/lipgloss/v2"
15 "github.com/lucasb-eyer/go-colorful"
16 "github.com/lucasb-eyer/go-colorful"
@@ -31,9 +32,10 @@ type Theme struct {
31 Tertiary color.Color
32 Tertiary color.Color
32 Accent color.Color
33 Accent color.Color
34− BgBase color.Color
36+ BgBaseLighter color.Color
35− BgSubtle color.Color
37+ BgSubtle color.Color
36− BgOverlay color.Color
38+ BgOverlay color.Color
38 FgBase color.Color
40 FgBase color.Color
39 FgMuted color.Color
41 FgMuted color.Color
@@ -70,21 +72,6 @@ type Theme struct {
70 styles *Styles
72 styles *Styles
77− HunkHeader color.Color
78− HighlightAdded color.Color
79− HighlightRemoved color.Color
81− RemovedBg color.Color
82− ContextBg color.Color
83− LineNumber color.Color
84− AddedLineNumberBg color.Color
85− RemovedLineNumberBg color.Color
88type Styles struct {
75type Styles struct {
89 Base lipgloss.Style
76 Base lipgloss.Style
90 SelectedBase lipgloss.Style
77 SelectedBase lipgloss.Style
@@ -112,7 +99,7 @@ type Styles struct {
112 Help help.Styles
99 Help help.Styles
115− Diff Diff
102+ Diff diffview.Style
117 // FilePicker
104 // FilePicker
118 FilePicker filepicker.Styles
105 FilePicker filepicker.Styles
@@ -421,22 +408,50 @@ func (t *Theme) buildStyles() *Styles {
421 FullSeparator: base.Foreground(t.Border),
408 FullSeparator: base.Foreground(t.Border),
424− // TODO: Fix this this is bad
411+ Diff: diffview.Style{
425− Diff: Diff{
412+ DividerLine: diffview.LineStyle{
426− Added: t.Green,
413+ LineNumber: lipgloss.NewStyle().
427− Removed: t.Red,
414+ Foreground(t.FgHalfMuted).
428− Context: t.FgSubtle,
415+ Background(t.BgBaseLighter),
429− HunkHeader: t.FgSubtle,
416+ Code: lipgloss.NewStyle().
430− HighlightAdded: t.GreenLight,
417+ Foreground(t.FgHalfMuted).
431− HighlightRemoved: t.RedLight,
418+ Background(t.BgBaseLighter),
432− AddedBg: t.GreenDark,
419+ },
433− RemovedBg: t.RedDark,
420+ MissingLine: diffview.LineStyle{
434− ContextBg: t.BgSubtle,
421+ LineNumber: lipgloss.NewStyle().
422+ Background(t.BgBaseLighter),
423+ Code: lipgloss.NewStyle().
424+ Background(t.BgBaseLighter),
426+ EqualLine: diffview.LineStyle{
427+ LineNumber: lipgloss.NewStyle().
428+ Foreground(t.FgMuted).
429+ Background(t.BgBase),
430+ Code: lipgloss.NewStyle().
431+ Foreground(t.FgMuted).
432+ Background(t.BgBase),
434+ InsertLine: diffview.LineStyle{
435+ LineNumber: lipgloss.NewStyle().
436+ Foreground(lipgloss.Color("#629657")).
437+ Background(lipgloss.Color("#2b322a")),
438+ Symbol: lipgloss.NewStyle().
439+ Foreground(lipgloss.Color("#629657")).
440+ Background(lipgloss.Color("#323931")),
441+ Code: lipgloss.NewStyle().
442+ Background(lipgloss.Color("#323931")),
444+ DeleteLine: diffview.LineStyle{
435− LineNumber: t.FgMuted,
445+ LineNumber: lipgloss.NewStyle().
436− AddedLineNumberBg: t.GreenDark,
446+ Foreground(lipgloss.Color("#a45c59")).
437− RemovedLineNumberBg: t.RedDark,
447+ Background(lipgloss.Color("#312929")),
448+ Symbol: lipgloss.NewStyle().
449+ Foreground(lipgloss.Color("#a45c59")).
450+ Background(lipgloss.Color("#383030")),
451+ Code: lipgloss.NewStyle().
452+ Background(lipgloss.Color("#383030")),
440 FilePicker: filepicker.Styles{
455 FilePicker: filepicker.Styles{
441 DisabledCursor: base.Foreground(t.FgMuted),
456 DisabledCursor: base.Foreground(t.FgMuted),
442 Cursor: base.Foreground(t.FgBase),
457 Cursor: base.Foreground(t.FgBase),