diff --git a/platform/lang-impl/src/com/intellij/execution/actions/ChooseRunConfigurationPopup.java b/platform/lang-impl/src/com/intellij/execution/actions/ChooseRunConfigurationPopup.java index a369cceeb6d7..55b0a55b2698 100644 --- a/platform/lang-impl/src/com/intellij/execution/actions/ChooseRunConfigurationPopup.java +++ b/platform/lang-impl/src/com/intellij/execution/actions/ChooseRunConfigurationPopup.java @@ -48,6 +48,7 @@ import java.awt.event.InputEvent; import java.awt.event.MouseEvent; import java.util.List; import java.util.*; +import java.util.stream.Collectors; public class ChooseRunConfigurationPopup implements ExecutorProvider { @@ -976,6 +977,15 @@ public class ChooseRunConfigurationPopup implements ExecutorProvider { return createSettingsList(RunManagerImpl.getInstanceImpl(project), executorProvider, isCreateEditAction, Registry.is("run.popup.move.folders.to.top", false)); } + public static List createFlatSettingsList(@NotNull Project project) { + return RunManagerImpl.getInstanceImpl(project).getConfigurationsGroupedByTypeAndFolder(false) + .values() + .stream() + .flatMap(map -> map.values().stream().flatMap(settings -> settings.stream())) + .map(settings -> ItemWrapper.wrap(project, settings)) + .collect(Collectors.toList()); + } + @TestOnly @NotNull public static List createSettingsList(@NotNull RunManagerImpl runManager, diff --git a/platform/lang-impl/src/com/intellij/ide/actions/SearchEverywhereAction.java b/platform/lang-impl/src/com/intellij/ide/actions/SearchEverywhereAction.java index 99ce3028e456..89b195ba9a7c 100644 --- a/platform/lang-impl/src/com/intellij/ide/actions/SearchEverywhereAction.java +++ b/platform/lang-impl/src/com/intellij/ide/actions/SearchEverywhereAction.java @@ -1574,9 +1574,7 @@ public class SearchEverywhereAction extends AnAction implements CustomComponentA @Nullable private ChooseRunConfigurationPopup.ItemWrapper getRunConfigurationByName(String name) { - final List wrappers = - ChooseRunConfigurationPopup.createSettingsList(project, () -> ExecutorRegistry.getInstance().getExecutorById(ToolWindowId.DEBUG), false); - + final List wrappers = ChooseRunConfigurationPopup.createFlatSettingsList(project); for (ChooseRunConfigurationPopup.ItemWrapper wrapper : wrappers) { if (wrapper.getText().equals(name)) { return wrapper; @@ -1606,8 +1604,7 @@ public class SearchEverywhereAction extends AnAction implements CustomComponentA return configurations; } final MinusculeMatcher matcher = NameUtil.buildMatcher(pattern).build(); - final List wrappers = - ChooseRunConfigurationPopup.createSettingsList(project, () -> ExecutorRegistry.getInstance().getExecutorById(ToolWindowId.DEBUG), false); + final List wrappers = ChooseRunConfigurationPopup.createFlatSettingsList(project); check(); for (ChooseRunConfigurationPopup.ItemWrapper wrapper : wrappers) { if (matcher.matches(wrapper.getText()) && !myListModel.contains(wrapper)) { diff --git a/platform/lang-impl/src/com/intellij/ide/actions/runAnything/RunAnythingRunConfigurationProvider.java b/platform/lang-impl/src/com/intellij/ide/actions/runAnything/RunAnythingRunConfigurationProvider.java index 3fc5e4faa3f9..3d31780f12d1 100644 --- a/platform/lang-impl/src/com/intellij/ide/actions/runAnything/RunAnythingRunConfigurationProvider.java +++ b/platform/lang-impl/src/com/intellij/ide/actions/runAnything/RunAnythingRunConfigurationProvider.java @@ -1,14 +1,10 @@ // Copyright 2000-2018 JetBrains s.r.o. Use of this source code is governed by the Apache 2.0 license that can be found in the LICENSE file. package com.intellij.ide.actions.runAnything; -import com.intellij.execution.Executor; -import com.intellij.execution.ExecutorRegistry; import com.intellij.execution.actions.ChooseRunConfigurationPopup; -import com.intellij.execution.actions.ExecutorProvider; import com.intellij.ide.IdeBundle; import com.intellij.openapi.actionSystem.DataContext; import com.intellij.openapi.project.Project; -import com.intellij.openapi.wm.ToolWindowId; import org.jetbrains.annotations.NotNull; import java.util.Collection; @@ -32,11 +28,6 @@ public class RunAnythingRunConfigurationProvider extends com.intellij.ide.action @NotNull private static List getWrappers(@NotNull DataContext dataContext) { Project project = fetchProject(dataContext); - return ChooseRunConfigurationPopup.createSettingsList(project, new ExecutorProvider() { - @Override - public Executor getExecutor() { - return ExecutorRegistry.getInstance().getExecutorById(ToolWindowId.RUN); - } - }, false); + return ChooseRunConfigurationPopup.createFlatSettingsList(project); } } \ No newline at end of file diff --git a/platform/lang-impl/src/com/intellij/ide/actions/searcheverywhere/RunConfigurationsSEContributor.java b/platform/lang-impl/src/com/intellij/ide/actions/searcheverywhere/RunConfigurationsSEContributor.java index 87ac2870a14d..776abc24d9d3 100644 --- a/platform/lang-impl/src/com/intellij/ide/actions/searcheverywhere/RunConfigurationsSEContributor.java +++ b/platform/lang-impl/src/com/intellij/ide/actions/searcheverywhere/RunConfigurationsSEContributor.java @@ -5,7 +5,6 @@ import com.intellij.execution.Executor; import com.intellij.execution.ExecutorRegistry; import com.intellij.execution.RunnerAndConfigurationSettings; import com.intellij.execution.actions.ChooseRunConfigurationPopup; -import com.intellij.execution.actions.ExecutorProvider; import com.intellij.execution.configurations.RunConfiguration; import com.intellij.execution.executors.DefaultRunExecutor; import com.intellij.execution.runners.ProgramRunner; @@ -128,15 +127,7 @@ public class RunConfigurationsSEContributor implements SearchEverywhereContribut pattern = filterString(pattern); MinusculeMatcher matcher = NameUtil.buildMatcher(pattern).build(); - List wrappers = - ChooseRunConfigurationPopup.createSettingsList(myProject, new ExecutorProvider() { - @Override - public Executor getExecutor() { - return ExecutorRegistry.getInstance().getExecutorById(ToolWindowId.DEBUG); - } - }, false); - - for (ChooseRunConfigurationPopup.ItemWrapper wrapper : wrappers) { + for (ChooseRunConfigurationPopup.ItemWrapper wrapper : ChooseRunConfigurationPopup.createFlatSettingsList(myProject)) { if (matcher.matches(wrapper.getText()) && !consumer.apply(wrapper)) { return; }