diff --git a/idea/idea-new-project-wizard/src/org/jetbrains/kotlin/tools/projectWizard/wizard/ui/firstStep/FirstWizardStepComponent.kt b/idea/idea-new-project-wizard/src/org/jetbrains/kotlin/tools/projectWizard/wizard/ui/firstStep/FirstWizardStepComponent.kt index 4a9224f0ade..4b906471140 100644 --- a/idea/idea-new-project-wizard/src/org/jetbrains/kotlin/tools/projectWizard/wizard/ui/firstStep/FirstWizardStepComponent.kt +++ b/idea/idea-new-project-wizard/src/org/jetbrains/kotlin/tools/projectWizard/wizard/ui/firstStep/FirstWizardStepComponent.kt @@ -78,8 +78,11 @@ class ProjectSettingsComponent(ideWizard: IdeWizard) : DynamicComponent(ideWizar super.onValueUpdated(reference) when (reference?.path) { StructurePlugin::name.path -> { - tryUpdateLocationByProjectName() - tryArtifactIdByProjectName() + val isNameValid = read { StructurePlugin::name.reference.validate().isOk } + if (isNameValid) { + tryUpdateLocationByProjectName() + tryArtifactIdByProjectName() + } } StructurePlugin::artifactId.path -> { artifactIdWasUpdatedByHand = true diff --git a/libraries/tools/new-project-wizard/src/org/jetbrains/kotlin/tools/projectWizard/core/Context.kt b/libraries/tools/new-project-wizard/src/org/jetbrains/kotlin/tools/projectWizard/core/Context.kt index 541b5b66ddd..0083b7b7678 100644 --- a/libraries/tools/new-project-wizard/src/org/jetbrains/kotlin/tools/projectWizard/core/Context.kt +++ b/libraries/tools/new-project-wizard/src/org/jetbrains/kotlin/tools/projectWizard/core/Context.kt @@ -192,6 +192,9 @@ class Context private constructor( val > SettingReference.setting: Setting get() = with(this) { getSetting() } + fun > SettingReference.validate() = + setting.validator.validate(this@Reader, settingValue) + inline operator fun invoke(reader: Reader.() -> T): T = reader() }