Files
azuredatastudio/extensions/merge-conflict/src/interfaces.ts
Anthony Dresser 0b7e7ddbf9 Merge from vscode 8e0f348413f4f616c23a88ae30030efa85811973 (#6381)
* Merge from vscode 8e0f348413f4f616c23a88ae30030efa85811973

* disable strict null check
2019-07-15 22:35:46 -07:00

49 lines
1.6 KiB
TypeScript

/*---------------------------------------------------------------------------------------------
* Copyright (c) Microsoft Corporation. All rights reserved.
* Licensed under the Source EULA. See License.txt in the project root for license information.
*--------------------------------------------------------------------------------------------*/
import * as vscode from 'vscode';
export interface IMergeRegion {
name: string;
header: vscode.Range;
content: vscode.Range;
decoratorContent: vscode.Range;
}
export const enum CommitType {
Current,
Incoming,
Both
}
export interface IExtensionConfiguration {
enableCodeLens: boolean;
enableDecorations: boolean;
enableEditorOverview: boolean;
}
export interface IDocumentMergeConflict extends IDocumentMergeConflictDescriptor {
commitEdit(type: CommitType, editor: vscode.TextEditor, edit?: vscode.TextEditorEdit): Thenable<boolean>;
applyEdit(type: CommitType, document: vscode.TextDocument, edit: { replace(range: vscode.Range, newText: string): void; }): void;
}
export interface IDocumentMergeConflictDescriptor {
range: vscode.Range;
current: IMergeRegion;
incoming: IMergeRegion;
commonAncestors: IMergeRegion[];
splitter: vscode.Range;
}
export interface IDocumentMergeConflictTracker {
getConflicts(document: vscode.TextDocument): PromiseLike<IDocumentMergeConflict[]>;
isPending(document: vscode.TextDocument): boolean;
forget(document: vscode.TextDocument): void;
}
export interface IDocumentMergeConflictTrackerService {
createTracker(origin: string): IDocumentMergeConflictTracker;
forget(document: vscode.TextDocument): void;
}