mirror of
https://github.com/microsoft/vscode.git
synced 2026-04-22 17:48:56 +01:00
add runtime submenu support validation
This commit is contained in:
@@ -81,6 +81,14 @@ namespace schema {
|
||||
return false;
|
||||
}
|
||||
|
||||
export function supportsSubmenus(menuId: MenuId): boolean {
|
||||
switch (menuId) {
|
||||
case MenuId.EditorContext:
|
||||
return true;
|
||||
}
|
||||
return false;
|
||||
}
|
||||
|
||||
export function isMenuItem(item: IUserFriendlyMenuItem | IUserFriendlySubmenuItem): item is IUserFriendlyMenuItem {
|
||||
return typeof (item as IUserFriendlyMenuItem).command === 'string';
|
||||
}
|
||||
@@ -626,6 +634,8 @@ menusExtensionPoint.setHandler(extensions => {
|
||||
return;
|
||||
}
|
||||
|
||||
const submenuSupport = schema.supportsSubmenus(id);
|
||||
|
||||
for (const menuItem of entry.value) {
|
||||
let item: IMenuItem | ISubmenuItem;
|
||||
|
||||
@@ -651,6 +661,11 @@ menusExtensionPoint.setHandler(extensions => {
|
||||
continue;
|
||||
}
|
||||
|
||||
if (!submenuSupport) {
|
||||
collector.error(localize('proposedAPI.unsupported.submenureference', "Menu item references a submenu for a menu which doesn't have submenu support."));
|
||||
continue;
|
||||
}
|
||||
|
||||
const submenu = _submenus.get(menuItem.submenu);
|
||||
|
||||
if (!submenu) {
|
||||
|
||||
Reference in New Issue
Block a user