/*--------------------------------------------------------------------------------------------- * Copyright (c) Microsoft Corporation. All rights reserved. * Licensed under the MIT License. See License.txt in the project root for license information. *--------------------------------------------------------------------------------------------*/ import { URI } from '../../../../vs/base/common/uri'; import { IRange } from '../../../../vs/editor/common/core/range'; import { ILineChange } from '../../../../vs/editor/common/editorCommon'; import { IInplaceReplaceSupportResult, TextEdit, } from '../../../../vs/editor/common/modes'; import { createDecorator } from '../../../../vs/platform/instantiation/common/instantiation'; export const ID_EDITOR_WORKER_SERVICE = 'editorWorkerService'; export const IEditorWorkerService = createDecorator( ID_EDITOR_WORKER_SERVICE ); export interface IDiffComputationResult { quitEarly: boolean; identical: boolean; changes: ILineChange[]; } export interface IEditorWorkerService { readonly _serviceBrand: undefined; canComputeDiff(original: URI, modified: URI): boolean; computeDiff( original: URI, modified: URI, ignoreTrimWhitespace: boolean, maxComputationTime: number ): Promise; computeMoreMinimalEdits( resource: URI, edits: TextEdit[] | null | undefined ): Promise; canComputeWordRanges(resource: URI): boolean; computeWordRanges( resource: URI, range: IRange ): Promise<{ [word: string]: IRange[] } | null>; canNavigateValueSet(resource: URI): boolean; navigateValueSet( resource: URI, range: IRange, up: boolean ): Promise; }