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 a83de2238818..9e33fc86551d 100644 --- a/platform/lang-impl/src/com/intellij/execution/actions/ChooseRunConfigurationPopup.java +++ b/platform/lang-impl/src/com/intellij/execution/actions/ChooseRunConfigurationPopup.java @@ -873,24 +873,36 @@ public class ChooseRunConfigurationPopup implements ExecutorProvider { for (RunnerAndConfigurationSettings settings : myConfigurations) { steps.add(new ConfigurationActionsStep(project, action, settings, false)); } - return new FolderStep(myProject, myExecutorProvider, null, steps); + return new FolderStep(myProject, myExecutorProvider, null, steps, action); } } private static final class FolderStep extends BaseListPopupStep { private final Project myProject; + private final ChooseRunConfigurationPopup myPopup; private final ExecutorProvider myExecutorProvider; - private FolderStep(Project project, ExecutorProvider executorProvider, String folderName, List children - ) { + private FolderStep(Project project, ExecutorProvider executorProvider, String folderName, List children, + ChooseRunConfigurationPopup popup) { super(folderName, children, new ArrayList()); myProject = project; myExecutorProvider = executorProvider; + myPopup = popup; } @Override public PopupStep onChosen(final ConfigurationActionsStep selectedValue, boolean finalChoice) { if (finalChoice) { + if (myPopup.myEditConfiguration) { + final RunnerAndConfigurationSettings settings = selectedValue.getSettings(); + return doFinalStep(new Runnable() { + @Override + public void run() { + myPopup.editConfiguration(myProject, settings); + } + }); + } + return doFinalStep(new Runnable() { @Override public void run() {