| Index: Source/devtools/front_end/diff/Diff.js
|
| diff --git a/Source/devtools/front_end/diff/Diff.js b/Source/devtools/front_end/diff/Diff.js
|
| new file mode 100644
|
| index 0000000000000000000000000000000000000000..9b844ad8b435192c4b3f78e686c85cf416e10328
|
| --- /dev/null
|
| +++ b/Source/devtools/front_end/diff/Diff.js
|
| @@ -0,0 +1,56 @@
|
| +// Copyright 2015 The Chromium Authors. All rights reserved.
|
| +// Use of this source code is governed by a BSD-style license that can be
|
| +// found in the LICENSE file.
|
| +
|
| +WebInspector.Diff = {
|
| + /**
|
| + * @param {string} text1
|
| + * @param {string} text2
|
| + * @return {!Array.<!{0: number, 1: string}>}
|
| + */
|
| + charDiff: function(text1, text2)
|
| + {
|
| + var differ = new diff_match_patch();
|
| + return differ.diff_main(text1, text2);
|
| + },
|
| +
|
| + /**
|
| + * @param {!Array.<string>} lines1
|
| + * @param {!Array.<string>} lines2
|
| + * @return {!Array.<!{0: number, 1: string}>}
|
| + */
|
| + lineDiff: function(lines1, lines2)
|
| + {
|
| + var lineToChar = new Map();
|
| + var charCode = 33;
|
| + var text1 = encode(lines1);
|
| + var text2 = encode(lines2);
|
| +
|
| + return WebInspector.Diff.charDiff(text1, text2);
|
| +
|
| + /**
|
| + * @param {!Array.<string>} lines
|
| + * @return {string}
|
| + */
|
| + function encode(lines)
|
| + {
|
| + var text = "";
|
| + for (var i = 0; i < lines.length; ++i) {
|
| + var line = lines[i];
|
| + var character = lineToChar.get(line);
|
| + if (!character) {
|
| + character = String.fromCharCode(charCode++);
|
| + lineToChar.set(line, character);
|
| + }
|
| + text += character;
|
| + }
|
| + return text;
|
| + }
|
| + },
|
| +}
|
| +
|
| +WebInspector.Diff.Operation = {
|
| + Equal: 0,
|
| + Insert: 1,
|
| + Delete: -1
|
| +}
|
|
|