@sussudio/platform
Version:
Internal APIs for VS Code's service injection the base services.
68 lines (66 loc) • 3.64 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 { 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;
}