@sussudio/platform
Version:
Internal APIs for VS Code's service injection the base services.
71 lines (69 loc) • 3 kB
text/typescript
/*---------------------------------------------------------------------------------------------
* Copyright (c) Microsoft Corporation. All rights reserved.
* Licensed under the MIT License. See License.txt in the project root for license information.
*--------------------------------------------------------------------------------------------*/
import { IDisposable } from '@sussudio/base/common/lifecycle.mjs';
import { URI } from '@sussudio/base/common/uri.mjs';
import { IDialogService } from '../../dialogs/common/dialogs.mjs';
import { INotificationService } from '../../notification/common/notification.mjs';
import {
IPastFutureElements,
IUndoRedoElement,
IUndoRedoService,
ResourceEditStackSnapshot,
UndoRedoGroup,
UndoRedoSource,
UriComparisonKeyComputer,
} from './undoRedo.mjs';
export declare class UndoRedoService implements IUndoRedoService {
private readonly _dialogService;
private readonly _notificationService;
readonly _serviceBrand: undefined;
private readonly _editStacks;
private readonly _uriComparisonKeyComputers;
constructor(_dialogService: IDialogService, _notificationService: INotificationService);
registerUriComparisonKeyComputer(scheme: string, uriComparisonKeyComputer: UriComparisonKeyComputer): IDisposable;
getUriComparisonKey(resource: URI): string;
private _print;
pushElement(element: IUndoRedoElement, group?: UndoRedoGroup, source?: UndoRedoSource): void;
private _pushElement;
getLastElement(resource: URI): IUndoRedoElement | null;
private _splitPastWorkspaceElement;
private _splitFutureWorkspaceElement;
removeElements(resource: URI | string): void;
setElementsValidFlag(resource: URI, isValid: boolean, filter: (element: IUndoRedoElement) => boolean): void;
hasElements(resource: URI): boolean;
createSnapshot(resource: URI): ResourceEditStackSnapshot;
restoreSnapshot(snapshot: ResourceEditStackSnapshot): void;
getElements(resource: URI): IPastFutureElements;
private _findClosestUndoElementWithSource;
canUndo(resourceOrSource: URI | UndoRedoSource): boolean;
private _onError;
private _acquireLocks;
private _safeInvokeWithLocks;
private _invokeWorkspacePrepare;
private _invokeResourcePrepare;
private _getAffectedEditStacks;
private _tryToSplitAndUndo;
private _checkWorkspaceUndo;
private _workspaceUndo;
private _isPartOfUndoGroup;
private _confirmAndExecuteWorkspaceUndo;
private _resourceUndo;
private _findClosestUndoElementInGroup;
private _continueUndoInGroup;
undo(resourceOrSource: URI | UndoRedoSource): Promise<void> | void;
private _undo;
private _confirmAndContinueUndo;
private _findClosestRedoElementWithSource;
canRedo(resourceOrSource: URI | UndoRedoSource): boolean;
private _tryToSplitAndRedo;
private _checkWorkspaceRedo;
private _workspaceRedo;
private _executeWorkspaceRedo;
private _resourceRedo;
private _findClosestRedoElementInGroup;
private _continueRedoInGroup;
redo(resourceOrSource: URI | UndoRedoSource | string): Promise<void> | void;
private _redo;
}