summaryrefslogtreecommitdiffstats
path: root/text_diff_notes.md
blob: c4a183dead53384de0f19ab9d8a29b842154285d (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
Consider changing:

```
foo();
bar();
```

To:

```
if (true) {
  foo();
}
```

What we want:

```
+ if (true) {
   foo();
-  bar();
+ }
```

A longest-common-subsequence algorithm is wrong here. The longest
subsequence is five tokens:

```
( ) ( ) ;
```

which leads to:

```
+if+ (+true+) +{+
   +foo+();
    -bar-();
+}+
```

so we claim `foo` is added. We want the following *four* tokens to be
preserved:

```
foo ( ) ;
```

Proposed solution: advance on both sides, keep first match.