Detailed changes
@@ -132,21 +132,11 @@ func (dv *DiffView) String() string {
var b strings.Builder
for i, h := range dv.unified.Hunks {
- beforeShownLines, afterShownLines := dv.hunkShownLines(i)
-
if dv.lineNumbers {
b.WriteString(dv.style.DividerLine.LineNumber.Render(pad("ā¦", beforeNumDigits)))
b.WriteString(dv.style.DividerLine.LineNumber.Render(pad("ā¦", afterNumDigits)))
}
- b.WriteString(dv.style.DividerLine.Code.Width(codeWidth + leadingSymbolsSize).Render(
- fmt.Sprintf(
- " @@ -%d,%d +%d,%d @@",
- h.FromLine,
- beforeShownLines,
- h.ToLine,
- afterShownLines,
- ),
- ))
+ b.WriteString(dv.style.DividerLine.Code.Width(codeWidth + leadingSymbolsSize).Render(dv.hunkLineFor(i)))
b.WriteRune('\n')
beforeLine := h.FromLine
@@ -217,6 +207,19 @@ func (dv *DiffView) lineNumberDigits() (maxBefore, maxAfter int) {
return
}
+func (dv *DiffView) hunkLineFor(i int) string {
+ h := dv.unified.Hunks[i]
+ beforeShownLines, afterShownLines := dv.hunkShownLines(i)
+
+ return fmt.Sprintf(
+ " @@ -%d,%d +%d,%d @@ ",
+ h.FromLine,
+ beforeShownLines,
+ h.ToLine,
+ afterShownLines,
+ )
+}
+
// hunkShownLines calculates the number of lines shown in a hunk for both before
// and after versions.
func (dv *DiffView) hunkShownLines(i int) (before, after int) {
@@ -239,11 +242,13 @@ func (dv *DiffView) detectWidth() {
return
}
- for _, h := range dv.unified.Hunks {
+ for i, h := range dv.unified.Hunks {
+ shownLines := ansi.StringWidth(dv.hunkLineFor(i))
+
for _, l := range h.Lines {
lineWidth := ansi.StringWidth(strings.TrimSuffix(l.Content, "\n"))
lineWidth += leadingSymbolsSize
- dv.width = max(dv.width, lineWidth)
+ dv.width = max(dv.width, lineWidth, shownLines)
}
}
}
@@ -20,6 +20,12 @@ var TestMultipleHunksBefore string
//go:embed testdata/TestMultipleHunks.after
var TestMultipleHunksAfter string
+//go:embed testdata/TestNarrow.before
+var TestNarrowBefore string
+
+//go:embed testdata/TestNarrow.after
+var TestNarrowAfter string
+
func TestDefault(t *testing.T) {
dv := diffview.New().
Before("main.go", TestDefaultBefore).
@@ -85,3 +91,19 @@ func TestCustomContextLines(t *testing.T) {
golden.RequireEqual(t, []byte(dv.String()))
})
}
+
+func TestNarrow(t *testing.T) {
+ dv := diffview.New().
+ Before("text.txt", TestNarrowBefore).
+ After("text.txt", TestNarrowAfter)
+
+ t.Run("LightMode", func(t *testing.T) {
+ dv = dv.Style(diffview.DefaultLightStyle)
+ golden.RequireEqual(t, []byte(dv.String()))
+ })
+
+ t.Run("DarkMode", func(t *testing.T) {
+ dv = dv.Style(diffview.DefaultDarkStyle)
+ golden.RequireEqual(t, []byte(dv.String()))
+ })
+}
@@ -1,4 +1,4 @@
-[48;2;73;73;255mĀ [m[38;2;191;188;200;48;2;73;73;255m ā¦[m[48;2;73;73;255mĀ [m[48;2;73;73;255mĀ [m[38;2;191;188;200;48;2;73;73;255m ā¦[m[48;2;73;73;255mĀ [m[38;2;191;188;200;48;2;51;49;178m @@ -1,13 +1,15 @@[m[48;2;51;49;178m [m
+[48;2;73;73;255mĀ [m[38;2;191;188;200;48;2;73;73;255m ā¦[m[48;2;73;73;255mĀ [m[48;2;73;73;255mĀ [m[38;2;191;188;200;48;2;73;73;255m ā¦[m[48;2;73;73;255mĀ [m[38;2;191;188;200;48;2;51;49;178m @@ -1,13 +1,15 @@ [m[48;2;51;49;178m [m
[48;2;58;57;67mĀ [m[38;2;223;219;221;48;2;58;57;67m 1[m[48;2;58;57;67mĀ [m[48;2;58;57;67mĀ [m[38;2;223;219;221;48;2;58;57;67m 1[m[48;2;58;57;67mĀ [m[38;2;241;239;239;48;2;32;31;38m package main[m[48;2;32;31;38m [m
[48;2;58;57;67mĀ [m[38;2;223;219;221;48;2;58;57;67m 2[m[48;2;58;57;67mĀ [m[48;2;58;57;67mĀ [m[38;2;223;219;221;48;2;58;57;67m 2[m[48;2;58;57;67mĀ [m[38;2;241;239;239;48;2;32;31;38m [m[48;2;32;31;38m [m
[48;2;58;57;67mĀ [m[38;2;223;219;221;48;2;58;57;67m 3[m[48;2;58;57;67mĀ [m[48;2;58;57;67mĀ [m[38;2;223;219;221;48;2;58;57;67m 3[m[48;2;58;57;67mĀ [m[38;2;241;239;239;48;2;32;31;38m import ([m[48;2;32;31;38m [m
@@ -1,4 +1,4 @@
-[48;2;71;118;255mĀ [m[38;2;77;76;87;48;2;71;118;255m ā¦[m[48;2;71;118;255mĀ [m[48;2;71;118;255mĀ [m[38;2;77;76;87;48;2;71;118;255m ā¦[m[48;2;71;118;255mĀ [m[38;2;96;95;107;48;2;113;154;252m @@ -1,13 +1,15 @@[m[48;2;113;154;252m [m
+[48;2;71;118;255mĀ [m[38;2;77;76;87;48;2;71;118;255m ā¦[m[48;2;71;118;255mĀ [m[48;2;71;118;255mĀ [m[38;2;77;76;87;48;2;71;118;255m ā¦[m[48;2;71;118;255mĀ [m[38;2;96;95;107;48;2;113;154;252m @@ -1,13 +1,15 @@ [m[48;2;113;154;252m [m
[48;2;223;219;221mĀ [m[38;2;58;57;67;48;2;223;219;221m 1[m[48;2;223;219;221mĀ [m[48;2;223;219;221mĀ [m[38;2;58;57;67;48;2;223;219;221m 1[m[48;2;223;219;221mĀ [m[38;2;32;31;38;48;2;241;239;239m package main[m[48;2;241;239;239m [m
[48;2;223;219;221mĀ [m[38;2;58;57;67;48;2;223;219;221m 2[m[48;2;223;219;221mĀ [m[48;2;223;219;221mĀ [m[38;2;58;57;67;48;2;223;219;221m 2[m[48;2;223;219;221mĀ [m[38;2;32;31;38;48;2;241;239;239m [m[48;2;241;239;239m [m
[48;2;223;219;221mĀ [m[38;2;58;57;67;48;2;223;219;221m 3[m[48;2;223;219;221mĀ [m[48;2;223;219;221mĀ [m[38;2;58;57;67;48;2;223;219;221m 3[m[48;2;223;219;221mĀ [m[38;2;32;31;38;48;2;241;239;239m import ([m[48;2;241;239;239m [m
@@ -1,4 +1,4 @@
-[48;2;73;73;255mĀ [m[38;2;191;188;200;48;2;73;73;255m ā¦[m[48;2;73;73;255mĀ [m[48;2;73;73;255mĀ [m[38;2;191;188;200;48;2;73;73;255m ā¦[m[48;2;73;73;255mĀ [m[38;2;191;188;200;48;2;51;49;178m @@ -5,5 +5,6 @@[m[48;2;51;49;178m [m
+[48;2;73;73;255mĀ [m[38;2;191;188;200;48;2;73;73;255m ā¦[m[48;2;73;73;255mĀ [m[48;2;73;73;255mĀ [m[38;2;191;188;200;48;2;73;73;255m ā¦[m[48;2;73;73;255mĀ [m[38;2;191;188;200;48;2;51;49;178m @@ -5,5 +5,6 @@ [m[48;2;51;49;178m [m
[48;2;58;57;67mĀ [m[38;2;223;219;221;48;2;58;57;67m 5[m[48;2;58;57;67mĀ [m[48;2;58;57;67mĀ [m[38;2;223;219;221;48;2;58;57;67m 5[m[48;2;58;57;67mĀ [m[38;2;241;239;239;48;2;32;31;38m )[m[48;2;32;31;38m [m
[48;2;58;57;67mĀ [m[38;2;223;219;221;48;2;58;57;67m 6[m[48;2;58;57;67mĀ [m[48;2;58;57;67mĀ [m[38;2;223;219;221;48;2;58;57;67m 6[m[48;2;58;57;67mĀ [m[38;2;241;239;239;48;2;32;31;38m [m[48;2;32;31;38m [m
[48;2;58;57;67mĀ [m[38;2;223;219;221;48;2;58;57;67m 7[m[48;2;58;57;67mĀ [m[48;2;58;57;67mĀ [m[38;2;223;219;221;48;2;58;57;67m 7[m[48;2;58;57;67mĀ [m[38;2;241;239;239;48;2;32;31;38m func main() {[m[48;2;32;31;38m [m
@@ -1,4 +1,4 @@
-[48;2;71;118;255mĀ [m[38;2;77;76;87;48;2;71;118;255m ā¦[m[48;2;71;118;255mĀ [m[48;2;71;118;255mĀ [m[38;2;77;76;87;48;2;71;118;255m ā¦[m[48;2;71;118;255mĀ [m[38;2;96;95;107;48;2;113;154;252m @@ -5,5 +5,6 @@[m[48;2;113;154;252m [m
+[48;2;71;118;255mĀ [m[38;2;77;76;87;48;2;71;118;255m ā¦[m[48;2;71;118;255mĀ [m[48;2;71;118;255mĀ [m[38;2;77;76;87;48;2;71;118;255m ā¦[m[48;2;71;118;255mĀ [m[38;2;96;95;107;48;2;113;154;252m @@ -5,5 +5,6 @@ [m[48;2;113;154;252m [m
[48;2;223;219;221mĀ [m[38;2;58;57;67;48;2;223;219;221m 5[m[48;2;223;219;221mĀ [m[48;2;223;219;221mĀ [m[38;2;58;57;67;48;2;223;219;221m 5[m[48;2;223;219;221mĀ [m[38;2;32;31;38;48;2;241;239;239m )[m[48;2;241;239;239m [m
[48;2;223;219;221mĀ [m[38;2;58;57;67;48;2;223;219;221m 6[m[48;2;223;219;221mĀ [m[48;2;223;219;221mĀ [m[38;2;58;57;67;48;2;223;219;221m 6[m[48;2;223;219;221mĀ [m[38;2;32;31;38;48;2;241;239;239m [m[48;2;241;239;239m [m
[48;2;223;219;221mĀ [m[38;2;58;57;67;48;2;223;219;221m 7[m[48;2;223;219;221mĀ [m[48;2;223;219;221mĀ [m[38;2;58;57;67;48;2;223;219;221m 7[m[48;2;223;219;221mĀ [m[38;2;32;31;38;48;2;241;239;239m func main() {[m[48;2;241;239;239m [m
@@ -1,4 +1,4 @@
-[48;2;73;73;255mĀ [m[38;2;191;188;200;48;2;73;73;255m ā¦[m[48;2;73;73;255mĀ [m[48;2;73;73;255mĀ [m[38;2;191;188;200;48;2;73;73;255m ā¦[m[48;2;73;73;255mĀ [m[38;2;191;188;200;48;2;51;49;178m @@ -2,6 +2,7 @@[m[48;2;51;49;178m [m
+[48;2;73;73;255mĀ [m[38;2;191;188;200;48;2;73;73;255m ā¦[m[48;2;73;73;255mĀ [m[48;2;73;73;255mĀ [m[38;2;191;188;200;48;2;73;73;255m ā¦[m[48;2;73;73;255mĀ [m[38;2;191;188;200;48;2;51;49;178m @@ -2,6 +2,7 @@ [m[48;2;51;49;178m [m
[48;2;58;57;67mĀ [m[38;2;223;219;221;48;2;58;57;67m 2[m[48;2;58;57;67mĀ [m[48;2;58;57;67mĀ [m[38;2;223;219;221;48;2;58;57;67m 2[m[48;2;58;57;67mĀ [m[38;2;241;239;239;48;2;32;31;38m [m[48;2;32;31;38m [m
[48;2;58;57;67mĀ [m[38;2;223;219;221;48;2;58;57;67m 3[m[48;2;58;57;67mĀ [m[48;2;58;57;67mĀ [m[38;2;223;219;221;48;2;58;57;67m 3[m[48;2;58;57;67mĀ [m[38;2;241;239;239;48;2;32;31;38m import ([m[48;2;32;31;38m [m
[48;2;58;57;67mĀ [m[38;2;223;219;221;48;2;58;57;67m 4[m[48;2;58;57;67mĀ [m[48;2;58;57;67mĀ [m[38;2;223;219;221;48;2;58;57;67m 4[m[48;2;58;57;67mĀ [m[38;2;241;239;239;48;2;32;31;38m "fmt"[m[48;2;32;31;38m [m
@@ -6,7 +6,7 @@
[48;2;58;57;67mĀ [m[38;2;223;219;221;48;2;58;57;67m 5[m[48;2;58;57;67mĀ [m[48;2;58;57;67mĀ [m[38;2;223;219;221;48;2;58;57;67m 6[m[48;2;58;57;67mĀ [m[38;2;241;239;239;48;2;32;31;38m )[m[48;2;32;31;38m [m
[48;2;58;57;67mĀ [m[38;2;223;219;221;48;2;58;57;67m 6[m[48;2;58;57;67mĀ [m[48;2;58;57;67mĀ [m[38;2;223;219;221;48;2;58;57;67m 7[m[48;2;58;57;67mĀ [m[38;2;241;239;239;48;2;32;31;38m [m[48;2;32;31;38m [m
[48;2;58;57;67mĀ [m[38;2;223;219;221;48;2;58;57;67m 7[m[48;2;58;57;67mĀ [m[48;2;58;57;67mĀ [m[38;2;223;219;221;48;2;58;57;67m 8[m[48;2;58;57;67mĀ [m[38;2;241;239;239;48;2;32;31;38m func main() {[m[48;2;32;31;38m [m
-[48;2;73;73;255mĀ [m[38;2;191;188;200;48;2;73;73;255m ā¦[m[48;2;73;73;255mĀ [m[48;2;73;73;255mĀ [m[38;2;191;188;200;48;2;73;73;255m ā¦[m[48;2;73;73;255mĀ [m[38;2;191;188;200;48;2;51;49;178m @@ -9,5 +10,6 @@[m[48;2;51;49;178m [m
+[48;2;73;73;255mĀ [m[38;2;191;188;200;48;2;73;73;255m ā¦[m[48;2;73;73;255mĀ [m[48;2;73;73;255mĀ [m[38;2;191;188;200;48;2;73;73;255m ā¦[m[48;2;73;73;255mĀ [m[38;2;191;188;200;48;2;51;49;178m @@ -9,5 +10,6 @@ [m[48;2;51;49;178m [m
[48;2;58;57;67mĀ [m[38;2;223;219;221;48;2;58;57;67m 9[m[48;2;58;57;67mĀ [m[48;2;58;57;67mĀ [m[38;2;223;219;221;48;2;58;57;67m10[m[48;2;58;57;67mĀ [m[38;2;241;239;239;48;2;32;31;38m }[m[48;2;32;31;38m [m
[48;2;58;57;67mĀ [m[38;2;223;219;221;48;2;58;57;67m10[m[48;2;58;57;67mĀ [m[48;2;58;57;67mĀ [m[38;2;223;219;221;48;2;58;57;67m11[m[48;2;58;57;67mĀ [m[38;2;241;239;239;48;2;32;31;38m [m[48;2;32;31;38m [m
[48;2;58;57;67mĀ [m[38;2;223;219;221;48;2;58;57;67m11[m[48;2;58;57;67mĀ [m[48;2;58;57;67mĀ [m[38;2;223;219;221;48;2;58;57;67m12[m[48;2;58;57;67mĀ [m[38;2;241;239;239;48;2;32;31;38m func getContent() string {[m[48;2;32;31;38m [m
@@ -1,4 +1,4 @@
-[48;2;71;118;255mĀ [m[38;2;77;76;87;48;2;71;118;255m ā¦[m[48;2;71;118;255mĀ [m[48;2;71;118;255mĀ [m[38;2;77;76;87;48;2;71;118;255m ā¦[m[48;2;71;118;255mĀ [m[38;2;96;95;107;48;2;113;154;252m @@ -2,6 +2,7 @@[m[48;2;113;154;252m [m
+[48;2;71;118;255mĀ [m[38;2;77;76;87;48;2;71;118;255m ā¦[m[48;2;71;118;255mĀ [m[48;2;71;118;255mĀ [m[38;2;77;76;87;48;2;71;118;255m ā¦[m[48;2;71;118;255mĀ [m[38;2;96;95;107;48;2;113;154;252m @@ -2,6 +2,7 @@ [m[48;2;113;154;252m [m
[48;2;223;219;221mĀ [m[38;2;58;57;67;48;2;223;219;221m 2[m[48;2;223;219;221mĀ [m[48;2;223;219;221mĀ [m[38;2;58;57;67;48;2;223;219;221m 2[m[48;2;223;219;221mĀ [m[38;2;32;31;38;48;2;241;239;239m [m[48;2;241;239;239m [m
[48;2;223;219;221mĀ [m[38;2;58;57;67;48;2;223;219;221m 3[m[48;2;223;219;221mĀ [m[48;2;223;219;221mĀ [m[38;2;58;57;67;48;2;223;219;221m 3[m[48;2;223;219;221mĀ [m[38;2;32;31;38;48;2;241;239;239m import ([m[48;2;241;239;239m [m
[48;2;223;219;221mĀ [m[38;2;58;57;67;48;2;223;219;221m 4[m[48;2;223;219;221mĀ [m[48;2;223;219;221mĀ [m[38;2;58;57;67;48;2;223;219;221m 4[m[48;2;223;219;221mĀ [m[38;2;32;31;38;48;2;241;239;239m "fmt"[m[48;2;241;239;239m [m
@@ -6,7 +6,7 @@
[48;2;223;219;221mĀ [m[38;2;58;57;67;48;2;223;219;221m 5[m[48;2;223;219;221mĀ [m[48;2;223;219;221mĀ [m[38;2;58;57;67;48;2;223;219;221m 6[m[48;2;223;219;221mĀ [m[38;2;32;31;38;48;2;241;239;239m )[m[48;2;241;239;239m [m
[48;2;223;219;221mĀ [m[38;2;58;57;67;48;2;223;219;221m 6[m[48;2;223;219;221mĀ [m[48;2;223;219;221mĀ [m[38;2;58;57;67;48;2;223;219;221m 7[m[48;2;223;219;221mĀ [m[38;2;32;31;38;48;2;241;239;239m [m[48;2;241;239;239m [m
[48;2;223;219;221mĀ [m[38;2;58;57;67;48;2;223;219;221m 7[m[48;2;223;219;221mĀ [m[48;2;223;219;221mĀ [m[38;2;58;57;67;48;2;223;219;221m 8[m[48;2;223;219;221mĀ [m[38;2;32;31;38;48;2;241;239;239m func main() {[m[48;2;241;239;239m [m
-[48;2;71;118;255mĀ [m[38;2;77;76;87;48;2;71;118;255m ā¦[m[48;2;71;118;255mĀ [m[48;2;71;118;255mĀ [m[38;2;77;76;87;48;2;71;118;255m ā¦[m[48;2;71;118;255mĀ [m[38;2;96;95;107;48;2;113;154;252m @@ -9,5 +10,6 @@[m[48;2;113;154;252m [m
+[48;2;71;118;255mĀ [m[38;2;77;76;87;48;2;71;118;255m ā¦[m[48;2;71;118;255mĀ [m[48;2;71;118;255mĀ [m[38;2;77;76;87;48;2;71;118;255m ā¦[m[48;2;71;118;255mĀ [m[38;2;96;95;107;48;2;113;154;252m @@ -9,5 +10,6 @@ [m[48;2;113;154;252m [m
[48;2;223;219;221mĀ [m[38;2;58;57;67;48;2;223;219;221m 9[m[48;2;223;219;221mĀ [m[48;2;223;219;221mĀ [m[38;2;58;57;67;48;2;223;219;221m10[m[48;2;223;219;221mĀ [m[38;2;32;31;38;48;2;241;239;239m }[m[48;2;241;239;239m [m
[48;2;223;219;221mĀ [m[38;2;58;57;67;48;2;223;219;221m10[m[48;2;223;219;221mĀ [m[48;2;223;219;221mĀ [m[38;2;58;57;67;48;2;223;219;221m11[m[48;2;223;219;221mĀ [m[38;2;32;31;38;48;2;241;239;239m [m[48;2;241;239;239m [m
[48;2;223;219;221mĀ [m[38;2;58;57;67;48;2;223;219;221m11[m[48;2;223;219;221mĀ [m[48;2;223;219;221mĀ [m[38;2;58;57;67;48;2;223;219;221m12[m[48;2;223;219;221mĀ [m[38;2;32;31;38;48;2;241;239;239m func getContent() string {[m[48;2;241;239;239m [m
@@ -0,0 +1,3 @@
+d
+e
+f
@@ -0,0 +1,3 @@
+a
+b
+c
@@ -0,0 +1,7 @@
+[48;2;73;73;255mĀ [m[38;2;191;188;200;48;2;73;73;255mā¦[m[48;2;73;73;255mĀ [m[48;2;73;73;255mĀ [m[38;2;191;188;200;48;2;73;73;255mā¦[m[48;2;73;73;255mĀ [m[38;2;191;188;200;48;2;51;49;178m @@ -1,3 +1,3 @@ [m
+[48;2;51;41;41mĀ [m[38;2;255;56;139;48;2;51;41;41m1[m[48;2;51;41;41mĀ [m[48;2;51;41;41mĀ [m[38;2;255;56;139;48;2;51;41;41m [m[48;2;51;41;41mĀ [m[38;2;255;56;139;48;2;58;48;48m- [m[38;2;241;239;239;48;2;58;48;48ma[m[48;2;58;48;48m [m
+[48;2;51;41;41mĀ [m[38;2;255;56;139;48;2;51;41;41m2[m[48;2;51;41;41mĀ [m[48;2;51;41;41mĀ [m[38;2;255;56;139;48;2;51;41;41m [m[48;2;51;41;41mĀ [m[38;2;255;56;139;48;2;58;48;48m- [m[38;2;241;239;239;48;2;58;48;48mb[m[48;2;58;48;48m [m
+[48;2;51;41;41mĀ [m[38;2;255;56;139;48;2;51;41;41m3[m[48;2;51;41;41mĀ [m[48;2;51;41;41mĀ [m[38;2;255;56;139;48;2;51;41;41m [m[48;2;51;41;41mĀ [m[38;2;255;56;139;48;2;58;48;48m- [m[38;2;241;239;239;48;2;58;48;48mc[m[48;2;58;48;48m [m
+[48;2;41;50;41mĀ [m[38;2;10;220;217;48;2;41;50;41m [m[48;2;41;50;41mĀ [m[48;2;41;50;41mĀ [m[38;2;10;220;217;48;2;41;50;41m1[m[48;2;41;50;41mĀ [m[38;2;10;220;217;48;2;48;58;48m+ [m[38;2;241;239;239;48;2;48;58;48md[m[48;2;48;58;48m [m
+[48;2;41;50;41mĀ [m[38;2;10;220;217;48;2;41;50;41m [m[48;2;41;50;41mĀ [m[48;2;41;50;41mĀ [m[38;2;10;220;217;48;2;41;50;41m2[m[48;2;41;50;41mĀ [m[38;2;10;220;217;48;2;48;58;48m+ [m[38;2;241;239;239;48;2;48;58;48me[m[48;2;48;58;48m [m
+[48;2;41;50;41mĀ [m[38;2;10;220;217;48;2;41;50;41m [m[48;2;41;50;41mĀ [m[48;2;41;50;41mĀ [m[38;2;10;220;217;48;2;41;50;41m3[m[48;2;41;50;41mĀ [m[38;2;10;220;217;48;2;48;58;48m+ [m[38;2;241;239;239;48;2;48;58;48mf[m[48;2;48;58;48m [m
@@ -0,0 +1,7 @@
+[48;2;71;118;255mĀ [m[38;2;77;76;87;48;2;71;118;255mā¦[m[48;2;71;118;255mĀ [m[48;2;71;118;255mĀ [m[38;2;77;76;87;48;2;71;118;255mā¦[m[48;2;71;118;255mĀ [m[38;2;96;95;107;48;2;113;154;252m @@ -1,3 +1,3 @@ [m
+[48;2;255;205;210mĀ [m[38;2;255;56;139;48;2;255;205;210m1[m[48;2;255;205;210mĀ [m[48;2;255;205;210mĀ [m[38;2;255;56;139;48;2;255;205;210m [m[48;2;255;205;210mĀ [m[38;2;255;56;139;48;2;255;235;238m- [m[38;2;32;31;38;48;2;255;235;238ma[m[48;2;255;235;238m [m
+[48;2;255;205;210mĀ [m[38;2;255;56;139;48;2;255;205;210m2[m[48;2;255;205;210mĀ [m[48;2;255;205;210mĀ [m[38;2;255;56;139;48;2;255;205;210m [m[48;2;255;205;210mĀ [m[38;2;255;56;139;48;2;255;235;238m- [m[38;2;32;31;38;48;2;255;235;238mb[m[48;2;255;235;238m [m
+[48;2;255;205;210mĀ [m[38;2;255;56;139;48;2;255;205;210m3[m[48;2;255;205;210mĀ [m[48;2;255;205;210mĀ [m[38;2;255;56;139;48;2;255;205;210m [m[48;2;255;205;210mĀ [m[38;2;255;56;139;48;2;255;235;238m- [m[38;2;32;31;38;48;2;255;235;238mc[m[48;2;255;235;238m [m
+[48;2;200;230;201mĀ [m[38;2;10;220;217;48;2;200;230;201m [m[48;2;200;230;201mĀ [m[48;2;200;230;201mĀ [m[38;2;10;220;217;48;2;200;230;201m1[m[48;2;200;230;201mĀ [m[38;2;10;220;217;48;2;232;245;233m+ [m[38;2;32;31;38;48;2;232;245;233md[m[48;2;232;245;233m [m
+[48;2;200;230;201mĀ [m[38;2;10;220;217;48;2;200;230;201m [m[48;2;200;230;201mĀ [m[48;2;200;230;201mĀ [m[38;2;10;220;217;48;2;200;230;201m2[m[48;2;200;230;201mĀ [m[38;2;10;220;217;48;2;232;245;233m+ [m[38;2;32;31;38;48;2;232;245;233me[m[48;2;232;245;233m [m
+[48;2;200;230;201mĀ [m[38;2;10;220;217;48;2;200;230;201m [m[48;2;200;230;201mĀ [m[48;2;200;230;201mĀ [m[38;2;10;220;217;48;2;200;230;201m3[m[48;2;200;230;201mĀ [m[38;2;10;220;217;48;2;232;245;233m+ [m[38;2;32;31;38;48;2;232;245;233mf[m[48;2;232;245;233m [m
@@ -1,4 +1,4 @@
-[38;2;191;188;200;48;2;51;49;178m @@ -5,5 +5,6 @@[m[48;2;51;49;178m [m
+[38;2;191;188;200;48;2;51;49;178m @@ -5,5 +5,6 @@ [m[48;2;51;49;178m [m
[38;2;241;239;239;48;2;32;31;38m )[m[48;2;32;31;38m [m
[38;2;241;239;239;48;2;32;31;38m [m[48;2;32;31;38m [m
[38;2;241;239;239;48;2;32;31;38m func main() {[m[48;2;32;31;38m [m
@@ -1,4 +1,4 @@
-[38;2;96;95;107;48;2;113;154;252m @@ -5,5 +5,6 @@[m[48;2;113;154;252m [m
+[38;2;96;95;107;48;2;113;154;252m @@ -5,5 +5,6 @@ [m[48;2;113;154;252m [m
[38;2;32;31;38;48;2;241;239;239m )[m[48;2;241;239;239m [m
[38;2;32;31;38;48;2;241;239;239m [m[48;2;241;239;239m [m
[38;2;32;31;38;48;2;241;239;239m func main() {[m[48;2;241;239;239m [m