diff --git a/libraries/tools/new-project-wizard/src/org/jetbrains/kotlin/tools/projectWizard/core/context/SettingsWritingContext.kt b/libraries/tools/new-project-wizard/src/org/jetbrains/kotlin/tools/projectWizard/core/context/SettingsWritingContext.kt index efab58a2285..d59f01780cc 100644 --- a/libraries/tools/new-project-wizard/src/org/jetbrains/kotlin/tools/projectWizard/core/context/SettingsWritingContext.kt +++ b/libraries/tools/new-project-wizard/src/org/jetbrains/kotlin/tools/projectWizard/core/context/SettingsWritingContext.kt @@ -21,4 +21,11 @@ open class SettingsWritingContext(context: Context, servicesManager: ServicesMan fun > SettingReference.setValue(newValue: V) { context.settingContext[this] = newValue } + + fun > SettingReference.setSettingValueToItsDefaultIfItIsNotSetValue() { + val defaultValue = savedOrDefaultValue ?: return + if (notRequiredSettingValue == null) { + setValue(defaultValue) + } + } } \ No newline at end of file diff --git a/libraries/tools/new-project-wizard/src/org/jetbrains/kotlin/tools/projectWizard/moduleConfigurators/ModuleConfigurator.kt b/libraries/tools/new-project-wizard/src/org/jetbrains/kotlin/tools/projectWizard/moduleConfigurators/ModuleConfigurator.kt index a0c8648c848..74c26054a40 100644 --- a/libraries/tools/new-project-wizard/src/org/jetbrains/kotlin/tools/projectWizard/moduleConfigurators/ModuleConfigurator.kt +++ b/libraries/tools/new-project-wizard/src/org/jetbrains/kotlin/tools/projectWizard/moduleConfigurators/ModuleConfigurator.kt @@ -169,11 +169,7 @@ interface ModuleConfiguratorWithSettings : ModuleConfigurator { fun SettingsWritingContext.initDefaultValuesFor(module: Module) { withSettingsOf(module) { getConfiguratorSettings().forEach { setting -> - val reference = setting.reference - val defaultValue = reference.savedOrDefaultValue ?: return@forEach - if (reference.notRequiredSettingValue == null) { - reference.setValue(defaultValue) - } + setting.reference.setSettingValueToItsDefaultIfItIsNotSetValue() } } } diff --git a/libraries/tools/new-project-wizard/src/org/jetbrains/kotlin/tools/projectWizard/templates/Template.kt b/libraries/tools/new-project-wizard/src/org/jetbrains/kotlin/tools/projectWizard/templates/Template.kt index a782f8f5e3b..3a02917198b 100644 --- a/libraries/tools/new-project-wizard/src/org/jetbrains/kotlin/tools/projectWizard/templates/Template.kt +++ b/libraries/tools/new-project-wizard/src/org/jetbrains/kotlin/tools/projectWizard/templates/Template.kt @@ -78,11 +78,7 @@ abstract class Template : SettingsOwner, EntitiesOwnerDescriptor { fun SettingsWritingContext.initDefaultValuesFor(module: Module) { withSettingsOf(module) { settings.forEach { setting -> - val reference = setting.reference - val defaultValue = reference.savedOrDefaultValue ?: return@forEach - if (reference.notRequiredSettingValue == null) { - reference.setValue(defaultValue) - } + setting.reference.setSettingValueToItsDefaultIfItIsNotSetValue() } } } diff --git a/libraries/tools/new-project-wizard/src/org/jetbrains/kotlin/tools/projectWizard/wizard/Wizard.kt b/libraries/tools/new-project-wizard/src/org/jetbrains/kotlin/tools/projectWizard/wizard/Wizard.kt index 3194a2785b5..717417fd830 100644 --- a/libraries/tools/new-project-wizard/src/org/jetbrains/kotlin/tools/projectWizard/wizard/Wizard.kt +++ b/libraries/tools/new-project-wizard/src/org/jetbrains/kotlin/tools/projectWizard/wizard/Wizard.kt @@ -40,10 +40,7 @@ abstract class Wizard(createPlugins: PluginsCreator, val servicesManager: Servic private fun initPluginDefaultValues() { with(settingsWritingContext) { for (setting in pluginSettings) { - if (setting.reference.notRequiredSettingValue == null) { - val defaultValue = setting.reference.savedOrDefaultValue ?: continue - setting.reference.setValue(defaultValue) - } + setting.reference.setSettingValueToItsDefaultIfItIsNotSetValue() } } }