func printChange(c gompatible.Change, doDiff bool) { show := func(mark changeMark, s string) { lines := strings.Split(s, "\n") for i := range lines { if i == 0 { ct.ChangeColor(mark.color, false, ct.None, false) fmt.Print(string(mark.mark[:])) ct.ResetColor() fmt.Println(lines[i]) } else { fmt.Println(" ", lines[i]) } } } switch c.Kind() { case gompatible.ChangeAdded: show(markAdded, c.ShowAfter()) case gompatible.ChangeRemoved: show(markRemoved, c.ShowBefore()) case gompatible.ChangeUnchanged: show(markUnchanged, c.ShowBefore()) case gompatible.ChangeCompatible: showCompare(markCompatible, c, show, doDiff) case gompatible.ChangeBreaking: showCompare(markBreaking, c, show, doDiff) } }