api: expose vscode.computeDiff

This commit is contained in:
Joao Moreno
2017-02-16 17:07:59 +01:00
parent 3b835712c6
commit a440d6479e
3 changed files with 42 additions and 0 deletions

View File

@@ -0,0 +1,30 @@
/*---------------------------------------------------------------------------------------------
* Copyright (c) Microsoft Corporation. All rights reserved.
* Licensed under the MIT License. See License.txt in the project root for license information.
*--------------------------------------------------------------------------------------------*/
'use strict';
import * as vscode from 'vscode';
import { toThenable } from 'vs/base/common/async';
import { DiffComputer } from 'vs/editor/common/diff/diffComputer';
function getTextDocumentLines(document: vscode.TextDocument): string[] {
const result = [];
for (let i = 0; i < document.lineCount; i++) {
result.push(document.lineAt(i).text);
}
return result;
}
export function computeDiff(oneDocument: vscode.TextDocument, otherDocument: vscode.TextDocument): Thenable<vscode.LineChange[]> {
const oneLines = getTextDocumentLines(oneDocument);
const otherLines = getTextDocumentLines(otherDocument);
const computer = new DiffComputer(oneLines, otherLines, {
shouldPostProcessCharChanges: false,
shouldIgnoreTrimWhitespace: false, // options?
shouldConsiderTrimWhitespaceInEmptyCase: false
});
return toThenable(computer.computeDiff());
}