@@ -331,12 +331,13 @@ outer:
331 isLastHunk := i+1 == len(dv.unified.Hunks)
331 isLastHunk := i+1 == len(dv.unified.Hunks)
332 isLastLine := j+1 == len(h.Lines)
332 isLastLine := j+1 == len(h.Lines)
333 if hasReachedHeight && (!isLastHunk || !isLastLine) {
333 if hasReachedHeight && (!isLastHunk || !isLastLine) {
334+ lineStyle := dv.lineStyleForType(l.Kind)
334 if dv.lineNumbers {
335 if dv.lineNumbers {
335− write(dv.style.EqualLine.LineNumber.Render(pad("…", dv.beforeNumDigits)))
336+ write(lineStyle.LineNumber.Render(pad("…", dv.beforeNumDigits)))
336− write(dv.style.EqualLine.LineNumber.Render(pad("…", dv.afterNumDigits)))
337+ write(lineStyle.LineNumber.Render(pad("…", dv.afterNumDigits)))
338 write(fullContentStyle.Render(
339 write(fullContentStyle.Render(
339− dv.style.EqualLine.Code.Width(dv.fullCodeWidth).Render(" …"),
340+ lineStyle.Code.Width(dv.fullCodeWidth).Render(" …"),
341 write("\n")
342 write("\n")
342 break outer
343 break outer
@@ -436,17 +437,25 @@ outer:
436 isLastHunk := i+1 == len(dv.unified.Hunks)
437 isLastHunk := i+1 == len(dv.unified.Hunks)
437 isLastLine := j+1 == len(h.lines)
438 isLastLine := j+1 == len(h.lines)
438 if hasReachedHeight && (!isLastHunk || !isLastLine) {
439 if hasReachedHeight && (!isLastHunk || !isLastLine) {
440+ lineStyle := dv.style.MissingLine
441+ if l.before != nil {
442+ lineStyle = dv.lineStyleForType(l.before.Kind)
439 if dv.lineNumbers {
444 if dv.lineNumbers {
440− write(dv.style.EqualLine.LineNumber.Render(pad("…", dv.beforeNumDigits)))
445+ write(lineStyle.LineNumber.Render(pad("…", dv.beforeNumDigits)))
442 write(beforeFullContentStyle.Render(
447 write(beforeFullContentStyle.Render(
443− dv.style.EqualLine.Code.Width(dv.fullCodeWidth).Render(" …"),
448+ lineStyle.Code.Width(dv.fullCodeWidth).Render(" …"),
450+ lineStyle = dv.style.MissingLine
452+ lineStyle = dv.lineStyleForType(l.after.Kind)
445 if dv.lineNumbers {
454 if dv.lineNumbers {
446− write(dv.style.EqualLine.LineNumber.Render(pad("…", dv.afterNumDigits)))
455+ write(lineStyle.LineNumber.Render(pad("…", dv.afterNumDigits)))
448 write(afterFullContentStyle.Render(
457 write(afterFullContentStyle.Render(
449− dv.style.EqualLine.Code.Width(dv.fullCodeWidth).Render(" …"),
458+ lineStyle.Code.Width(dv.fullCodeWidth).Render(" …"),
451 write("\n")
460 write("\n")
452 break outer
461 break outer
@@ -573,3 +582,16 @@ func (dv *DiffView) hunkShownLines(h *udiff.Hunk) (before, after int) {
586+func (dv *DiffView) lineStyleForType(t udiff.OpKind) LineStyle {
589+ return dv.style.EqualLine
591+ return dv.style.InsertLine
593+ return dv.style.DeleteLine
595+ return dv.style.MissingLine