IDEA-199673 [Run config in the new SE] run config in a folder could not be found

This commit is contained in:
Mikhail Sokolov
2019-03-20 16:59:26 +03:00
parent 059d08dd95
commit 797998d2cf
4 changed files with 14 additions and 25 deletions
@@ -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<ItemWrapper> 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<ItemWrapper> createSettingsList(@NotNull RunManagerImpl runManager,
@@ -1574,9 +1574,7 @@ public class SearchEverywhereAction extends AnAction implements CustomComponentA
@Nullable
private ChooseRunConfigurationPopup.ItemWrapper getRunConfigurationByName(String name) {
final List<ChooseRunConfigurationPopup.ItemWrapper> wrappers =
ChooseRunConfigurationPopup.createSettingsList(project, () -> ExecutorRegistry.getInstance().getExecutorById(ToolWindowId.DEBUG), false);
final List<ChooseRunConfigurationPopup.ItemWrapper> 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<ChooseRunConfigurationPopup.ItemWrapper> wrappers =
ChooseRunConfigurationPopup.createSettingsList(project, () -> ExecutorRegistry.getInstance().getExecutorById(ToolWindowId.DEBUG), false);
final List<ChooseRunConfigurationPopup.ItemWrapper> wrappers = ChooseRunConfigurationPopup.createFlatSettingsList(project);
check();
for (ChooseRunConfigurationPopup.ItemWrapper wrapper : wrappers) {
if (matcher.matches(wrapper.getText()) && !myListModel.contains(wrapper)) {
@@ -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<ChooseRunConfigurationPopup.ItemWrapper> 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);
}
}
@@ -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<ChooseRunConfigurationPopup.ItemWrapper> 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;
}