diff --git a/platform/lang-impl/src/com/intellij/execution/ExecutorRegistryImpl.java b/platform/lang-impl/src/com/intellij/execution/ExecutorRegistryImpl.java index d4e0c489d4a9..3b6fe3840ae3 100644 --- a/platform/lang-impl/src/com/intellij/execution/ExecutorRegistryImpl.java +++ b/platform/lang-impl/src/com/intellij/execution/ExecutorRegistryImpl.java @@ -33,13 +33,13 @@ import com.intellij.openapi.application.ApplicationManager; import com.intellij.openapi.components.ApplicationComponent; import com.intellij.openapi.diagnostic.Logger; import com.intellij.openapi.project.*; +import com.intellij.openapi.util.Pair; import com.intellij.openapi.util.Trinity; import com.intellij.util.IconUtil; import com.intellij.util.containers.ContainerUtil; import com.intellij.util.messages.MessageBusConnection; import gnu.trove.THashMap; import gnu.trove.THashSet; -import kotlin.Pair; import org.jetbrains.annotations.NonNls; import org.jetbrains.annotations.NotNull; import org.jetbrains.annotations.Nullable; diff --git a/platform/lang-impl/src/com/intellij/execution/compound/CompoundRunConfiguration.kt b/platform/lang-impl/src/com/intellij/execution/compound/CompoundRunConfiguration.kt index 45949daefa23..5fba8f45202c 100644 --- a/platform/lang-impl/src/com/intellij/execution/compound/CompoundRunConfiguration.kt +++ b/platform/lang-impl/src/com/intellij/execution/compound/CompoundRunConfiguration.kt @@ -13,6 +13,7 @@ import com.intellij.icons.AllIcons import com.intellij.openapi.application.ApplicationManager import com.intellij.openapi.options.SettingsEditor import com.intellij.openapi.project.Project +import com.intellij.openapi.util.Pair import gnu.trove.THashSet import org.jdom.Element import java.util.* @@ -111,23 +112,24 @@ class CompoundRunConfiguration(project: Project, type: CompoundRunConfigurationT return RunProfileState { _, _ -> ApplicationManager.getApplication().invokeLater { - getConfigurationsWithEffectiveRunTargets().forEach { (config, target) -> ExecutionUtil.runConfiguration(config, executor, target) } + getConfigurationsWithEffectiveRunTargets().forEach { pair: Pair -> ExecutionUtil.runConfiguration(pair.first, executor, pair.second) } } null } } - fun getConfigurationsWithEffectiveRunTargets() : List> { + fun getConfigurationsWithEffectiveRunTargets() : List> { val runManager = RunManagerImpl.getInstanceImpl(project) val activeTarget = ExecutionTargetManager.getActiveTarget(project) val defaultTarget = DefaultExecutionTarget.INSTANCE - return sortedConfigurationsWithTargets.mapNotNull { (configuration, specifiedTarget) -> + val transform: (Map.Entry) -> com.intellij.openapi.util.Pair< RunnerAndConfigurationSettings, ExecutionTarget>? = { (configuration, specifiedTarget) -> runManager.getSettings(configuration)?.let { val effectiveTarget = specifiedTarget ?: if (ExecutionTargetManager.canRun(it, activeTarget)) activeTarget else defaultTarget - it to effectiveTarget + return@let com.intellij.openapi.util.Pair.create(it ,effectiveTarget) } } + return sortedConfigurationsWithTargets.mapNotNull(transform) } override fun readExternal(element: Element) {