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)
|
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)
|
||||||
}
|
}
|
||||||
|
|||||||
Reference in New Issue
Block a user