ListPopup (@NotNull DataContext context) { List<AnAction> appActions = new ArrayList<>(); List<AnAction> pluginActions = new ArrayList<>(); for (ActionProvider provider : ActionProvider.EP_NAME.getExtensionList()) { for (UpdateAction action : provider.getUpdateActions(context)) { Presentation presentation = action.getTemplatePresentation(); if (action.isIdeUpdate()) { presentation.setIcon(AllIcons.Ide.Notification.IdeUpdate); appActions.add(action); } else { presentation.setIcon(AllIcons.Ide.Notification.PluginUpdate); pluginActions.add(action); } action.markAsRead(); } } DefaultActionGroup group = new DefaultActionGroup(appActions); group.addAll(pluginActions); if (group.getChildrenCount() == 0) { resetActionIcon(); } AnAction updateGroup = ActionManager.getInstance().getAction("UpdateEntryPointGroup"); if (updateGroup != null) { group.add(updateGroup); } group.addSeparator(); for (AnAction child : getTemplateActions()) { if (child instanceof Separator) { group.add(child); } else { String text = child.getTemplateText(); if (text != null && !(text.endsWith("...") || text.endsWith("…")) && !(child instanceof NoDots)) { AnActionButton button = new AnActionButton.AnActionButtonWrapper(child.getTemplatePresentation(), child) { @Override public void updateButton(@NotNull AnActionEvent e) { getDelegate().update(e); e.getPresentation().setText(e.getPresentation().getText() + "…"); } }; button.setShortcut(child.getShortcutSet()); group.add(button); } else { group.add(child); } } } if (ExperimentalUI.isNewUI()) { int count = group.getChildrenCount(); for (ActionProvider provider : ActionProvider.EP_NAME.getExtensionList()) { for (AnAction action : provider.getLastActions(context)) { group.add(action); } } if (count != group.getChildrenCount()) { return new MyPopup(group, context); } } return JBPopupFactory.getInstance().createActionGroupPopup(null, group, context, JBPopupFactory.ActionSelectionAid.MNEMONICS, true); }