Added type def and test for diff-match-patch library

This commit is contained in:
Austen Talbot
2015-08-05 12:21:02 -07:00
parent 983126e131
commit 9522b37f7e
2 changed files with 78 additions and 0 deletions
@@ -0,0 +1,32 @@
///<reference path="./diff-match-patch.d.ts" />
import DiffMatchPatch = require("diff-match-patch");
var oldValue = "hello world, how are you?";
var newValue = "hello again world. how have you been?";
var diffEngine = new DiffMatchPatch.diff_match_patch();
var diffs = diffEngine.diff_main(oldValue, newValue);
diffEngine.diff_cleanupSemantic(diffs);
var changes = "";
var pattern = "";
diffs.forEach(function(diff) {
var operation = diff[0]; // Operation (insert, delete, equal)
var text = diff[1]; // Text of change
switch (operation) {
case DiffMatchPatch.DIFF_INSERT:
pattern += "I";
break;
case DiffMatchPatch.DIFF_DELETE:
pattern += "D";
break;
case DiffMatchPatch.DIFF_EQUAL:
pattern += "E";
break;
}
changes += text;
});
+46
View File
@@ -0,0 +1,46 @@
// Type definitions for diff-match-patch v1.0.0
// Project: https://www.npmjs.com/package/diff-match-patch
// Definitions by: Austen Talbot <https://github.com/austentalbot/>
// Definitions: https://github.com/borisyankov/DefinitelyTyped
declare module "diff-match-patch" {
interface Diff {
0: number;
1: string;
}
export class DiffMatchPatch {
Diff_Timeout: number;
Diff_EditCost: number;
Match_Threshold: number;
Match_Distance: number;
Patch_DeleteThreshold: number;
Patch_Margin: number;
Match_MaxBits: number;
diff_main(text1: string, text2: string, opt_checklines?: boolean, opt_deadline?: number): Diff[];
diff_commonPrefix(text1: string, text2: string): number;
diff_commonSuffix(text1: string, text2: string): number;
diff_cleanupSemantic(diffs: Diff[]): void;
diff_cleanupSemanticLossless(diffs: Diff[]): void;
diff_cleanupEfficiency(diffs: Diff[]): void;
diff_cleanupMerge(diffs: Diff[]): void;
diff_xIndex(diffs: Diff[], loc: number): number;
diff_prettyHtml(diffs: Diff[]): string;
diff_text1(diffs: Diff[]): string;
diff_text2(diffs: Diff[]): string;
diff_levenshtein(diffs: Diff[]): number;
diff_toDelta(diffs: Diff[]): string;
diff_fromDelta(text1: string, delta: string): Diff[];
new (): DiffMatchPatch;
}
export var DIFF_DELETE: number;
export var DIFF_INSERT: number;
export var DIFF_EQUAL: number;
export var diff_match_patch: {
new (): DiffMatchPatch;
};
}