@@ -286,6 +286,8 @@ func (dv *DiffView) resizeCodeWidth() {
286286func (dv *DiffView) renderUnified() string {
287287 var b strings.Builder
288288
289+ fullContentStyle := lipgloss.NewStyle().MaxWidth(dv.fullCodeWidth)
290+
289291 for _, h := range dv.unified.Hunks {
290292 if dv.lineNumbers {
291293 b.WriteString(dv.style.DividerLine.LineNumber.Render(pad("…", dv.beforeNumDigits)))
@@ -308,7 +310,9 @@ func (dv *DiffView) renderUnified() string {
308310 b.WriteString(dv.style.EqualLine.LineNumber.Render(pad(beforeLine, dv.beforeNumDigits)))
309311 b.WriteString(dv.style.EqualLine.LineNumber.Render(pad(afterLine, dv.afterNumDigits)))
310312 }
311− b.WriteString(dv.style.EqualLine.Code.Width(dv.fullCodeWidth).Render(" " + content))
313+ b.WriteString(fullContentStyle.Render(
314+ dv.style.EqualLine.Code.Width(dv.fullCodeWidth).Render(" " + content),
315+ ))
312316 beforeLine++
313317 afterLine++
314318 case udiff.Insert:
@@ -316,16 +320,20 @@ func (dv *DiffView) renderUnified() string {
316320 b.WriteString(dv.style.InsertLine.LineNumber.Render(pad(" ", dv.beforeNumDigits)))
317321 b.WriteString(dv.style.InsertLine.LineNumber.Render(pad(afterLine, dv.afterNumDigits)))
318322 }
319− b.WriteString(dv.style.InsertLine.Symbol.Render("+ "))
320− b.WriteString(dv.style.InsertLine.Code.Width(dv.codeWidth).Render(content))
323+ b.WriteString(fullContentStyle.Render(
324+ dv.style.InsertLine.Symbol.Render("+ ") +
325+ dv.style.InsertLine.Code.Width(dv.codeWidth).Render(content),
326+ ))
321327 afterLine++
322328 case udiff.Delete:
323329 if dv.lineNumbers {
324330 b.WriteString(dv.style.DeleteLine.LineNumber.Render(pad(beforeLine, dv.beforeNumDigits)))
325331 b.WriteString(dv.style.DeleteLine.LineNumber.Render(pad(" ", dv.afterNumDigits)))
326332 }
327− b.WriteString(dv.style.DeleteLine.Symbol.Render("- "))
328− b.WriteString(dv.style.DeleteLine.Code.Width(dv.codeWidth).Render(content))
333+ b.WriteString(fullContentStyle.Render(
334+ dv.style.DeleteLine.Symbol.Render("- ") +
335+ dv.style.DeleteLine.Code.Width(dv.codeWidth).Render(content),
336+ ))
329337 beforeLine++
330338 }
331339 b.WriteRune('\n')
@@ -339,6 +347,9 @@ func (dv *DiffView) renderUnified() string {
339347func (dv *DiffView) renderSplit() string {
340348 var b strings.Builder
341349
350+ beforeFullContentStyle := lipgloss.NewStyle().MaxWidth(dv.fullCodeWidth)
351+ afterFullContentStyle := lipgloss.NewStyle().MaxWidth(dv.fullCodeWidth + btoi(dv.extraColOnAfter))
352+
342353 for i, h := range dv.splitHunks {
343354 if dv.lineNumbers {
344355 b.WriteString(dv.style.DividerLine.LineNumber.Render(pad("…", dv.beforeNumDigits)))
@@ -371,19 +382,25 @@ func (dv *DiffView) renderSplit() string {
371382 if dv.lineNumbers {
372383 b.WriteString(dv.style.MissingLine.LineNumber.Render(pad(" ", dv.beforeNumDigits)))
373384 }
374− b.WriteString(dv.style.MissingLine.Code.Width(dv.fullCodeWidth).Render(" "))
385+ b.WriteString(beforeFullContentStyle.Render(
386+ dv.style.MissingLine.Code.Width(dv.fullCodeWidth).Render(" "),
387+ ))
375388 case l.before.Kind == udiff.Equal:
376389 if dv.lineNumbers {
377390 b.WriteString(dv.style.EqualLine.LineNumber.Render(pad(beforeLine, dv.beforeNumDigits)))
378391 }
379− b.WriteString(dv.style.EqualLine.Code.Width(dv.fullCodeWidth).Render(" " + beforeContent))
392+ b.WriteString(beforeFullContentStyle.Render(
393+ dv.style.EqualLine.Code.Width(dv.fullCodeWidth).Render(" " + beforeContent),
394+ ))
380395 beforeLine++
381396 case l.before.Kind == udiff.Delete:
382397 if dv.lineNumbers {
383398 b.WriteString(dv.style.DeleteLine.LineNumber.Render(pad(beforeLine, dv.beforeNumDigits)))
384399 }
385− b.WriteString(dv.style.DeleteLine.Symbol.Render("- "))
386− b.WriteString(dv.style.DeleteLine.Code.Width(dv.codeWidth).Render(beforeContent))
400+ b.WriteString(beforeFullContentStyle.Render(
401+ dv.style.DeleteLine.Symbol.Render("- ") +
402+ dv.style.DeleteLine.Code.Width(dv.codeWidth).Render(beforeContent),
403+ ))
387404 beforeLine++
388405 }
389406
@@ -392,19 +409,25 @@ func (dv *DiffView) renderSplit() string {
392409 if dv.lineNumbers {
393410 b.WriteString(dv.style.MissingLine.LineNumber.Render(pad(" ", dv.afterNumDigits)))
394411 }
395− b.WriteString(dv.style.MissingLine.Code.Width(dv.fullCodeWidth + btoi(dv.extraColOnAfter)).Render(" "))
412+ b.WriteString(afterFullContentStyle.Render(
413+ dv.style.MissingLine.Code.Width(dv.fullCodeWidth + btoi(dv.extraColOnAfter)).Render(" "),
414+ ))
396415 case l.after.Kind == udiff.Equal:
397416 if dv.lineNumbers {
398417 b.WriteString(dv.style.EqualLine.LineNumber.Render(pad(afterLine, dv.afterNumDigits)))
399418 }
400− b.WriteString(dv.style.EqualLine.Code.Width(dv.fullCodeWidth + btoi(dv.extraColOnAfter)).Render(" " + afterContent))
419+ b.WriteString(afterFullContentStyle.Render(
420+ dv.style.EqualLine.Code.Width(dv.fullCodeWidth + btoi(dv.extraColOnAfter)).Render(" " + afterContent),
421+ ))
401422 afterLine++
402423 case l.after.Kind == udiff.Insert:
403424 if dv.lineNumbers {
404425 b.WriteString(dv.style.InsertLine.LineNumber.Render(pad(afterLine, dv.afterNumDigits)))
405426 }
406− b.WriteString(dv.style.InsertLine.Symbol.Render("+ "))
407− b.WriteString(dv.style.InsertLine.Code.Width(dv.codeWidth + btoi(dv.extraColOnAfter)).Render(afterContent))
427+ b.WriteString(afterFullContentStyle.Render(
428+ dv.style.InsertLine.Symbol.Render("+ ") +
429+ dv.style.InsertLine.Code.Width(dv.codeWidth+btoi(dv.extraColOnAfter)).Render(afterContent),
430+ ))
408431 afterLine++
409432 }
410433