@@ -331,12 +331,13 @@ outer:
331331 isLastHunk := i+1 == len(dv.unified.Hunks)
332332 isLastLine := j+1 == len(h.Lines)
333333 if hasReachedHeight && (!isLastHunk || !isLastLine) {
334+ lineStyle := dv.lineStyleForType(l.Kind)
334335 if dv.lineNumbers {
335− write(dv.style.EqualLine.LineNumber.Render(pad("…", dv.beforeNumDigits)))
336− write(dv.style.EqualLine.LineNumber.Render(pad("…", dv.afterNumDigits)))
336+ write(lineStyle.LineNumber.Render(pad("…", dv.beforeNumDigits)))
337+ write(lineStyle.LineNumber.Render(pad("…", dv.afterNumDigits)))
337338 }
338339 write(fullContentStyle.Render(
339− dv.style.EqualLine.Code.Width(dv.fullCodeWidth).Render(" …"),
340+ lineStyle.Code.Width(dv.fullCodeWidth).Render(" …"),
340341 ))
341342 write("\n")
342343 break outer
@@ -436,17 +437,25 @@ outer:
436437 isLastHunk := i+1 == len(dv.unified.Hunks)
437438 isLastLine := j+1 == len(h.lines)
438439 if hasReachedHeight && (!isLastHunk || !isLastLine) {
440+ lineStyle := dv.style.MissingLine
441+ if l.before != nil {
442+ lineStyle = dv.lineStyleForType(l.before.Kind)
443+ }
439444 if dv.lineNumbers {
440− write(dv.style.EqualLine.LineNumber.Render(pad("…", dv.beforeNumDigits)))
445+ write(lineStyle.LineNumber.Render(pad("…", dv.beforeNumDigits)))
441446 }
442447 write(beforeFullContentStyle.Render(
443− dv.style.EqualLine.Code.Width(dv.fullCodeWidth).Render(" …"),
448+ lineStyle.Code.Width(dv.fullCodeWidth).Render(" …"),
444449 ))
450+ lineStyle = dv.style.MissingLine
451+ if l.after != nil {
452+ lineStyle = dv.lineStyleForType(l.after.Kind)
453+ }
445454 if dv.lineNumbers {
446− write(dv.style.EqualLine.LineNumber.Render(pad("…", dv.afterNumDigits)))
455+ write(lineStyle.LineNumber.Render(pad("…", dv.afterNumDigits)))
447456 }
448457 write(afterFullContentStyle.Render(
449− dv.style.EqualLine.Code.Width(dv.fullCodeWidth).Render(" …"),
458+ lineStyle.Code.Width(dv.fullCodeWidth).Render(" …"),
450459 ))
451460 write("\n")
452461 break outer
@@ -573,3 +582,16 @@ func (dv *DiffView) hunkShownLines(h *udiff.Hunk) (before, after int) {
573582 }
574583 return
575584}
585+
586+func (dv *DiffView) lineStyleForType(t udiff.OpKind) LineStyle {
587+ switch t {
588+ case udiff.Equal:
589+ return dv.style.EqualLine
590+ case udiff.Insert:
591+ return dv.style.InsertLine
592+ case udiff.Delete:
593+ return dv.style.DeleteLine
594+ default:
595+ return dv.style.MissingLine
596+ }
597+}