summaryrefslogtreecommitdiffhomepage
path: root/internal/diff/diff.go
diff options
context:
space:
mode:
authorKujtim Hoxha <[email protected]>2025-04-18 20:17:38 +0200
committerKujtim Hoxha <[email protected]>2025-04-21 13:42:27 +0200
commit333ea6ec4b2abfc2c1a9c3f6b0918ca5d296347f (patch)
treee0d456417368e8716c81ee43b82be3d6ed39c59e /internal/diff/diff.go
parent05d0e86f10369fd0e51a924ac88029fb92591499 (diff)
downloadopencode-333ea6ec4b2abfc2c1a9c3f6b0918ca5d296347f.tar.gz
opencode-333ea6ec4b2abfc2c1a9c3f6b0918ca5d296347f.zip
implement patch, update ui, improve rendering
Diffstat (limited to 'internal/diff/diff.go')
-rw-r--r--internal/diff/diff.go28
1 files changed, 18 insertions, 10 deletions
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...))
}