fix(processor): annotate every removed line in multi-line preview windows
This commit is contained in:
@@ -400,6 +400,10 @@ func (p *Processor) displayChangesWithContext(lines []string, changes []changeIn
|
||||
cyan := color.New(color.FgCyan)
|
||||
totalLines := len(lines)
|
||||
displayedLines := make(map[int]bool)
|
||||
changeByLine := make(map[int]changeInfo)
|
||||
for _, c := range changes {
|
||||
changeByLine[c.lineNum] = c
|
||||
}
|
||||
|
||||
for i, change := range changes {
|
||||
startLine := max(1, change.lineNum-contextLines)
|
||||
@@ -423,13 +427,13 @@ func (p *Processor) displayChangesWithContext(lines []string, changes []changeIn
|
||||
lineNumStr := gray.Sprintf("%4d", lineNum)
|
||||
line := lines[lineNum-1]
|
||||
|
||||
if lineNum == change.lineNum {
|
||||
switch change.changeType {
|
||||
if c, ok := changeByLine[lineNum]; ok {
|
||||
switch c.changeType {
|
||||
case "removed":
|
||||
fmt.Printf("%s %s %s\n", lineNumStr, red.Sprint("-"), red.Sprint(line))
|
||||
case "modified":
|
||||
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":
|
||||
fmt.Printf("%s %s %s\n", lineNumStr, cyan.Sprint("P"), line)
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user