@sussudio/platform
Version:
Internal APIs for VS Code's service injection the base services.
58 lines (56 loc) • 1.87 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 { URI } from '@sussudio/base/common/uri.mjs';
export interface ICommonMenubarService {
updateMenubar(windowId: number, menuData: IMenubarData): Promise<void>;
}
export interface IMenubarData {
menus: {
[id: string]: IMenubarMenu;
};
keybindings: {
[id: string]: IMenubarKeybinding;
};
}
export interface IMenubarMenu {
items: Array<MenubarMenuItem>;
}
export interface IMenubarKeybinding {
label: string;
userSettingsLabel?: string;
isNative?: boolean;
}
export interface IMenubarMenuItemAction {
id: string;
label: string;
checked?: boolean;
enabled?: boolean;
}
export interface IMenubarMenuRecentItemAction {
id: string;
label: string;
uri: URI;
remoteAuthority?: string;
enabled?: boolean;
}
export interface IMenubarMenuItemSubmenu {
id: string;
label: string;
submenu: IMenubarMenu;
}
export interface IMenubarMenuItemSeparator {
id: 'vscode.menubar.separator';
}
export type MenubarMenuItem =
| IMenubarMenuItemAction
| IMenubarMenuItemSubmenu
| IMenubarMenuItemSeparator
| IMenubarMenuRecentItemAction;
export declare function isMenubarMenuItemSubmenu(menuItem: MenubarMenuItem): menuItem is IMenubarMenuItemSubmenu;
export declare function isMenubarMenuItemSeparator(menuItem: MenubarMenuItem): menuItem is IMenubarMenuItemSeparator;
export declare function isMenubarMenuItemRecentAction(
menuItem: MenubarMenuItem,
): menuItem is IMenubarMenuRecentItemAction;
export declare function isMenubarMenuItemAction(menuItem: MenubarMenuItem): menuItem is IMenubarMenuItemAction;