Merge remote-tracking branch 'origin/master' into searchView/context/extensionPoints

This commit is contained in:
digeff
2020-11-10 12:58:25 -08:00
646 changed files with 25832 additions and 23631 deletions

View File

@@ -625,6 +625,7 @@ submenusExtensionPoint.setHandler(extensions => {
const _apiMenusByKey = new Map(Iterable.map(Iterable.from(apiMenus), menu => ([menu.key, menu])));
const _menuRegistrations = new DisposableStore();
const _submenuMenuItems = new Map<number /* menu id */, Set<number /* submenu id */>>();
const menusExtensionPoint = ExtensionsRegistry.registerExtensionPoint<{ [loc: string]: (schema.IUserFriendlyMenuItem | schema.IUserFriendlySubmenuItem)[] }>({
extensionPoint: 'menus',
@@ -636,6 +637,7 @@ menusExtensionPoint.setHandler(extensions => {
// remove all previous menu registrations
_menuRegistrations.clear();
_submenuMenuItems.clear();
const items: { id: MenuId, item: IMenuItem | ISubmenuItem }[] = [];
@@ -703,6 +705,20 @@ menusExtensionPoint.setHandler(extensions => {
continue;
}
let submenuRegistrations = _submenuMenuItems.get(menu.id.id);
if (!submenuRegistrations) {
submenuRegistrations = new Set();
_submenuMenuItems.set(menu.id.id, submenuRegistrations);
}
if (submenuRegistrations.has(submenu.id.id)) {
collector.warn(localize('submenuItem.duplicate', "The `{0}` submenu was already contributed to the `{1}` menu.", menuItem.submenu, entry.key));
continue;
}
submenuRegistrations.add(submenu.id.id);
item = { submenu: submenu.id, icon: submenu.icon, title: submenu.label, group: undefined, order: undefined, when: undefined };
}