Skip to main content

menuStore

MS Code Extension API


MS Code Extension API / store/menuStore

store/menuStore

Interfaces

Defined in: store/menuStore.ts:67

Properties

options

options: MenuItem[]

Defined in: store/menuStore.ts:68


Defined in: store/menuStore.ts:10

Represents a dynamically resolvable node in the hierarchical context menu tree. Used by Context Menus, Sidebar Actions, and Activity Bar tools.

Properties

checked?

optional checked?: boolean

Defined in: store/menuStore.ts:20

If true, renders a checkmark next to the item.

children?

optional children?: MenuItem[]

Defined in: store/menuStore.ts:37

Nested sub-menu items.

data?

optional data?: any

Defined in: store/menuStore.ts:43

Custom payload to pass into the onClick handler.

description?

optional description?: string

Defined in: store/menuStore.ts:26

Additional sub-text or tooltip description.

disabled?

optional disabled?: boolean

Defined in: store/menuStore.ts:22

If true, the item appears grayed out and cannot be clicked.

flat?

optional flat?: number | boolean

Defined in: store/menuStore.ts:64

The Flat Unpack 🪄

  • true or 1: Unwraps all children and injects them directly into the parent menu level.
  • false: Strictly treats this item as a nested Submenu (folder).
  • undefined: Uses Auto-Hoist (If there's exactly 1 child, it auto-flattens; if >1, it packs into a submenu).
icon?

optional icon?: any

Defined in: store/menuStore.ts:18

Codicon name or custom SVG node to display next to the label.

id

id: string

Defined in: store/menuStore.ts:12

Unique identifier for the menu item.

label?

optional label?: string

Defined in: store/menuStore.ts:16

The text displayed to the user. Leave empty if acting as a headless flat container.

onClick?

optional onClick?: (data?) => void

Defined in: store/menuStore.ts:40

Execution callback. Receives optional bound data.

Parameters
data?

any

Returns

void

order?

optional order?: number

Defined in: store/menuStore.ts:50

Sorting weight. Lower numbers appear higher in the menu.

Default
0
shortcut?

optional shortcut?: string

Defined in: store/menuStore.ts:24

Keyboard shortcut text to display (e.g., 'Ctrl+Shift+P').

showOnlyWhenSubOptionAvailable?

optional showOnlyWhenSubOptionAvailable?: boolean

Defined in: store/menuStore.ts:34

If true, this item will hide itself if its children array is empty after resolution.

type?

optional type?: "item" | "separator"

Defined in: store/menuStore.ts:14

Defines if the item is a standard clickable 'item' or a visual 'separator'.

views?

optional views?: any[]

Defined in: store/menuStore.ts:56

Internal directive used by SidebarEngine to automatically inject togglers (Show/Hide) for sidebar collapsible sections.

when?

optional when?: string | boolean

Defined in: store/menuStore.ts:31

Context expression (e.g., 'workspacePath != null') or boolean. If evaluated to false, this item is completely removed from the DOM.


Defined in: store/menuStore.ts:71

Properties

closeMenu

closeMenu: () => void

Defined in: store/menuStore.ts:80

Returns

void

isOpen

isOpen: boolean

Defined in: store/menuStore.ts:72

items

items: MenuItem[]

Defined in: store/menuStore.ts:74

openMenu

openMenu: (menuId, x, y, defaultItems?) => void

Defined in: store/menuStore.ts:76

Parameters

string

x

number

y

number

defaultItems?

MenuItem[] | MenuGroup[]

Returns

void

openMenuDirect

openMenuDirect: (x, y, items) => void

Defined in: store/menuStore.ts:79

Parameters
x

number

y

number

items

MenuItem[]

Returns

void

position

position: object

Defined in: store/menuStore.ts:73

x

x: number

y

y: number

registeredMenus

registeredMenus: Record<string, MenuItem[]>

Defined in: store/menuStore.ts:83

Dynamic registry for injected menu contributions via extensions or plugins

registerMenuItem

registerMenuItem: (menuPath, item) => void

Defined in: store/menuStore.ts:84

Parameters

string

item

MenuItem

Returns

void

registerMenuItems

registerMenuItems: (menuPath, item) => void

Defined in: store/menuStore.ts:86

registerMenuItems takes array , and takes multiple menus options

Parameters

string

item

MenuItem | MenuItem[]

Returns

void

unregisterMenuItem

unregisterMenuItem: (menuPath, itemId) => void

Defined in: store/menuStore.ts:88

Parameters

string

itemId

string

Returns

void

unregisterMenuItems

unregisterMenuItems: (menuPath, itemIds) => void

Defined in: store/menuStore.ts:89

Parameters

string

itemIds

string[]

Returns

void

Variables

useMenuStore

const useMenuStore: UseBoundStore<StoreApi<MenuState>>

Defined in: store/menuStore.ts:92

Functions

getResolvedMenu()

getResolvedMenu(menuId, defaults?): MenuItem[]

Defined in: store/menuStore.ts:196

Parameters

string

defaults?

MenuItem[] | MenuGroup[]

Returns

MenuItem[]