UNPKG

@sussudio/platform

Version:

Internal APIs for VS Code's service injection the base services.

78 lines (76 loc) 3.41 kB
/*--------------------------------------------------------------------------------------------- * Copyright (c) Microsoft Corporation. All rights reserved. * Licensed under the MIT License. See License.txt in the project root for license information. *--------------------------------------------------------------------------------------------*/ import { CancellationToken } from '@sussudio/base/common/cancellation.mjs'; import { Disposable, DisposableStore, IDisposable } from '@sussudio/base/common/lifecycle.mjs'; import { ICommandService } from '../../commands/common/commands.mjs'; import { IConfigurationService } from '../../configuration/common/configuration.mjs'; import { IDialogService } from '../../dialogs/common/dialogs.mjs'; import { IInstantiationService } from '../../instantiation/common/instantiation.mjs'; import { IKeybindingService } from '../../keybinding/common/keybinding.mjs'; import { IPickerQuickAccessItem, IPickerQuickAccessProviderOptions, PickerQuickAccessProvider, } from './pickerQuickAccess.mjs'; import { IQuickPickSeparator } from '../common/quickInput.mjs'; import { IStorageService } from '../../storage/common/storage.mjs'; import { ITelemetryService } from '../../telemetry/common/telemetry.mjs'; export interface ICommandQuickPick extends IPickerQuickAccessItem { commandId: string; commandAlias?: string; } export interface ICommandsQuickAccessOptions extends IPickerQuickAccessProviderOptions<ICommandQuickPick> { showAlias: boolean; } export declare abstract class AbstractCommandsQuickAccessProvider extends PickerQuickAccessProvider<ICommandQuickPick> implements IDisposable { private readonly instantiationService; private readonly keybindingService; private readonly commandService; private readonly telemetryService; private readonly dialogService; static PREFIX: string; private static WORD_FILTER; private readonly commandsHistory; protected readonly options: ICommandsQuickAccessOptions; constructor( options: ICommandsQuickAccessOptions, instantiationService: IInstantiationService, keybindingService: IKeybindingService, commandService: ICommandService, telemetryService: ITelemetryService, dialogService: IDialogService, ); protected _getPicks( filter: string, _disposables: DisposableStore, token: CancellationToken, ): Promise<Array<ICommandQuickPick | IQuickPickSeparator>>; /** * Subclasses to provide the actual command entries. */ protected abstract getCommandPicks(token: CancellationToken): Promise<Array<ICommandQuickPick>>; } export declare class CommandsHistory extends Disposable { private readonly storageService; private readonly configurationService; static readonly DEFAULT_COMMANDS_HISTORY_LENGTH = 50; private static readonly PREF_KEY_CACHE; private static readonly PREF_KEY_COUNTER; private static cache; private static counter; private configuredCommandsHistoryLength; constructor(storageService: IStorageService, configurationService: IConfigurationService); private registerListeners; private updateConfiguration; private load; push(commandId: string): void; peek(commandId: string): number | undefined; static saveState(storageService: IStorageService): void; static getConfiguredCommandHistoryLength(configurationService: IConfigurationService): number; static clearHistory(configurationService: IConfigurationService, storageService: IStorageService): void; }