@@ -14,6 +14,8 @@ import (
14
14
"strings"
15
15
"testing"
16
16
17
+ "golang.org/x/tools/internal/lsp/diff"
18
+ "golang.org/x/tools/internal/lsp/diff/difftest"
17
19
"golang.org/x/tools/internal/lsp/diff/myers"
18
20
)
19
21
@@ -26,6 +28,10 @@ const (
26
28
var verifyDiff = flag .Bool ("verify-diff" , false , "Check that the unified diff output matches `diff -u`" )
27
29
28
30
func TestDiff (t * testing.T ) {
31
+ difftest .DiffTest (t , myers .ComputeEdits )
32
+ }
33
+
34
+ func TestMyersDiff (t * testing.T ) {
29
35
for _ , test := range []struct {
30
36
a , b string
31
37
lines []* myers.Op
@@ -42,8 +48,8 @@ func TestDiff(t *testing.T) {
42
48
a : "A\n " ,
43
49
b : "B\n " ,
44
50
operations : []* myers.Op {
45
- & myers.Op {Kind : myers .Delete , I1 : 0 , I2 : 1 , J1 : 0 },
46
- & myers.Op {Kind : myers .Insert , Content : []string {"B\n " }, I1 : 1 , I2 : 1 , J1 : 0 },
51
+ & myers.Op {Kind : diff .Delete , I1 : 0 , I2 : 1 , J1 : 0 },
52
+ & myers.Op {Kind : diff .Insert , Content : []string {"B\n " }, I1 : 1 , I2 : 1 , J1 : 0 },
47
53
},
48
54
unified : `
49
55
@@ -1 +1 @@
@@ -53,8 +59,8 @@ func TestDiff(t *testing.T) {
53
59
a : "A" ,
54
60
b : "B" ,
55
61
operations : []* myers.Op {
56
- & myers.Op {Kind : myers .Delete , I1 : 0 , I2 : 1 , J1 : 0 },
57
- & myers.Op {Kind : myers .Insert , Content : []string {"B" }, I1 : 1 , I2 : 1 , J1 : 0 },
62
+ & myers.Op {Kind : diff .Delete , I1 : 0 , I2 : 1 , J1 : 0 },
63
+ & myers.Op {Kind : diff .Insert , Content : []string {"B" }, I1 : 1 , I2 : 1 , J1 : 0 },
58
64
},
59
65
unified : `
60
66
@@ -1 +1 @@
@@ -66,11 +72,11 @@ func TestDiff(t *testing.T) {
66
72
a : "A\n B\n C\n A\n B\n B\n A\n " ,
67
73
b : "C\n B\n A\n B\n A\n C\n " ,
68
74
operations : []* myers.Op {
69
- & myers.Op {Kind : myers .Delete , I1 : 0 , I2 : 1 , J1 : 0 },
70
- & myers.Op {Kind : myers .Delete , I1 : 1 , I2 : 2 , J1 : 0 },
71
- & myers.Op {Kind : myers .Insert , Content : []string {"B\n " }, I1 : 3 , I2 : 3 , J1 : 1 },
72
- & myers.Op {Kind : myers .Delete , I1 : 5 , I2 : 6 , J1 : 4 },
73
- & myers.Op {Kind : myers .Insert , Content : []string {"C\n " }, I1 : 7 , I2 : 7 , J1 : 5 },
75
+ & myers.Op {Kind : diff .Delete , I1 : 0 , I2 : 1 , J1 : 0 },
76
+ & myers.Op {Kind : diff .Delete , I1 : 1 , I2 : 2 , J1 : 0 },
77
+ & myers.Op {Kind : diff .Insert , Content : []string {"B\n " }, I1 : 3 , I2 : 3 , J1 : 1 },
78
+ & myers.Op {Kind : diff .Delete , I1 : 5 , I2 : 6 , J1 : 4 },
79
+ & myers.Op {Kind : diff .Insert , Content : []string {"C\n " }, I1 : 7 , I2 : 7 , J1 : 5 },
74
80
},
75
81
unified : `
76
82
@@ -1,7 +1,6 @@
@@ -90,9 +96,9 @@ func TestDiff(t *testing.T) {
90
96
a : "A\n B\n " ,
91
97
b : "A\n C\n \n " ,
92
98
operations : []* myers.Op {
93
- & myers.Op {Kind : myers .Delete , I1 : 1 , I2 : 2 , J1 : 1 },
94
- & myers.Op {Kind : myers .Insert , Content : []string {"C\n " }, I1 : 2 , I2 : 2 , J1 : 1 },
95
- & myers.Op {Kind : myers .Insert , Content : []string {"\n " }, I1 : 2 , I2 : 2 , J1 : 2 },
99
+ & myers.Op {Kind : diff .Delete , I1 : 1 , I2 : 2 , J1 : 1 },
100
+ & myers.Op {Kind : diff .Insert , Content : []string {"C\n " }, I1 : 2 , I2 : 2 , J1 : 1 },
101
+ & myers.Op {Kind : diff .Insert , Content : []string {"\n " }, I1 : 2 , I2 : 2 , J1 : 2 },
96
102
},
97
103
unified : `
98
104
@@ -1,2 +1,3 @@
0 commit comments