Wizard: prettify error messages
This commit is contained in:
+2
-2
@@ -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")
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
+9
@@ -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() = "<html><body>$this</body></html>"
|
||||
|
||||
fun Failure.asHtml() = when (errors.size) {
|
||||
0 -> ""
|
||||
1 -> errors.single().message
|
||||
else -> {
|
||||
val errorsList = errors.joinToString(separator = "") { "<li>${it.message}</li>" }
|
||||
"<ul>$errorsList</ul>".asHtml()
|
||||
}
|
||||
}
|
||||
|
||||
val DisplayableSettingItem.htmlText
|
||||
get() = (text + greyText?.let { " <i>($greyText)</i>" }.orEmpty()).asHtml()
|
||||
|
||||
Reference in New Issue
Block a user