From 333ea6ec4b2abfc2c1a9c3f6b0918ca5d296347f Mon Sep 17 00:00:00 2001 From: Kujtim Hoxha Date: Fri, 18 Apr 2025 20:17:38 +0200 Subject: implement patch, update ui, improve rendering --- internal/diff/diff.go | 28 ++++++++++++++++++---------- 1 file changed, 18 insertions(+), 10 deletions(-) (limited to 'internal/diff/diff.go') diff --git a/internal/diff/diff.go b/internal/diff/diff.go index f48079c9c..7b48de25f 100644 --- a/internal/diff/diff.go +++ b/internal/diff/diff.go @@ -79,8 +79,9 @@ type linePair struct { // StyleConfig defines styling for diff rendering type StyleConfig struct { - ShowHeader bool - FileNameFg lipgloss.Color + ShowHeader bool + ShowHunkHeader bool + FileNameFg lipgloss.Color // Background colors RemovedLineBg lipgloss.Color AddedLineBg lipgloss.Color @@ -111,7 +112,8 @@ func NewStyleConfig(opts ...StyleOption) StyleConfig { // Default color scheme config := StyleConfig{ ShowHeader: true, - FileNameFg: lipgloss.Color("#fab283"), + ShowHunkHeader: true, + FileNameFg: lipgloss.Color("#a0a0a0"), RemovedLineBg: lipgloss.Color("#3A3030"), AddedLineBg: lipgloss.Color("#303A30"), ContextLineBg: lipgloss.Color("#212121"), @@ -204,6 +206,10 @@ func WithShowHeader(show bool) StyleOption { return func(s *StyleConfig) { s.ShowHeader = show } } +func WithShowHunkHeader(show bool) StyleOption { + return func(s *StyleConfig) { s.ShowHunkHeader = show } +} + // ------------------------------------------------------------------------- // Parse Configuration // ------------------------------------------------------------------------- @@ -914,13 +920,15 @@ func FormatDiff(diffText string, opts ...SideBySideOption) (string, error) { for _, h := range diffResult.Hunks { // Render hunk header - sb.WriteString( - lipgloss.NewStyle(). - Background(config.Style.HunkLineBg). - Foreground(config.Style.HunkLineFg). - Width(config.TotalWidth). - Render(h.Header) + "\n", - ) + if config.Style.ShowHunkHeader { + sb.WriteString( + lipgloss.NewStyle(). + Background(config.Style.HunkLineBg). + Foreground(config.Style.HunkLineFg). + Width(config.TotalWidth). + Render(h.Header) + "\n", + ) + } sb.WriteString(RenderSideBySideHunk(diffResult.OldFile, h, opts...)) } -- cgit v1.2.3