Book a Demo!
CoCalc Logo Icon
StoreFeaturesDocsShareSupportNewsAboutPoliciesSign UpSign In
microsoft
GitHub Repository: microsoft/vscode
Path: blob/main/extensions/merge-conflict/src/interfaces.ts
3296 views
1
/*---------------------------------------------------------------------------------------------
2
* Copyright (c) Microsoft Corporation. All rights reserved.
3
* Licensed under the MIT License. See License.txt in the project root for license information.
4
*--------------------------------------------------------------------------------------------*/
5
import * as vscode from 'vscode';
6
7
export interface IMergeRegion {
8
name: string;
9
header: vscode.Range;
10
content: vscode.Range;
11
decoratorContent: vscode.Range;
12
}
13
14
export const enum CommitType {
15
Current,
16
Incoming,
17
Both
18
}
19
20
export interface IExtensionConfiguration {
21
enableCodeLens: boolean;
22
enableDecorations: boolean;
23
enableEditorOverview: boolean;
24
}
25
26
export interface IDocumentMergeConflict extends IDocumentMergeConflictDescriptor {
27
commitEdit(type: CommitType, editor: vscode.TextEditor, edit?: vscode.TextEditorEdit): Thenable<boolean>;
28
applyEdit(type: CommitType, document: vscode.TextDocument, edit: { replace(range: vscode.Range, newText: string): void }): void;
29
}
30
31
export interface IDocumentMergeConflictDescriptor {
32
range: vscode.Range;
33
current: IMergeRegion;
34
incoming: IMergeRegion;
35
commonAncestors: IMergeRegion[];
36
splitter: vscode.Range;
37
}
38
39
export interface IDocumentMergeConflictTracker {
40
getConflicts(document: vscode.TextDocument): PromiseLike<IDocumentMergeConflict[]>;
41
isPending(document: vscode.TextDocument): boolean;
42
forget(document: vscode.TextDocument): void;
43
}
44
45
export interface IDocumentMergeConflictTrackerService {
46
createTracker(origin: string): IDocumentMergeConflictTracker;
47
forget(document: vscode.TextDocument): void;
48
}
49
50