diff --git a/platform/lang-api/src/com/intellij/execution/actions/RunConfigurationProducer.java b/platform/lang-api/src/com/intellij/execution/actions/RunConfigurationProducer.java index 155d80996184..04709b93b7f2 100644 --- a/platform/lang-api/src/com/intellij/execution/actions/RunConfigurationProducer.java +++ b/platform/lang-api/src/com/intellij/execution/actions/RunConfigurationProducer.java @@ -233,13 +233,11 @@ public abstract class RunConfigurationProducer { } @Nullable - public ConfigurationFromContext createLightConfiguration(@NotNull final ConfigurationContext context) { + public RunConfiguration createLightConfiguration(@NotNull final ConfigurationContext context) { RunConfiguration configuration = myConfigurationFactory.createTemplateConfiguration(context.getProject()); - RunnerAndConfigurationSettings settings = - RunManager.getInstance(context.getProject()).createConfiguration(configuration, myConfigurationFactory); if (!setupConfigurationFromContext((T)configuration, context, new Ref(context.getPsiLocation()))) { return null; } - return new ConfigurationFromContextImpl(this, settings, context.getPsiLocation()); + return configuration; } } diff --git a/platform/lang-impl/src/com/intellij/execution/lineMarker/RunLineMarkerInfo.java b/platform/lang-impl/src/com/intellij/execution/lineMarker/RunLineMarkerInfo.java index 094fc07019d5..a8d548959b41 100644 --- a/platform/lang-impl/src/com/intellij/execution/lineMarker/RunLineMarkerInfo.java +++ b/platform/lang-impl/src/com/intellij/execution/lineMarker/RunLineMarkerInfo.java @@ -21,11 +21,11 @@ import com.intellij.execution.Executor; import com.intellij.execution.ExecutorRegistry; import com.intellij.execution.Location; import com.intellij.execution.PsiLocation; -import com.intellij.execution.actions.BaseRunConfigurationAction; -import com.intellij.execution.actions.ConfigurationContext; -import com.intellij.execution.actions.ConfigurationFromContext; -import com.intellij.execution.actions.RunConfigurationProducer; +import com.intellij.execution.actions.*; import com.intellij.execution.configurations.LocatableConfiguration; +import com.intellij.execution.configurations.RunConfiguration; +import com.intellij.execution.impl.RunManagerImpl; +import com.intellij.execution.impl.RunnerAndConfigurationSettingsImpl; import com.intellij.openapi.actionSystem.*; import com.intellij.openapi.editor.markup.GutterIconRenderer; import com.intellij.openapi.util.UserDataHolderBase; @@ -154,7 +154,7 @@ public class RunLineMarkerInfo extends LineMarkerInfo { new Function, ConfigurationFromContext>() { @Override public ConfigurationFromContext fun(RunConfigurationProducer producer) { - return producer.createLightConfiguration(context); + return createConfiguration(producer, context); } } ); @@ -163,4 +163,12 @@ public class RunLineMarkerInfo extends LineMarkerInfo { String actionName = BaseRunConfigurationAction.suggestRunActionName((LocatableConfiguration)list.get(0).getConfiguration()); return executor.getStartActionText(actionName); } + + @Nullable + private ConfigurationFromContext createConfiguration(RunConfigurationProducer producer, ConfigurationContext context) { + RunConfiguration configuration = producer.createLightConfiguration(context); + if (configuration == null) return null; + RunnerAndConfigurationSettingsImpl settings = new RunnerAndConfigurationSettingsImpl(RunManagerImpl.getInstanceImpl(context.getProject()), configuration, false); + return new ConfigurationFromContextImpl(producer, settings, getElement()); + } }