computeWordDiff function
Compute a word-level diff between oldLine and newLine.
Implementation
List<WordDiff> computeWordDiff(String oldLine, String newLine) {
final oldTokens = _tokenizeWords(oldLine);
final newTokens = _tokenizeWords(newLine);
final ops = shortestEditScript(oldTokens, newTokens);
final result = <WordDiff>[];
var oi = 0, ni = 0;
for (final op in ops) {
switch (op) {
case EditOp.equal:
result.add(WordDiff(text: oldTokens[oi], type: DiffType.context));
oi++;
ni++;
case EditOp.delete:
result.add(WordDiff(text: oldTokens[oi], type: DiffType.remove));
oi++;
case EditOp.insert:
result.add(WordDiff(text: newTokens[ni], type: DiffType.add));
ni++;
}
}
return result;
}