import { URI, UriComponents } from '@vscode-alt/monaco-editor/esm/vs/base/common/uri'; import { ContextKeyExprType, ContextKeyExpr } from '../contextkey/contextkey'; export interface ILocalizedString { value: string; original: string; } export interface ICommandAction { id: string; title: string | ILocalizedString; category?: string | ILocalizedString; iconLocation?: { dark: URI; light?: URI; }; precondition?: ContextKeyExpr; toggled?: ContextKeyExpr; } export interface IMenuItem { command: ICommandAction; alt?: ICommandAction; when?: ContextKeyExpr; group?: 'navigation' | string; order?: number; } export interface ISubmenuItem { title: string | ILocalizedString; submenu: MenuId; when?: ContextKeyExpr; group?: 'navigation' | string; order?: number; } export function isMenutItem(item: IMenuItem | ISubmenuItem): item is IMenuItem { return (item as IMenuItem).command !== undefined; } export function isISubmenuItem(item: IMenuItem | ISubmenuItem): item is ISubmenuItem { return (item as ISubmenuItem).submenu !== undefined; } export const enum MenuId { CommandPalette, DebugBreakpointsContext, DebugCallStackContext, DebugConsoleContext, DebugVariablesContext, DebugWatchContext, DebugTooBar, EditorContext, EditorTitle, EditorTitleContext, EmptyEditorGroupContext, ExplorerContext, MenubarAppearanceMenu, MenubarDebugMenu, MenubarEditMenu, MenubarFileMenu, MenubarGoMenu, MenubarNewBreakpointMenu, MenubarPreferencesMenu, MenubarRecentMenu, MenubarSelectionMenu, MenubarSwitchEditorMenu, MenubarSwitchGroupMenu, MenubarTerminalMenu, MenubarViewMenu, OpenEditorContext, ProblemsPanelContext, SCMChangeContext, SCMResourceContext, SCMResourceGroupContext, SCMResourceControl, SCMTitle, SearchContext, StatusBarWindowIndicatorMenu, TouchBarContext, ViewItemContext, ViewTitle, CommentThreadTitle, CommentThreadActions, CommentTitle, CommentActions, } export interface IMenuActionOptions { args?: any; shouldForwardArgs?: boolean; }