49 lines
1.6 KiB
TypeScript
49 lines
1.6 KiB
TypeScript
|
/*---------------------------------------------------------------------------------------------
|
||
|
* Copyright (c) Microsoft Corporation. All rights reserved.
|
||
|
* Licensed under the MIT License. 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;
|
||
|
}
|