UNPKG

@sussudio/platform

Version:

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

68 lines (66 loc) 3.64 kB
/*--------------------------------------------------------------------------------------------- * Copyright (c) Microsoft Corporation. All rights reserved. * Licensed under the MIT License. See License.txt in the project root for license information. *--------------------------------------------------------------------------------------------*/ import { Emitter, Event } from '@sussudio/base/common/event.mjs'; import { ResolvedKeybinding, Keybinding } from '@sussudio/base/common/keybindings.mjs'; import { Disposable } from '@sussudio/base/common/lifecycle.mjs'; import { ICommandService } from '../../commands/common/commands.mjs'; import { IContextKeyService, IContextKeyServiceTarget } from '../../contextkey/common/contextkey.mjs'; import { IKeybindingService, IKeyboardEvent, KeybindingsSchemaContribution } from './keybinding.mjs'; import { IResolveResult, KeybindingResolver } from './keybindingResolver.mjs'; import { ResolvedKeybindingItem } from './resolvedKeybindingItem.mjs'; import { ILogService } from '../../log/common/log.mjs'; import { INotificationService } from '../../notification/common/notification.mjs'; import { ITelemetryService } from '../../telemetry/common/telemetry.mjs'; export declare abstract class AbstractKeybindingService extends Disposable implements IKeybindingService { private _contextKeyService; protected _commandService: ICommandService; protected _telemetryService: ITelemetryService; private _notificationService; protected _logService: ILogService; _serviceBrand: undefined; protected readonly _onDidUpdateKeybindings: Emitter<void>; get onDidUpdateKeybindings(): Event<void>; private _currentChord; private _currentChordChecker; private _currentChordStatusMessage; private _ignoreSingleModifiers; private _currentSingleModifier; private _currentSingleModifierClearTimeout; protected _logging: boolean; get inChordMode(): boolean; constructor( _contextKeyService: IContextKeyService, _commandService: ICommandService, _telemetryService: ITelemetryService, _notificationService: INotificationService, _logService: ILogService, ); dispose(): void; protected abstract _getResolver(): KeybindingResolver; protected abstract _documentHasFocus(): boolean; abstract resolveKeybinding(keybinding: Keybinding): ResolvedKeybinding[]; abstract resolveKeyboardEvent(keyboardEvent: IKeyboardEvent): ResolvedKeybinding; abstract resolveUserBinding(userBinding: string): ResolvedKeybinding[]; abstract registerSchemaContribution(contribution: KeybindingsSchemaContribution): void; abstract _dumpDebugInfo(): string; abstract _dumpDebugInfoJSON(): string; getDefaultKeybindingsContent(): string; toggleLogging(): boolean; protected _log(str: string): void; getDefaultKeybindings(): readonly ResolvedKeybindingItem[]; getKeybindings(): readonly ResolvedKeybindingItem[]; customKeybindingsCount(): number; lookupKeybindings(commandId: string): ResolvedKeybinding[]; lookupKeybinding(commandId: string, context?: IContextKeyService): ResolvedKeybinding | undefined; dispatchEvent(e: IKeyboardEvent, target: IContextKeyServiceTarget): boolean; softDispatch(e: IKeyboardEvent, target: IContextKeyServiceTarget): IResolveResult | null; private _enterMultiChordMode; private _leaveChordMode; dispatchByUserSettingsLabel(userSettingsLabel: string, target: IContextKeyServiceTarget): void; protected _dispatch(e: IKeyboardEvent, target: IContextKeyServiceTarget): boolean; protected _singleModifierDispatch(e: IKeyboardEvent, target: IContextKeyServiceTarget): boolean; private _doDispatch; mightProducePrintableCharacter(event: IKeyboardEvent): boolean; }