diff --git a/platform/lang-impl/src/com/intellij/execution/impl/RunConfigurable.kt b/platform/lang-impl/src/com/intellij/execution/impl/RunConfigurable.kt index a5cd8c116cba..775482b516e4 100644 --- a/platform/lang-impl/src/com/intellij/execution/impl/RunConfigurable.kt +++ b/platform/lang-impl/src/com/intellij/execution/impl/RunConfigurable.kt @@ -1000,7 +1000,7 @@ open class RunConfigurable @JvmOverloads constructor(private val project: Projec private fun showAddPopup(showApplicableTypesOnly: Boolean) { val allTypes = ConfigurationType.CONFIGURATION_TYPE_EP.extensionList val configurationTypes: MutableList = getTypesToShow(showApplicableTypesOnly, allTypes).toMutableList() - configurationTypes.sortWith(kotlin.Comparator { type1, type2 -> type1!!.displayName.compareTo(type2!!.displayName, ignoreCase = true) }) + configurationTypes.sortWith(kotlin.Comparator { type1, type2 -> compareTypesForUi(type1!!, type2!!) }) val hiddenCount = allTypes.size - configurationTypes.size if (hiddenCount > 0) { configurationTypes.add(null) diff --git a/platform/lang-impl/src/com/intellij/execution/impl/RunConfigurationListManagerHelper.kt b/platform/lang-impl/src/com/intellij/execution/impl/RunConfigurationListManagerHelper.kt index 4d0398654464..484ab8672a4e 100644 --- a/platform/lang-impl/src/com/intellij/execution/impl/RunConfigurationListManagerHelper.kt +++ b/platform/lang-impl/src/com/intellij/execution/impl/RunConfigurationListManagerHelper.kt @@ -3,6 +3,7 @@ package com.intellij.execution.impl import com.intellij.execution.RunnerAndConfigurationSettings import com.intellij.execution.compound.CompoundRunConfiguration +import com.intellij.execution.configurations.ConfigurationType import com.intellij.execution.configurations.RunConfiguration import com.intellij.openapi.util.text.NaturalComparator import com.intellij.util.containers.ContainerUtil @@ -94,7 +95,7 @@ internal class RunConfigurationListManagerHelper(val manager: RunManagerImpl) { val type1 = o1.type val type2 = o2.type if (type1 !== type2) { - return@Comparator NaturalComparator.INSTANCE.compare(type1.displayName, type2.displayName) + return@Comparator compareTypesForUi(type1, type2) } val temporary1 = o1.isTemporary @@ -244,3 +245,7 @@ internal inline fun Collection.forEachManaged(ha } } } + +internal fun compareTypesForUi(type1: ConfigurationType, type2: ConfigurationType): Int { + return NaturalComparator.INSTANCE.compare(type1.displayName, type2.displayName) +}