UNPKG

sussudio

Version:

An unofficial VS Code Internal API

83 lines (82 loc) 3.31 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 { IKeyboardEvent } from "../../keybinding/common/keybinding.mjs"; import { IKeyboardMapper } from "./keyboardMapper.mjs"; export declare const IKeyboardLayoutService: import("../../instantiation/common/instantiation.mjs").ServiceIdentifier<IKeyboardLayoutService>; export interface IWindowsKeyMapping { vkey: string; value: string; withShift: string; withAltGr: string; withShiftAltGr: string; } export interface IWindowsKeyboardMapping { [code: string]: IWindowsKeyMapping; } export interface ILinuxKeyMapping { value: string; withShift: string; withAltGr: string; withShiftAltGr: string; } export interface ILinuxKeyboardMapping { [code: string]: ILinuxKeyMapping; } export interface IMacKeyMapping { value: string; valueIsDeadKey: boolean; withShift: string; withShiftIsDeadKey: boolean; withAltGr: string; withAltGrIsDeadKey: boolean; withShiftAltGr: string; withShiftAltGrIsDeadKey: boolean; } export interface IMacKeyboardMapping { [code: string]: IMacKeyMapping; } export type IMacLinuxKeyMapping = IMacKeyMapping | ILinuxKeyMapping; export type IMacLinuxKeyboardMapping = IMacKeyboardMapping | ILinuxKeyboardMapping; export type IKeyboardMapping = IWindowsKeyboardMapping | ILinuxKeyboardMapping | IMacKeyboardMapping; export interface IWindowsKeyboardLayoutInfo { name: string; id: string; text: string; } export interface ILinuxKeyboardLayoutInfo { model: string; group: number; layout: string; variant: string; options: string; rules: string; } export interface IMacKeyboardLayoutInfo { id: string; lang: string; localizedName?: string; } export type IKeyboardLayoutInfo = (IWindowsKeyboardLayoutInfo | ILinuxKeyboardLayoutInfo | IMacKeyboardLayoutInfo) & { isUserKeyboardLayout?: boolean; isUSStandard?: true; }; export interface IKeyboardLayoutService { readonly _serviceBrand: undefined; readonly onDidChangeKeyboardLayout: Event<void>; getRawKeyboardMapping(): IKeyboardMapping | null; getCurrentKeyboardLayout(): IKeyboardLayoutInfo | null; getAllKeyboardLayouts(): IKeyboardLayoutInfo[]; getKeyboardMapper(): IKeyboardMapper; validateCurrentKeyboardMapping(keyboardEvent: IKeyboardEvent): void; } export declare function areKeyboardLayoutsEqual(a: IKeyboardLayoutInfo | null, b: IKeyboardLayoutInfo | null): boolean; export declare function parseKeyboardLayoutDescription(layout: IKeyboardLayoutInfo | null): { label: string; description: string; }; export declare function getKeyboardLayoutId(layout: IKeyboardLayoutInfo): string; export declare function windowsKeyboardMappingEquals(a: IWindowsKeyboardMapping | null, b: IWindowsKeyboardMapping | null): boolean; export declare function macLinuxKeyboardMappingEquals(a: IMacLinuxKeyboardMapping | null, b: IMacLinuxKeyboardMapping | null): boolean;