diff --git a/idea/idea-new-project-wizard/src/org/jetbrains/kotlin/tools/projectWizard/wizard/NewProjectWizardModuleBuilder.kt b/idea/idea-new-project-wizard/src/org/jetbrains/kotlin/tools/projectWizard/wizard/NewProjectWizardModuleBuilder.kt index e6230b4ec0e..5c9df0e5e8a 100644 --- a/idea/idea-new-project-wizard/src/org/jetbrains/kotlin/tools/projectWizard/wizard/NewProjectWizardModuleBuilder.kt +++ b/idea/idea-new-project-wizard/src/org/jetbrains/kotlin/tools/projectWizard/wizard/NewProjectWizardModuleBuilder.kt @@ -32,6 +32,7 @@ import org.jetbrains.kotlin.tools.projectWizard.plugins.buildSystem.BuildSystemT import org.jetbrains.kotlin.tools.projectWizard.plugins.projectTemplates.ProjectTemplatesPlugin import org.jetbrains.kotlin.tools.projectWizard.wizard.service.IdeaServices import org.jetbrains.kotlin.tools.projectWizard.wizard.ui.PomWizardStepComponent +import org.jetbrains.kotlin.tools.projectWizard.wizard.ui.asHtml import org.jetbrains.kotlin.tools.projectWizard.wizard.ui.firstStep.FirstWizardStepComponent import org.jetbrains.kotlin.tools.projectWizard.wizard.ui.secondStep.SecondStepWizardComponent import org.jetbrains.kotlin.utils.addToStdlib.safeAs @@ -178,8 +179,7 @@ abstract class WizardStep(protected val wizard: IdeWizard, private val phase: Ge when (val result = with(wizard.valuesReadingContext) { with(wizard) { validate(setOf(phase)) } }) { is Success<*> -> true is Failure -> { - val messages = result.errors.joinToString(separator = "\n") { it.message } - throw ConfigurationException(messages, "Validation Error") + throw ConfigurationException(result.asHtml(), "Validation Error") } } } diff --git a/idea/idea-new-project-wizard/src/org/jetbrains/kotlin/tools/projectWizard/wizard/ui/ui.kt b/idea/idea-new-project-wizard/src/org/jetbrains/kotlin/tools/projectWizard/wizard/ui/ui.kt index 9d8b960c5b1..0431032c93d 100644 --- a/idea/idea-new-project-wizard/src/org/jetbrains/kotlin/tools/projectWizard/wizard/ui/ui.kt +++ b/idea/idea-new-project-wizard/src/org/jetbrains/kotlin/tools/projectWizard/wizard/ui/ui.kt @@ -12,6 +12,7 @@ import com.intellij.ui.components.JBLabel import com.intellij.ui.components.JBTextField import com.intellij.util.ui.UIUtil import org.jetbrains.kotlin.idea.KotlinIcons +import org.jetbrains.kotlin.tools.projectWizard.core.Failure import org.jetbrains.kotlin.tools.projectWizard.moduleConfigurators.ModuleConfigurator import org.jetbrains.kotlin.tools.projectWizard.moduleConfigurators.SimpleTargetConfigurator import org.jetbrains.kotlin.tools.projectWizard.moduleConfigurators.TargetConfigurator @@ -64,6 +65,14 @@ internal fun hyperlinkLabel( internal fun String.asHtml() = "$this" +fun Failure.asHtml() = when (errors.size) { + 0 -> "" + 1 -> errors.single().message + else -> { + val errorsList = errors.joinToString(separator = "") { "
  • ${it.message}
  • " } + "".asHtml() + } +} val DisplayableSettingItem.htmlText get() = (text + greyText?.let { " ($greyText)" }.orEmpty()).asHtml()