void (final AnActionButton button) { final Executor executor = DefaultRunExecutor.getRunExecutorInstance(); final List<ChooseRunConfigurationPopup.ItemWrapper<?>> wrappers = new ArrayList<>(); wrappers.add(createNewWrapper(button)); var allSettings = ChooseRunConfigurationPopup.createSettingsList(myProject, new ExecutorProvider() { @Override public Executor getExecutor() { return executor; } }, false); final Set<RunnerAndConfigurationSettings> existing = new HashSet<>(myModel.getAllConfigurations()); for (ChooseRunConfigurationPopup.ItemWrapper<?> setting : allSettings) { if (setting.getValue() instanceof RunnerAndConfigurationSettings settings) { if (!settings.isTemporary() && ProjectStartupRunnerKt.canBeRun(settings) && !existing.contains(settings)) { wrappers.add(setting); } } } final JBPopup popup = JBPopupFactory.getInstance() .createPopupChooserBuilder(wrappers) .setRenderer(SimpleListCellRenderer.create((label, value, index) -> { label.setIcon(value.getIcon()); label.setText(value.getText()); })) .setItemChosenCallback((at) -> { if (at.getValue() instanceof RunnerAndConfigurationSettings added) { addConfiguration(added); } else { at.perform(myProject, executor, button.getDataContext()); } }) .createPopup(); showPopup(button, popup); }