Path: blob/main/extensions/merge-conflict/src/interfaces.ts
3296 views
/*---------------------------------------------------------------------------------------------1* Copyright (c) Microsoft Corporation. All rights reserved.2* Licensed under the MIT License. See License.txt in the project root for license information.3*--------------------------------------------------------------------------------------------*/4import * as vscode from 'vscode';56export interface IMergeRegion {7name: string;8header: vscode.Range;9content: vscode.Range;10decoratorContent: vscode.Range;11}1213export const enum CommitType {14Current,15Incoming,16Both17}1819export interface IExtensionConfiguration {20enableCodeLens: boolean;21enableDecorations: boolean;22enableEditorOverview: boolean;23}2425export interface IDocumentMergeConflict extends IDocumentMergeConflictDescriptor {26commitEdit(type: CommitType, editor: vscode.TextEditor, edit?: vscode.TextEditorEdit): Thenable<boolean>;27applyEdit(type: CommitType, document: vscode.TextDocument, edit: { replace(range: vscode.Range, newText: string): void }): void;28}2930export interface IDocumentMergeConflictDescriptor {31range: vscode.Range;32current: IMergeRegion;33incoming: IMergeRegion;34commonAncestors: IMergeRegion[];35splitter: vscode.Range;36}3738export interface IDocumentMergeConflictTracker {39getConflicts(document: vscode.TextDocument): PromiseLike<IDocumentMergeConflict[]>;40isPending(document: vscode.TextDocument): boolean;41forget(document: vscode.TextDocument): void;42}4344export interface IDocumentMergeConflictTrackerService {45createTracker(origin: string): IDocumentMergeConflictTracker;46forget(document: vscode.TextDocument): void;47}484950