UNPKG

sussudio

Version:

An unofficial VS Code Internal API

76 lines (75 loc) 3.58 kB
/*--------------------------------------------------------------------------------------------- * Copyright (c) Microsoft Corporation. All rights reserved. * Licensed under the MIT License. See License.txt in the project root for license information. *--------------------------------------------------------------------------------------------*/ import { Event } from "../../../base/common/event.mjs"; import { IJSONSchema } from "../../../base/common/jsonSchema.mjs"; import { KeyCode } from "../../../base/common/keyCodes.mjs"; import { ResolvedKeybinding, Keybinding } from "../../../base/common/keybindings.mjs"; import { IContextKeyService, IContextKeyServiceTarget } from "../../contextkey/common/contextkey.mjs"; import { IResolveResult } from "./keybindingResolver.mjs"; import { ResolvedKeybindingItem } from "./resolvedKeybindingItem.mjs"; export interface IUserFriendlyKeybinding { key: string; command: string; args?: any; when?: string; } export interface IKeyboardEvent { readonly _standardKeyboardEventBrand: true; readonly ctrlKey: boolean; readonly shiftKey: boolean; readonly altKey: boolean; readonly metaKey: boolean; readonly altGraphKey: boolean; readonly keyCode: KeyCode; readonly code: string; } export interface KeybindingsSchemaContribution { readonly onDidChange?: Event<void>; getSchemaAdditions(): IJSONSchema[]; } export declare const IKeybindingService: import("../../instantiation/common/instantiation.mjs").ServiceIdentifier<IKeybindingService>; export interface IKeybindingService { readonly _serviceBrand: undefined; readonly inChordMode: boolean; onDidUpdateKeybindings: Event<void>; /** * Returns none, one or many (depending on keyboard layout)! */ resolveKeybinding(keybinding: Keybinding): ResolvedKeybinding[]; resolveKeyboardEvent(keyboardEvent: IKeyboardEvent): ResolvedKeybinding; resolveUserBinding(userBinding: string): ResolvedKeybinding[]; /** * Resolve and dispatch `keyboardEvent` and invoke the command. */ dispatchEvent(e: IKeyboardEvent, target: IContextKeyServiceTarget): boolean; /** * Resolve and dispatch `keyboardEvent`, but do not invoke the command or change inner state. */ softDispatch(keyboardEvent: IKeyboardEvent, target: IContextKeyServiceTarget): IResolveResult | null; dispatchByUserSettingsLabel(userSettingsLabel: string, target: IContextKeyServiceTarget): void; /** * Look up keybindings for a command. * Use `lookupKeybinding` if you are interested in the preferred keybinding. */ lookupKeybindings(commandId: string): ResolvedKeybinding[]; /** * Look up the preferred (last defined) keybinding for a command. * @returns The preferred keybinding or null if the command is not bound. */ lookupKeybinding(commandId: string, context?: IContextKeyService): ResolvedKeybinding | undefined; getDefaultKeybindingsContent(): string; getDefaultKeybindings(): readonly ResolvedKeybindingItem[]; getKeybindings(): readonly ResolvedKeybindingItem[]; customKeybindingsCount(): number; /** * Will the given key event produce a character that's rendered on screen, e.g. in a * text box. *Note* that the results of this function can be incorrect. */ mightProducePrintableCharacter(event: IKeyboardEvent): boolean; registerSchemaContribution(contribution: KeybindingsSchemaContribution): void; toggleLogging(): boolean; _dumpDebugInfo(): string; _dumpDebugInfoJSON(): string; }