fix(processor): annotate every removed line in multi-line preview windows

This commit is contained in:
2026-07-02 09:20:06 -05:00
parent 2711f141fd
commit fda9a8a295
+7 -3
View File
@@ -400,6 +400,10 @@ func (p *Processor) displayChangesWithContext(lines []string, changes []changeIn
cyan := color.New(color.FgCyan) cyan := color.New(color.FgCyan)
totalLines := len(lines) totalLines := len(lines)
displayedLines := make(map[int]bool) displayedLines := make(map[int]bool)
changeByLine := make(map[int]changeInfo)
for _, c := range changes {
changeByLine[c.lineNum] = c
}
for i, change := range changes { for i, change := range changes {
startLine := max(1, change.lineNum-contextLines) startLine := max(1, change.lineNum-contextLines)
@@ -423,13 +427,13 @@ func (p *Processor) displayChangesWithContext(lines []string, changes []changeIn
lineNumStr := gray.Sprintf("%4d", lineNum) lineNumStr := gray.Sprintf("%4d", lineNum)
line := lines[lineNum-1] line := lines[lineNum-1]
if lineNum == change.lineNum { if c, ok := changeByLine[lineNum]; ok {
switch change.changeType { switch c.changeType {
case "removed": case "removed":
fmt.Printf("%s %s %s\n", lineNumStr, red.Sprint("-"), red.Sprint(line)) fmt.Printf("%s %s %s\n", lineNumStr, red.Sprint("-"), red.Sprint(line))
case "modified": case "modified":
fmt.Printf("%s %s %s\n", lineNumStr, red.Sprint("~"), red.Sprint(line)) fmt.Printf("%s %s %s\n", lineNumStr, red.Sprint("~"), red.Sprint(line))
fmt.Printf("%s %s %s\n", lineNumStr, green.Sprint("+"), green.Sprint(change.newLine)) fmt.Printf("%s %s %s\n", lineNumStr, green.Sprint("+"), green.Sprint(c.newLine))
case "preserved": case "preserved":
fmt.Printf("%s %s %s\n", lineNumStr, cyan.Sprint("P"), line) fmt.Printf("%s %s %s\n", lineNumStr, cyan.Sprint("P"), line)
} }