mirror of
https://github.com/wassname/DefinitelyTyped.git
synced 2026-09-09 11:13:57 +08:00
Merge pull request #5234 from Asana/diff_match_patch
Added type def and test for diff-match-patch library
This commit is contained in:
@@ -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;
|
||||
});
|
||||
+39
@@ -0,0 +1,39 @@
|
||||
// Type definitions for diff-match-patch v1.0.0
|
||||
// Project: https://www.npmjs.com/package/diff-match-patch
|
||||
// Definitions by: Asana <https://asana.com>
|
||||
// Definitions: https://github.com/borisyankov/DefinitelyTyped
|
||||
|
||||
declare module "diff-match-patch" {
|
||||
type Diff = [number, string];
|
||||
|
||||
export class diff_match_patch {
|
||||
static new (): diff_match_patch;
|
||||
|
||||
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[];
|
||||
}
|
||||
|
||||
export var DIFF_DELETE: number;
|
||||
export var DIFF_INSERT: number;
|
||||
export var DIFF_EQUAL: number;
|
||||
}
|
||||
Reference in New Issue
Block a user