Enhanced npm package for https://github.com/google/diff-lines-words, it supports to split text with lines or words.
npm install diff-lines-words
The first step is to create a new diff_lines_words
object. This object contains various properties which set the behaviour of the algorithms, as well as the following methods/functions:
An array of differences is computed which describe the transformation of text1 into text2. Each difference is an array (JavaScript, Lua) or tuple (Python) or Diff object (C++, C#, Objective C, Java). The first element specifies if it is an insertion (1), a deletion (-1) or an equality (0). The second element specifies the affected text.
diff_main("Good dog", "Bad dog") → [(-1, "Goo"), (1, "Ba"), (0, "d dog")]
Despite the large number of optimisations used in this function, diff can take a while to compute. The diff_match_patch.Diff_Timeout
property is available to set how many seconds any diff's exploration phase may take. The default value is 1.0. A value of 0 disables the timeout and lets diff run until completion. Should diff timeout, the return value will still be a valid difference, though probably non-optimal.
diff_lines("Bad dog.\n Good cat", "Bad dog.\n Bad cat") → [(-1, "Good cat"), (0, "Bad dog."), (1, "Bad cat")]
diff_words("Good dog", "Bad dog") → [(-1, "Good"), (0, "dog"), (1, "Bad")]
Please refer to Source.
import DiffLinesWords from 'diff-lines-words';
const dlw = new DiffLinesWords();
const diffs2 = dlw.diff_words("Good dog", "Bad dog");
const diffs1 = dlw.diff_lines("Bad dog.\n Good cat", "Bad dog.\n Bad cat");