UNPKG

@sussudio/platform

Version:

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

90 lines (88 loc) 3.19 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 '@sussudio/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;