diff --git a/internal/exp/diffview/diffview.go b/internal/exp/diffview/diffview.go index be262a8bac73e4507c69d3b4d8757646f75d03bb..c179f811cd3953d17884369fa4299bb9776fc630 100644 --- a/internal/exp/diffview/diffview.go +++ b/internal/exp/diffview/diffview.go @@ -131,12 +131,12 @@ func (dv *DiffView) String() string { var b strings.Builder - for i, h := range dv.unified.Hunks { + for _, h := range dv.unified.Hunks { if dv.lineNumbers { b.WriteString(dv.style.DividerLine.LineNumber.Render(pad("…", beforeNumDigits))) b.WriteString(dv.style.DividerLine.LineNumber.Render(pad("…", afterNumDigits))) } - b.WriteString(dv.style.DividerLine.Code.Width(codeWidth + leadingSymbolsSize).Render(dv.hunkLineFor(i))) + b.WriteString(dv.style.DividerLine.Code.Width(codeWidth + leadingSymbolsSize).Render(dv.hunkLineFor(h))) b.WriteRune('\n') beforeLine := h.FromLine @@ -207,9 +207,8 @@ func (dv *DiffView) lineNumberDigits() (maxBefore, maxAfter int) { return } -func (dv *DiffView) hunkLineFor(i int) string { - h := dv.unified.Hunks[i] - beforeShownLines, afterShownLines := dv.hunkShownLines(i) +func (dv *DiffView) hunkLineFor(h *udiff.Hunk) string { + beforeShownLines, afterShownLines := dv.hunkShownLines(h) return fmt.Sprintf( " @@ -%d,%d +%d,%d @@ ", @@ -222,8 +221,8 @@ func (dv *DiffView) hunkLineFor(i int) string { // hunkShownLines calculates the number of lines shown in a hunk for both before // and after versions. -func (dv *DiffView) hunkShownLines(i int) (before, after int) { - for _, l := range dv.unified.Hunks[i].Lines { +func (dv *DiffView) hunkShownLines(h *udiff.Hunk) (before, after int) { + for _, l := range h.Lines { switch l.Kind { case udiff.Equal: before++ @@ -242,8 +241,8 @@ func (dv *DiffView) detectWidth() { return } - for i, h := range dv.unified.Hunks { - shownLines := ansi.StringWidth(dv.hunkLineFor(i)) + for _, h := range dv.unified.Hunks { + shownLines := ansi.StringWidth(dv.hunkLineFor(h)) for _, l := range h.Lines { lineWidth := ansi.StringWidth(strings.TrimSuffix(l.Content, "\n"))