diff --git a/idea/idea-new-project-wizard/src/org/jetbrains/kotlin/tools/projectWizard/wizard/service/IdeaRunConfigurationsService.kt b/idea/idea-new-project-wizard/src/org/jetbrains/kotlin/tools/projectWizard/wizard/service/IdeaRunConfigurationsService.kt index 4cb73e70360..064cec3b460 100644 --- a/idea/idea-new-project-wizard/src/org/jetbrains/kotlin/tools/projectWizard/wizard/service/IdeaRunConfigurationsService.kt +++ b/idea/idea-new-project-wizard/src/org/jetbrains/kotlin/tools/projectWizard/wizard/service/IdeaRunConfigurationsService.kt @@ -10,14 +10,14 @@ import com.intellij.openapi.externalSystem.service.execution.ExternalSystemRunCo import com.intellij.openapi.project.Project import org.jetbrains.kotlin.tools.projectWizard.WizardGradleRunConfiguration import org.jetbrains.kotlin.tools.projectWizard.WizardRunConfiguration -import org.jetbrains.kotlin.tools.projectWizard.core.ValuesReadingContext +import org.jetbrains.kotlin.tools.projectWizard.core.ReadingContext import org.jetbrains.kotlin.tools.projectWizard.core.service.RunConfigurationsService import org.jetbrains.kotlin.tools.projectWizard.core.service.isBuildSystemAvailable import org.jetbrains.kotlin.tools.projectWizard.plugins.buildSystem.BuildSystemType import org.jetbrains.plugins.gradle.service.execution.GradleExternalTaskConfigurationType class IdeaRunConfigurationsService(private val project: Project) : RunConfigurationsService, IdeaWizardService { - override fun ValuesReadingContext.addRunConfigurations(configurations: List) { + override fun ReadingContext.addRunConfigurations(configurations: List) { configurations.forEach { wizardConfiguration -> if (wizardConfiguration is WizardGradleRunConfiguration && isBuildSystemAvailable(BuildSystemType.GradleKotlinDsl)) { addGradleRunConfiguration(wizardConfiguration) diff --git a/idea/idea-new-project-wizard/src/org/jetbrains/kotlin/tools/projectWizard/wizard/ui/Component.kt b/idea/idea-new-project-wizard/src/org/jetbrains/kotlin/tools/projectWizard/wizard/ui/Component.kt index 1c8bf8d18d1..e62f1ac57ec 100644 --- a/idea/idea-new-project-wizard/src/org/jetbrains/kotlin/tools/projectWizard/wizard/ui/Component.kt +++ b/idea/idea-new-project-wizard/src/org/jetbrains/kotlin/tools/projectWizard/wizard/ui/Component.kt @@ -1,6 +1,6 @@ package org.jetbrains.kotlin.tools.projectWizard.wizard.ui -import org.jetbrains.kotlin.tools.projectWizard.core.ValuesReadingContext +import org.jetbrains.kotlin.tools.projectWizard.core.ReadingContext import org.jetbrains.kotlin.tools.projectWizard.core.entity.* abstract class Component : Displayable { @@ -15,11 +15,11 @@ abstract class Component : Displayable { } } -abstract class DynamicComponent(private val valuesReadingContext: ValuesReadingContext) : Component() { +abstract class DynamicComponent(private val readingContext: ReadingContext) : Component() { //TODO do not use it in future - protected val context = valuesReadingContext.context + protected val context = readingContext.context protected val eventManager - get() = valuesReadingContext.context.eventManager + get() = readingContext.context.eventManager private var isInitialized: Boolean = false @@ -29,7 +29,7 @@ abstract class DynamicComponent(private val valuesReadingContext: ValuesReadingC } var > SettingReference.value: V? - get() = with(valuesReadingContext) { notRequiredSettingValue() } + get() = with(readingContext) { notRequiredSettingValue() } set(value) { with(context) { settingContext[this@value] = value!! } } @@ -38,13 +38,13 @@ abstract class DynamicComponent(private val valuesReadingContext: ValuesReadingC get() = reference.value init { - valuesReadingContext.context.eventManager.addSettingUpdaterEventListener { reference -> + readingContext.context.eventManager.addSettingUpdaterEventListener { reference -> if (isInitialized) onValueUpdated(reference) } } - protected fun read(reader: ValuesReadingContext.() -> T): T = - reader(valuesReadingContext) + protected fun read(reader: ReadingContext.() -> T): T = + reader(readingContext) open fun onValueUpdated(reference: SettingReference<*, *>?) {} } diff --git a/idea/idea-new-project-wizard/src/org/jetbrains/kotlin/tools/projectWizard/wizard/ui/PomWizardStepComponent.kt b/idea/idea-new-project-wizard/src/org/jetbrains/kotlin/tools/projectWizard/wizard/ui/PomWizardStepComponent.kt index 7e56d5fcc06..df3df06d4d1 100644 --- a/idea/idea-new-project-wizard/src/org/jetbrains/kotlin/tools/projectWizard/wizard/ui/PomWizardStepComponent.kt +++ b/idea/idea-new-project-wizard/src/org/jetbrains/kotlin/tools/projectWizard/wizard/ui/PomWizardStepComponent.kt @@ -1,7 +1,7 @@ package org.jetbrains.kotlin.tools.projectWizard.wizard.ui import com.intellij.ui.components.panels.VerticalLayout -import org.jetbrains.kotlin.tools.projectWizard.core.ValuesReadingContext +import org.jetbrains.kotlin.tools.projectWizard.core.ReadingContext import org.jetbrains.kotlin.tools.projectWizard.core.entity.reference import org.jetbrains.kotlin.tools.projectWizard.plugins.StructurePlugin import org.jetbrains.kotlin.tools.projectWizard.wizard.ui.setting.StringSettingComponent @@ -9,22 +9,22 @@ import javax.swing.Box import javax.swing.JSeparator import javax.swing.SwingConstants -class PomWizardStepComponent(valuesReadingContext: ValuesReadingContext) : WizardStepComponent(valuesReadingContext) { +class PomWizardStepComponent(readingContext: ReadingContext) : WizardStepComponent(readingContext) { private val groupIdComponent = StringSettingComponent( StructurePlugin::groupId.reference, - valuesReadingContext, + readingContext, showLabel = true ).asSubComponent() private val artifactIdComponent = StringSettingComponent( StructurePlugin::artifactId.reference, - valuesReadingContext, + readingContext, showLabel = true ).asSubComponent() private val versionComponent = StringSettingComponent( StructurePlugin::version.reference, - valuesReadingContext, + readingContext, showLabel = true ).asSubComponent() diff --git a/idea/idea-new-project-wizard/src/org/jetbrains/kotlin/tools/projectWizard/wizard/ui/SubStep.kt b/idea/idea-new-project-wizard/src/org/jetbrains/kotlin/tools/projectWizard/wizard/ui/SubStep.kt index 5b457f9ca61..407d98f9695 100644 --- a/idea/idea-new-project-wizard/src/org/jetbrains/kotlin/tools/projectWizard/wizard/ui/SubStep.kt +++ b/idea/idea-new-project-wizard/src/org/jetbrains/kotlin/tools/projectWizard/wizard/ui/SubStep.kt @@ -1,12 +1,12 @@ package org.jetbrains.kotlin.tools.projectWizard.wizard.ui -import org.jetbrains.kotlin.tools.projectWizard.core.ValuesReadingContext +import org.jetbrains.kotlin.tools.projectWizard.core.ReadingContext import java.awt.BorderLayout import javax.swing.JComponent abstract class SubStep( - val valuesReadingContext: ValuesReadingContext -) : DynamicComponent(valuesReadingContext) { + val readingContext: ReadingContext +) : DynamicComponent(readingContext) { protected abstract fun buildContent(): JComponent final override val component: JComponent by lazy(LazyThreadSafetyMode.NONE) { diff --git a/idea/idea-new-project-wizard/src/org/jetbrains/kotlin/tools/projectWizard/wizard/ui/WizardStepComponent.kt b/idea/idea-new-project-wizard/src/org/jetbrains/kotlin/tools/projectWizard/wizard/ui/WizardStepComponent.kt index afbaff44bde..ca88842bf14 100644 --- a/idea/idea-new-project-wizard/src/org/jetbrains/kotlin/tools/projectWizard/wizard/ui/WizardStepComponent.kt +++ b/idea/idea-new-project-wizard/src/org/jetbrains/kotlin/tools/projectWizard/wizard/ui/WizardStepComponent.kt @@ -1,7 +1,7 @@ package org.jetbrains.kotlin.tools.projectWizard.wizard.ui -import org.jetbrains.kotlin.tools.projectWizard.core.ValuesReadingContext +import org.jetbrains.kotlin.tools.projectWizard.core.ReadingContext abstract class WizardStepComponent( - valuesReadingContext: ValuesReadingContext -) : DynamicComponent(valuesReadingContext) \ No newline at end of file + readingContext: ReadingContext +) : DynamicComponent(readingContext) \ No newline at end of file diff --git a/idea/idea-new-project-wizard/src/org/jetbrains/kotlin/tools/projectWizard/wizard/ui/components/CheckboxComponent.kt b/idea/idea-new-project-wizard/src/org/jetbrains/kotlin/tools/projectWizard/wizard/ui/components/CheckboxComponent.kt index 01a3f1a0f22..6850b5db36c 100644 --- a/idea/idea-new-project-wizard/src/org/jetbrains/kotlin/tools/projectWizard/wizard/ui/components/CheckboxComponent.kt +++ b/idea/idea-new-project-wizard/src/org/jetbrains/kotlin/tools/projectWizard/wizard/ui/components/CheckboxComponent.kt @@ -1,19 +1,17 @@ package org.jetbrains.kotlin.tools.projectWizard.wizard.ui.components import com.intellij.ui.components.JBCheckBox -import com.intellij.ui.components.JBTextField -import org.jetbrains.kotlin.tools.projectWizard.core.ValuesReadingContext +import org.jetbrains.kotlin.tools.projectWizard.core.ReadingContext import org.jetbrains.kotlin.tools.projectWizard.core.entity.SettingValidator -import org.jetbrains.kotlin.tools.projectWizard.wizard.ui.textField class CheckboxComponent( - valuesReadingContext: ValuesReadingContext, + readingContext: ReadingContext, labelText: String? = null, initialValue: Boolean? = null, validator: SettingValidator? = null, onValueUpdate: (Boolean) -> Unit = {} ) : UIComponent( - valuesReadingContext, + readingContext, labelText, validator, onValueUpdate diff --git a/idea/idea-new-project-wizard/src/org/jetbrains/kotlin/tools/projectWizard/wizard/ui/components/DropDownComponent.kt b/idea/idea-new-project-wizard/src/org/jetbrains/kotlin/tools/projectWizard/wizard/ui/components/DropDownComponent.kt index 96f760ad5ad..c579590d810 100644 --- a/idea/idea-new-project-wizard/src/org/jetbrains/kotlin/tools/projectWizard/wizard/ui/components/DropDownComponent.kt +++ b/idea/idea-new-project-wizard/src/org/jetbrains/kotlin/tools/projectWizard/wizard/ui/components/DropDownComponent.kt @@ -3,7 +3,7 @@ package org.jetbrains.kotlin.tools.projectWizard.wizard.ui.components import com.intellij.openapi.ui.ComboBox import com.intellij.ui.ColoredListCellRenderer import com.intellij.ui.SimpleTextAttributes -import org.jetbrains.kotlin.tools.projectWizard.core.ValuesReadingContext +import org.jetbrains.kotlin.tools.projectWizard.core.ReadingContext import org.jetbrains.kotlin.tools.projectWizard.core.entity.SettingValidator import org.jetbrains.kotlin.tools.projectWizard.core.entity.ValidationResult import org.jetbrains.kotlin.tools.projectWizard.core.entity.settingValidator @@ -12,11 +12,10 @@ import org.jetbrains.kotlin.utils.addToStdlib.safeAs import java.awt.event.ItemEvent import javax.swing.DefaultComboBoxModel import javax.swing.Icon -import javax.swing.JComboBox import javax.swing.JList class DropDownComponent( - private val valuesReadingContext: ValuesReadingContext, + private val readingContext: ReadingContext, initialValues: List = emptyList(), labelText: String? = null, private val filter: (T) -> Boolean = { true }, @@ -24,7 +23,7 @@ class DropDownComponent( private val iconProvider: (T) -> Icon? = { null }, onValueUpdate: (T) -> Unit = {} ) : UIComponent( - valuesReadingContext, + readingContext, labelText, validator, onValueUpdate @@ -48,7 +47,7 @@ class DropDownComponent( append(" $it", SimpleTextAttributes.GRAYED_ATTRIBUTES) } if (this@apply.selectedItem != value) { - validator.validate(valuesReadingContext, value) + validator.validate(readingContext, value) .safeAs() ?.messages ?.firstOrNull() diff --git a/idea/idea-new-project-wizard/src/org/jetbrains/kotlin/tools/projectWizard/wizard/ui/components/PathFieldComponent.kt b/idea/idea-new-project-wizard/src/org/jetbrains/kotlin/tools/projectWizard/wizard/ui/components/PathFieldComponent.kt index 7895f006d3f..7f3fd270ec7 100644 --- a/idea/idea-new-project-wizard/src/org/jetbrains/kotlin/tools/projectWizard/wizard/ui/components/PathFieldComponent.kt +++ b/idea/idea-new-project-wizard/src/org/jetbrains/kotlin/tools/projectWizard/wizard/ui/components/PathFieldComponent.kt @@ -3,29 +3,21 @@ package org.jetbrains.kotlin.tools.projectWizard.wizard.ui.components import com.intellij.openapi.fileChooser.FileChooserDescriptorFactory import com.intellij.openapi.ui.TextBrowseFolderListener import com.intellij.openapi.ui.TextFieldWithBrowseButton -import org.jetbrains.kotlin.tools.projectWizard.core.entity.StringValidator -import org.jetbrains.kotlin.tools.projectWizard.core.entity.ValidationResult -import org.jetbrains.kotlin.tools.projectWizard.core.ValuesReadingContext +import org.jetbrains.kotlin.tools.projectWizard.core.ReadingContext import org.jetbrains.kotlin.tools.projectWizard.core.entity.SettingValidator -import org.jetbrains.kotlin.tools.projectWizard.core.entity.settingValidator -import org.jetbrains.kotlin.tools.projectWizard.wizard.ui.Component -import org.jetbrains.kotlin.tools.projectWizard.wizard.ui.panel -import org.jetbrains.kotlin.tools.projectWizard.wizard.ui.setting.ValidationIndicator import org.jetbrains.kotlin.tools.projectWizard.wizard.ui.textField -import java.awt.BorderLayout import java.nio.file.Path import java.nio.file.Paths -import javax.swing.Icon import javax.swing.JComponent class PathFieldComponent( - valuesReadingContext: ValuesReadingContext, + readingContext: ReadingContext, labelText: String? = null, initialValue: Path? = null, validator: SettingValidator? = null, onValueUpdate: (Path) -> Unit = {} ) : UIComponent( - valuesReadingContext, + readingContext, labelText, validator, onValueUpdate diff --git a/idea/idea-new-project-wizard/src/org/jetbrains/kotlin/tools/projectWizard/wizard/ui/components/TextFieldComponent.kt b/idea/idea-new-project-wizard/src/org/jetbrains/kotlin/tools/projectWizard/wizard/ui/components/TextFieldComponent.kt index 07a47d66ad0..5901f750641 100644 --- a/idea/idea-new-project-wizard/src/org/jetbrains/kotlin/tools/projectWizard/wizard/ui/components/TextFieldComponent.kt +++ b/idea/idea-new-project-wizard/src/org/jetbrains/kotlin/tools/projectWizard/wizard/ui/components/TextFieldComponent.kt @@ -1,18 +1,18 @@ package org.jetbrains.kotlin.tools.projectWizard.wizard.ui.components import com.intellij.ui.components.JBTextField -import org.jetbrains.kotlin.tools.projectWizard.core.ValuesReadingContext +import org.jetbrains.kotlin.tools.projectWizard.core.ReadingContext import org.jetbrains.kotlin.tools.projectWizard.core.entity.SettingValidator import org.jetbrains.kotlin.tools.projectWizard.wizard.ui.textField class TextFieldComponent( - valuesReadingContext: ValuesReadingContext, + readingContext: ReadingContext, labelText: String? = null, initialValue: String? = null, validator: SettingValidator? = null, onValueUpdate: (String) -> Unit = {} ) : UIComponent( - valuesReadingContext, + readingContext, labelText, validator, onValueUpdate diff --git a/idea/idea-new-project-wizard/src/org/jetbrains/kotlin/tools/projectWizard/wizard/ui/components/UIComponent.kt b/idea/idea-new-project-wizard/src/org/jetbrains/kotlin/tools/projectWizard/wizard/ui/components/UIComponent.kt index 9aaa0f06797..5ed18216aa0 100644 --- a/idea/idea-new-project-wizard/src/org/jetbrains/kotlin/tools/projectWizard/wizard/ui/components/UIComponent.kt +++ b/idea/idea-new-project-wizard/src/org/jetbrains/kotlin/tools/projectWizard/wizard/ui/components/UIComponent.kt @@ -6,9 +6,8 @@ package org.jetbrains.kotlin.tools.projectWizard.wizard.ui.components import com.intellij.openapi.Disposable -import org.jetbrains.kotlin.tools.projectWizard.core.ValuesReadingContext +import org.jetbrains.kotlin.tools.projectWizard.core.ReadingContext import org.jetbrains.kotlin.tools.projectWizard.core.entity.* -import org.jetbrains.kotlin.tools.projectWizard.core.service.SettingSavingWizardService import org.jetbrains.kotlin.tools.projectWizard.wizard.ui.DynamicComponent import org.jetbrains.kotlin.tools.projectWizard.wizard.ui.FocusableComponent import org.jetbrains.kotlin.tools.projectWizard.wizard.ui.label @@ -19,11 +18,11 @@ import java.awt.BorderLayout import javax.swing.JComponent abstract class UIComponent( - private val valuesReadingContext: ValuesReadingContext, + private val readingContext: ReadingContext, labelText: String? = null, private val validator: SettingValidator? = null, private val onValueUpdate: (V) -> Unit = {} -) : DynamicComponent(valuesReadingContext), ErrorAwareComponent, FocusableComponent, Disposable { +) : DynamicComponent(readingContext), ErrorAwareComponent, FocusableComponent, Disposable { private val validationIndicator by lazy(LazyThreadSafetyMode.NONE) { if (validator != null) IdeaBasedComponentValidator(this, getValidatorTarget()) @@ -70,7 +69,7 @@ abstract class UIComponent( fun validate(value: V) { if (validator == null) return if (validationIndicator == null) return - validationIndicator?.updateValidationState(validator.validate(valuesReadingContext, value)) + validationIndicator?.updateValidationState(validator.validate(readingContext, value)) } override fun focusOn() { @@ -78,11 +77,11 @@ abstract class UIComponent( } override fun findComponentWithError(error: ValidationResult.ValidationError): FocusableComponent? = takeIf { - getUiValue()?.let { validator?.validate?.invoke(valuesReadingContext, it)?.isSpecificError(error) } == true + getUiValue()?.let { validator?.validate?.invoke(readingContext, it)?.isSpecificError(error) } == true } } -fun ValuesReadingContext.valueForSetting( +fun ReadingContext.valueForSetting( uiComponent: UIComponent, setting: Setting> ): V? = setting.savedOrDefaultValue ?: uiComponent.getUiValue() \ No newline at end of file diff --git a/idea/idea-new-project-wizard/src/org/jetbrains/kotlin/tools/projectWizard/wizard/ui/firstStep/BuildSystemTypeSettingComponent.kt b/idea/idea-new-project-wizard/src/org/jetbrains/kotlin/tools/projectWizard/wizard/ui/firstStep/BuildSystemTypeSettingComponent.kt index ab25d68877d..f83408dde31 100644 --- a/idea/idea-new-project-wizard/src/org/jetbrains/kotlin/tools/projectWizard/wizard/ui/firstStep/BuildSystemTypeSettingComponent.kt +++ b/idea/idea-new-project-wizard/src/org/jetbrains/kotlin/tools/projectWizard/wizard/ui/firstStep/BuildSystemTypeSettingComponent.kt @@ -6,31 +6,26 @@ import icons.OpenapiIcons import org.jetbrains.kotlin.idea.KotlinIcons import org.jetbrains.kotlin.tools.projectWizard.core.entity.DropDownSettingType import org.jetbrains.kotlin.tools.projectWizard.core.entity.SettingReference -import org.jetbrains.kotlin.tools.projectWizard.core.ValuesReadingContext +import org.jetbrains.kotlin.tools.projectWizard.core.ReadingContext import org.jetbrains.kotlin.tools.projectWizard.core.entity.reference import org.jetbrains.kotlin.tools.projectWizard.plugins.buildSystem.BuildSystemPlugin import org.jetbrains.kotlin.tools.projectWizard.plugins.buildSystem.BuildSystemType import org.jetbrains.kotlin.tools.projectWizard.plugins.kotlin.KotlinPlugin import org.jetbrains.kotlin.tools.projectWizard.wizard.ui.components.DropDownComponent -import org.jetbrains.kotlin.tools.projectWizard.wizard.ui.components.valueForSetting -import org.jetbrains.kotlin.tools.projectWizard.wizard.ui.panel -import org.jetbrains.kotlin.tools.projectWizard.wizard.ui.setting.SettingComponent import org.jetbrains.kotlin.tools.projectWizard.wizard.ui.setting.UIComponentDelegatingSettingComponent -import org.jetbrains.kotlin.tools.projectWizard.wizard.ui.setting.ValidationIndicator -import java.awt.BorderLayout class BuildSystemTypeSettingComponent( - valuesReadingContext: ValuesReadingContext + readingContext: ReadingContext ) : UIComponentDelegatingSettingComponent>( BuildSystemPlugin::type.reference, - valuesReadingContext + readingContext ) { override val uiComponent: DropDownComponent = DropDownComponent( - valuesReadingContext, + readingContext, setting.type.values, labelText = "Build System", - filter = { value -> setting.type.filter(valuesReadingContext, reference, value) }, + filter = { value -> setting.type.filter(readingContext, reference, value) }, validator = setting.validator, iconProvider = BuildSystemType::icon, onValueUpdate = { value = it } 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 cad004401cc..8770edf1d54 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 @@ -1,6 +1,6 @@ package org.jetbrains.kotlin.tools.projectWizard.wizard.ui.firstStep -import org.jetbrains.kotlin.tools.projectWizard.core.ValuesReadingContext +import org.jetbrains.kotlin.tools.projectWizard.core.ReadingContext import org.jetbrains.kotlin.tools.projectWizard.core.entity.SettingReference import org.jetbrains.kotlin.tools.projectWizard.core.entity.reference import org.jetbrains.kotlin.tools.projectWizard.plugins.kotlin.KotlinPlugin @@ -22,19 +22,19 @@ class FirstWizardStepComponent(wizard: IdeWizard) : WizardStepComponent(wizard.v } } -class BuildSystemSubStep(valuesReadingContext: ValuesReadingContext) : - SubStep(valuesReadingContext) { - private val buildSystemSetting = BuildSystemTypeSettingComponent(valuesReadingContext).asSubComponent() +class BuildSystemSubStep(readingContext: ReadingContext) : + SubStep(readingContext) { + private val buildSystemSetting = BuildSystemTypeSettingComponent(readingContext).asSubComponent() override fun buildContent(): JComponent = panel { add(buildSystemSetting.component, BorderLayout.CENTER) } } -class TemplatesSubStep(valuesReadingContext: ValuesReadingContext) : - SubStep(valuesReadingContext) { +class TemplatesSubStep(readingContext: ReadingContext) : + SubStep(readingContext) { private val projectTemplateSettingComponent = - ProjectTemplateSettingComponent(valuesReadingContext) { projectTemplate -> + ProjectTemplateSettingComponent(readingContext) { projectTemplate -> templateDescriptionComponent.setTemplate(projectTemplate) }.asSubComponent() @@ -57,7 +57,7 @@ class TemplatesSubStep(valuesReadingContext: ValuesReadingContext) : } read { allModules().forEach { module -> - module.apply { initDefaultValuesForSettings(valuesReadingContext.context) } + module.apply { initDefaultValuesForSettings(readingContext.context) } } } } @@ -70,7 +70,7 @@ class TemplatesSubStep(valuesReadingContext: ValuesReadingContext) : module.subModules.forEach(::addModule) } - valuesReadingContext.context.settingContext[KotlinPlugin::modules.reference] + readingContext.context.settingContext[KotlinPlugin::modules.reference] ?.forEach(::addModule) return modules diff --git a/idea/idea-new-project-wizard/src/org/jetbrains/kotlin/tools/projectWizard/wizard/ui/firstStep/ProjectTemplateSettingComponent.kt b/idea/idea-new-project-wizard/src/org/jetbrains/kotlin/tools/projectWizard/wizard/ui/firstStep/ProjectTemplateSettingComponent.kt index 71d2c969db0..e994db25133 100644 --- a/idea/idea-new-project-wizard/src/org/jetbrains/kotlin/tools/projectWizard/wizard/ui/firstStep/ProjectTemplateSettingComponent.kt +++ b/idea/idea-new-project-wizard/src/org/jetbrains/kotlin/tools/projectWizard/wizard/ui/firstStep/ProjectTemplateSettingComponent.kt @@ -1,6 +1,6 @@ package org.jetbrains.kotlin.tools.projectWizard.wizard.ui.firstStep -import org.jetbrains.kotlin.tools.projectWizard.core.ValuesReadingContext +import org.jetbrains.kotlin.tools.projectWizard.core.ReadingContext import org.jetbrains.kotlin.tools.projectWizard.core.entity.DropDownSettingType import org.jetbrains.kotlin.tools.projectWizard.core.entity.reference import org.jetbrains.kotlin.tools.projectWizard.plugins.projectTemplates.ProjectTemplatesPlugin @@ -13,11 +13,11 @@ import javax.swing.BorderFactory import javax.swing.JComponent class ProjectTemplateSettingComponent( - valuesReadingContext: ValuesReadingContext, + readingContext: ReadingContext, private val onSelected: (ProjectTemplate) -> Unit ) : SettingComponent>( ProjectTemplatesPlugin::template.reference, - valuesReadingContext + readingContext ) { override val validationIndicator: ValidationIndicator? get() = null diff --git a/idea/idea-new-project-wizard/src/org/jetbrains/kotlin/tools/projectWizard/wizard/ui/secondStep/ModuleSettingsComponent.kt b/idea/idea-new-project-wizard/src/org/jetbrains/kotlin/tools/projectWizard/wizard/ui/secondStep/ModuleSettingsComponent.kt index cd56f38c261..8ffcff6bcb1 100644 --- a/idea/idea-new-project-wizard/src/org/jetbrains/kotlin/tools/projectWizard/wizard/ui/secondStep/ModuleSettingsComponent.kt +++ b/idea/idea-new-project-wizard/src/org/jetbrains/kotlin/tools/projectWizard/wizard/ui/secondStep/ModuleSettingsComponent.kt @@ -2,7 +2,7 @@ package org.jetbrains.kotlin.tools.projectWizard.wizard.ui.secondStep import com.intellij.ui.components.JBTabbedPane import org.jetbrains.kotlin.idea.projectWizard.UiEditorUsageStats -import org.jetbrains.kotlin.tools.projectWizard.core.ValuesReadingContext +import org.jetbrains.kotlin.tools.projectWizard.core.ReadingContext import org.jetbrains.kotlin.tools.projectWizard.core.entity.StringValidators import org.jetbrains.kotlin.tools.projectWizard.core.entity.ValidationResult import org.jetbrains.kotlin.tools.projectWizard.moduleConfigurators.getConfiguratorSettings @@ -12,7 +12,6 @@ import org.jetbrains.kotlin.tools.projectWizard.settings.buildsystem.Module import org.jetbrains.kotlin.tools.projectWizard.settings.buildsystem.Module.Companion.ALLOWED_SPECIAL_CHARS_IN_MODULE_NAMES import org.jetbrains.kotlin.tools.projectWizard.settings.buildsystem.ModuleKind import org.jetbrains.kotlin.tools.projectWizard.wizard.ui.DynamicComponent -import org.jetbrains.kotlin.tools.projectWizard.wizard.ui.FocusableComponent import org.jetbrains.kotlin.tools.projectWizard.wizard.ui.components.TextFieldComponent import org.jetbrains.kotlin.tools.projectWizard.wizard.ui.panel import org.jetbrains.kotlin.tools.projectWizard.wizard.ui.setting.SettingsList @@ -20,15 +19,15 @@ import java.awt.BorderLayout import javax.swing.JComponent class ModuleSettingsComponent( - valuesReadingContext: ValuesReadingContext, + readingContext: ReadingContext, uiEditorUsagesStats: UiEditorUsageStats -) : DynamicComponent(valuesReadingContext) { +) : DynamicComponent(readingContext) { private val validateModuleName = StringValidators.shouldNotBeBlank("Module name") and StringValidators.shouldBeValidIdentifier("Module Name", ALLOWED_SPECIAL_CHARS_IN_MODULE_NAMES) - private val moduleConfiguratorSettingsList = SettingsList(emptyList(), valuesReadingContext).asSubComponent() - private val templateComponent = TemplatesComponent(valuesReadingContext, uiEditorUsagesStats).asSubComponent() + private val moduleConfiguratorSettingsList = SettingsList(emptyList(), readingContext).asSubComponent() + private val templateComponent = TemplatesComponent(readingContext, uiEditorUsagesStats).asSubComponent() private val tabPanel = JBTabbedPane().apply { add("Template", templateComponent.component) @@ -43,7 +42,7 @@ class ModuleSettingsComponent( } private val nameField = TextFieldComponent( - valuesReadingContext, + readingContext, labelText = "Name", onValueUpdate = { value -> module?.name = value diff --git a/idea/idea-new-project-wizard/src/org/jetbrains/kotlin/tools/projectWizard/wizard/ui/secondStep/SecondStepWizardComponent.kt b/idea/idea-new-project-wizard/src/org/jetbrains/kotlin/tools/projectWizard/wizard/ui/secondStep/SecondStepWizardComponent.kt index b0170affd63..c9696d01050 100644 --- a/idea/idea-new-project-wizard/src/org/jetbrains/kotlin/tools/projectWizard/wizard/ui/secondStep/SecondStepWizardComponent.kt +++ b/idea/idea-new-project-wizard/src/org/jetbrains/kotlin/tools/projectWizard/wizard/ui/secondStep/SecondStepWizardComponent.kt @@ -1,7 +1,7 @@ package org.jetbrains.kotlin.tools.projectWizard.wizard.ui.secondStep import org.jetbrains.kotlin.idea.projectWizard.UiEditorUsageStats -import org.jetbrains.kotlin.tools.projectWizard.core.ValuesReadingContext +import org.jetbrains.kotlin.tools.projectWizard.core.ReadingContext import org.jetbrains.kotlin.tools.projectWizard.core.entity.ValidationResult import org.jetbrains.kotlin.tools.projectWizard.settings.DisplayableSettingItem import org.jetbrains.kotlin.tools.projectWizard.settings.buildsystem.Module @@ -35,13 +35,13 @@ class SecondStepWizardComponent( class ModulesEditorSubStep( - valuesReadingContext: ValuesReadingContext, + readingContext: ReadingContext, uiEditorUsagesStats: UiEditorUsageStats, onNodeSelected: (data: DisplayableSettingItem?) -> Unit, selectSettingWithError: (ValidationResult.ValidationError) -> Unit -) : SubStep(valuesReadingContext) { +) : SubStep(readingContext) { private val moduleSettingComponent = ModulesEditorComponent( - valuesReadingContext, + readingContext, uiEditorUsagesStats, onNodeSelected, selectSettingWithError @@ -63,7 +63,7 @@ class ModuleSettingsSubStep( uiEditorUsagesStats: UiEditorUsageStats ) : SubStep(wizard.valuesReadingContext) { private val sourcesetSettingsComponent = SourcesetSettingsComponent(wizard.valuesReadingContext).asSubComponent() - private val moduleSettingsComponent = ModuleSettingsComponent(valuesReadingContext, uiEditorUsagesStats).asSubComponent() + private val moduleSettingsComponent = ModuleSettingsComponent(readingContext, uiEditorUsagesStats).asSubComponent() private val nothingSelectedComponent = NothingSelectedComponent().asSubComponent() private val panel = panel { diff --git a/idea/idea-new-project-wizard/src/org/jetbrains/kotlin/tools/projectWizard/wizard/ui/secondStep/SourcesetDependenciesSettingsComponent.kt b/idea/idea-new-project-wizard/src/org/jetbrains/kotlin/tools/projectWizard/wizard/ui/secondStep/SourcesetDependenciesSettingsComponent.kt index abcc820484b..500fd8d8035 100644 --- a/idea/idea-new-project-wizard/src/org/jetbrains/kotlin/tools/projectWizard/wizard/ui/secondStep/SourcesetDependenciesSettingsComponent.kt +++ b/idea/idea-new-project-wizard/src/org/jetbrains/kotlin/tools/projectWizard/wizard/ui/secondStep/SourcesetDependenciesSettingsComponent.kt @@ -5,7 +5,7 @@ import com.intellij.openapi.ui.DialogWrapper import com.intellij.ui.ColoredListCellRenderer import com.intellij.ui.SimpleTextAttributes import com.intellij.ui.ToolbarDecorator -import org.jetbrains.kotlin.tools.projectWizard.core.ValuesReadingContext +import org.jetbrains.kotlin.tools.projectWizard.core.ReadingContext import org.jetbrains.kotlin.tools.projectWizard.moduleConfigurators.AndroidSinglePlatformModuleConfigurator import org.jetbrains.kotlin.tools.projectWizard.moduleConfigurators.IOSSinglePlatformModuleConfigurator import org.jetbrains.kotlin.tools.projectWizard.plugins.kotlin.KotlinPlugin @@ -18,8 +18,8 @@ import java.awt.Dimension import javax.swing.JComponent class SourcesetDependenciesSettingsComponent( - valuesReadingContext: ValuesReadingContext -) : DynamicComponent(valuesReadingContext) { + readingContext: ReadingContext +) : DynamicComponent(readingContext) { private val sourcesetDependenciesList = SourcesetDependenciesList() private val toolbarDecorator: ToolbarDecorator = ToolbarDecorator.createDecorator(sourcesetDependenciesList).apply { diff --git a/idea/idea-new-project-wizard/src/org/jetbrains/kotlin/tools/projectWizard/wizard/ui/secondStep/SourcesetSettingsComponent.kt b/idea/idea-new-project-wizard/src/org/jetbrains/kotlin/tools/projectWizard/wizard/ui/secondStep/SourcesetSettingsComponent.kt index 3e52a6e1242..df2fe8b009e 100644 --- a/idea/idea-new-project-wizard/src/org/jetbrains/kotlin/tools/projectWizard/wizard/ui/secondStep/SourcesetSettingsComponent.kt +++ b/idea/idea-new-project-wizard/src/org/jetbrains/kotlin/tools/projectWizard/wizard/ui/secondStep/SourcesetSettingsComponent.kt @@ -1,12 +1,12 @@ package org.jetbrains.kotlin.tools.projectWizard.wizard.ui.secondStep import com.intellij.ui.components.JBTabbedPane -import org.jetbrains.kotlin.tools.projectWizard.core.ValuesReadingContext +import org.jetbrains.kotlin.tools.projectWizard.core.ReadingContext import org.jetbrains.kotlin.tools.projectWizard.settings.buildsystem.Sourceset import org.jetbrains.kotlin.tools.projectWizard.wizard.ui.DynamicComponent -class SourcesetSettingsComponent(valuesReadingContext: ValuesReadingContext) : DynamicComponent(valuesReadingContext) { - private val dependenciesComponent = SourcesetDependenciesSettingsComponent(valuesReadingContext).asSubComponent() +class SourcesetSettingsComponent(readingContext: ReadingContext) : DynamicComponent(readingContext) { + private val dependenciesComponent = SourcesetDependenciesSettingsComponent(readingContext).asSubComponent() override val component = JBTabbedPane().apply { add("Dependencies", dependenciesComponent.component) diff --git a/idea/idea-new-project-wizard/src/org/jetbrains/kotlin/tools/projectWizard/wizard/ui/secondStep/TemplatesComponent.kt b/idea/idea-new-project-wizard/src/org/jetbrains/kotlin/tools/projectWizard/wizard/ui/secondStep/TemplatesComponent.kt index f12eaf582a8..9f8b4e096c4 100644 --- a/idea/idea-new-project-wizard/src/org/jetbrains/kotlin/tools/projectWizard/wizard/ui/secondStep/TemplatesComponent.kt +++ b/idea/idea-new-project-wizard/src/org/jetbrains/kotlin/tools/projectWizard/wizard/ui/secondStep/TemplatesComponent.kt @@ -9,7 +9,7 @@ import com.intellij.util.ui.StatusText import com.intellij.util.ui.UIUtil import org.jetbrains.kotlin.idea.KotlinIcons import org.jetbrains.kotlin.idea.projectWizard.UiEditorUsageStats -import org.jetbrains.kotlin.tools.projectWizard.core.ValuesReadingContext +import org.jetbrains.kotlin.tools.projectWizard.core.ReadingContext import org.jetbrains.kotlin.tools.projectWizard.core.entity.ValidationResult import org.jetbrains.kotlin.tools.projectWizard.moduleConfigurators.moduleType import org.jetbrains.kotlin.tools.projectWizard.plugins.templates.TemplatesPlugin @@ -26,17 +26,17 @@ import javax.swing.JComponent import javax.swing.JPanel class TemplatesComponent( - valuesReadingContext: ValuesReadingContext, + readingContext: ReadingContext, uiEditorUsagesStats: UiEditorUsageStats -) : DynamicComponent(valuesReadingContext), ErrorAwareComponent { +) : DynamicComponent(readingContext), ErrorAwareComponent { private val chooseTemplateComponent: ChooseTemplateComponent = - ChooseTemplateComponent(valuesReadingContext) { template -> + ChooseTemplateComponent(readingContext) { template -> uiEditorUsagesStats.moduleTemplatesSet++ module?.template = template switchState(template) } - private val templateSettingsComponent = TemplateSettingsComponent(valuesReadingContext) { + private val templateSettingsComponent = TemplateSettingsComponent(readingContext) { if (MessagesEx.showOkCancelDialog( component, "Do you want to remove selected template from module", @@ -84,9 +84,9 @@ class TemplatesComponent( } class ChooseTemplateComponent( - private val valuesReadingContext: ValuesReadingContext, + private val readingContext: ReadingContext, private val onTemplateChosen: (Template) -> Unit -) : DynamicComponent(valuesReadingContext) { +) : DynamicComponent(readingContext) { private enum class State(val text: String) { MODULE_SELECTED_AND_TEMPLATES_AVAILABLE("You can configure a template for selected module"), MODULE_SELECTED_AND_NO_TEMPLATES_AVAILABLE("No templates available for selected module"), @@ -105,7 +105,7 @@ class ChooseTemplateComponent( } private val allTemplates - get() = with(valuesReadingContext) { + get() = with(readingContext) { TemplatesPlugin::templates.propertyValue } @@ -247,9 +247,9 @@ class TemplateDescriptionComponent( } private class TemplateSettingsComponent( - valuesReadingContext: ValuesReadingContext, + readingContext: ReadingContext, removeTemplate: () -> Unit -) : DynamicComponent(valuesReadingContext), ErrorAwareComponent { +) : DynamicComponent(readingContext), ErrorAwareComponent { private val templateDescriptionComponent = TemplateDescriptionComponent( needRemoveButton = true, nonDefaultBackgroundColor = UIUtil.getEditorPaneBackground(), @@ -258,7 +258,7 @@ private class TemplateSettingsComponent( component.bordered(needTopEmptyBorder = false, needBottomEmptyBorder = false) } - private val settings = SettingsList(emptyList(), valuesReadingContext).apply { + private val settings = SettingsList(emptyList(), readingContext).apply { component.bordered() } diff --git a/idea/idea-new-project-wizard/src/org/jetbrains/kotlin/tools/projectWizard/wizard/ui/secondStep/modulesEditor/ModulesEditorComponent.kt b/idea/idea-new-project-wizard/src/org/jetbrains/kotlin/tools/projectWizard/wizard/ui/secondStep/modulesEditor/ModulesEditorComponent.kt index 6870b648171..2c5f7e4b617 100644 --- a/idea/idea-new-project-wizard/src/org/jetbrains/kotlin/tools/projectWizard/wizard/ui/secondStep/modulesEditor/ModulesEditorComponent.kt +++ b/idea/idea-new-project-wizard/src/org/jetbrains/kotlin/tools/projectWizard/wizard/ui/secondStep/modulesEditor/ModulesEditorComponent.kt @@ -3,7 +3,7 @@ package org.jetbrains.kotlin.tools.projectWizard.wizard.ui.secondStep.modulesEdi import com.intellij.ui.JBColor import org.jetbrains.kotlin.idea.projectWizard.UiEditorUsageStats import org.jetbrains.kotlin.tools.projectWizard.core.entity.ListSettingType -import org.jetbrains.kotlin.tools.projectWizard.core.ValuesReadingContext +import org.jetbrains.kotlin.tools.projectWizard.core.ReadingContext import org.jetbrains.kotlin.tools.projectWizard.core.entity.ValidationResult import org.jetbrains.kotlin.tools.projectWizard.core.entity.reference import org.jetbrains.kotlin.tools.projectWizard.plugins.kotlin.KotlinPlugin @@ -19,11 +19,11 @@ import javax.swing.JComponent class ModulesEditorComponent( - valuesReadingContext: ValuesReadingContext, + readingContext: ReadingContext, uiEditorUsagesStats: UiEditorUsageStats, oneEntrySelected: (data: DisplayableSettingItem?) -> Unit, selectSettingWithError: (ValidationResult.ValidationError) -> Unit -) : SettingComponent, ListSettingType>(KotlinPlugin::modules.reference, valuesReadingContext) { +) : SettingComponent, ListSettingType>(KotlinPlugin::modules.reference, readingContext) { private val tree: ModulesEditorTree = ModulesEditorTree( onSelected = { oneEntrySelected(it) }, @@ -41,7 +41,7 @@ class ModulesEditorComponent( } ) - private val model = TargetsModel(tree, ::value, valuesReadingContext, uiEditorUsagesStats) + private val model = TargetsModel(tree, ::value, readingContext, uiEditorUsagesStats) override fun onInit() { super.onInit() diff --git a/idea/idea-new-project-wizard/src/org/jetbrains/kotlin/tools/projectWizard/wizard/ui/secondStep/modulesEditor/TargetsModel.kt b/idea/idea-new-project-wizard/src/org/jetbrains/kotlin/tools/projectWizard/wizard/ui/secondStep/modulesEditor/TargetsModel.kt index f7c31f1ad44..8449dc7c61c 100644 --- a/idea/idea-new-project-wizard/src/org/jetbrains/kotlin/tools/projectWizard/wizard/ui/secondStep/modulesEditor/TargetsModel.kt +++ b/idea/idea-new-project-wizard/src/org/jetbrains/kotlin/tools/projectWizard/wizard/ui/secondStep/modulesEditor/TargetsModel.kt @@ -1,8 +1,7 @@ package org.jetbrains.kotlin.tools.projectWizard.wizard.ui.secondStep.modulesEditor import org.jetbrains.kotlin.idea.projectWizard.UiEditorUsageStats -import org.jetbrains.kotlin.tools.projectWizard.core.Context -import org.jetbrains.kotlin.tools.projectWizard.core.ValuesReadingContext +import org.jetbrains.kotlin.tools.projectWizard.core.ReadingContext import org.jetbrains.kotlin.tools.projectWizard.settings.buildsystem.Module import org.jetbrains.kotlin.tools.projectWizard.settings.buildsystem.ModuleKind import org.jetbrains.kotlin.utils.addToStdlib.safeAs @@ -13,7 +12,7 @@ import kotlin.reflect.KMutableProperty0 class TargetsModel( private val tree: ModulesEditorTree, private val value: KMutableProperty0?>, - private val valuesReadingContext: ValuesReadingContext, + private val readingContext: ReadingContext, private val uiEditorUsagesStats: UiEditorUsageStats ) { private val root get() = tree.model.root as DefaultMutableTreeNode @@ -65,7 +64,7 @@ class TargetsModel( fun add(module: Module) { uiEditorUsagesStats.modulesCreated++ - with(valuesReadingContext) { + with(readingContext) { module.apply { initDefaultValuesForSettings(context) } } addToTheTree(module, modifyValue = true, parent = tree.selectedNode ?: root) diff --git a/idea/idea-new-project-wizard/src/org/jetbrains/kotlin/tools/projectWizard/wizard/ui/setting/DefaultSettingComponent.kt b/idea/idea-new-project-wizard/src/org/jetbrains/kotlin/tools/projectWizard/wizard/ui/setting/DefaultSettingComponent.kt index bad7e133e8d..be6faff1d2d 100644 --- a/idea/idea-new-project-wizard/src/org/jetbrains/kotlin/tools/projectWizard/wizard/ui/setting/DefaultSettingComponent.kt +++ b/idea/idea-new-project-wizard/src/org/jetbrains/kotlin/tools/projectWizard/wizard/ui/setting/DefaultSettingComponent.kt @@ -1,7 +1,7 @@ package org.jetbrains.kotlin.tools.projectWizard.wizard.ui.setting import com.intellij.openapi.ui.ComboBox -import org.jetbrains.kotlin.tools.projectWizard.core.ValuesReadingContext +import org.jetbrains.kotlin.tools.projectWizard.core.ReadingContext import org.jetbrains.kotlin.tools.projectWizard.core.entity.* import org.jetbrains.kotlin.tools.projectWizard.settings.DisplayableSettingItem import org.jetbrains.kotlin.tools.projectWizard.settings.version.Version @@ -19,32 +19,32 @@ object DefaultSettingComponent { @Suppress("UNCHECKED_CAST") fun > create( setting: SettingReference, - valuesReadingContext: ValuesReadingContext + readingContext: ReadingContext ): SettingComponent = when (setting.type) { VersionSettingType::class -> VersionSettingComponent( setting as SettingReference, - valuesReadingContext + readingContext ) as SettingComponent BooleanSettingType::class -> BooleanSettingComponent( setting as SettingReference, - valuesReadingContext + readingContext ) as SettingComponent DropDownSettingType::class -> DropdownSettingComponent( setting as SettingReference>, - valuesReadingContext + readingContext ) as SettingComponent StringSettingType::class -> StringSettingComponent( setting as SettingReference, - valuesReadingContext + readingContext ) as SettingComponent PathSettingType::class -> PathSettingComponent( setting as SettingReference, - valuesReadingContext + readingContext ) as SettingComponent else -> TODO(setting.type.qualifiedName!!) } @@ -52,8 +52,8 @@ object DefaultSettingComponent { class VersionSettingComponent( reference: SettingReference, - valuesReadingContext: ValuesReadingContext -) : SettingComponent(reference, valuesReadingContext) { + readingContext: ReadingContext +) : SettingComponent(reference, readingContext) { private val settingLabel = label(setting.title) private val comboBox = ComboBox().apply { addItemListener { e -> @@ -90,17 +90,17 @@ class VersionSettingComponent( class DropdownSettingComponent( reference: SettingReference>, - valuesReadingContext: ValuesReadingContext + readingContext: ReadingContext ) : UIComponentDelegatingSettingComponent>( reference, - valuesReadingContext + readingContext ) { override val uiComponent = DropDownComponent( - valuesReadingContext = valuesReadingContext, + readingContext = readingContext, initialValues = setting.type.values, validator = setting.validator, filter = { value -> - setting.type.filter(valuesReadingContext, reference, value) + setting.type.filter(readingContext, reference, value) }, labelText = setting.title, onValueUpdate = { newValue -> value = newValue } @@ -109,13 +109,13 @@ class DropdownSettingComponent( class BooleanSettingComponent( reference: SettingReference, - valuesReadingContext: ValuesReadingContext + readingContext: ReadingContext ) : UIComponentDelegatingSettingComponent( reference, - valuesReadingContext + readingContext ) { override val uiComponent = CheckboxComponent( - valuesReadingContext = valuesReadingContext, + readingContext = readingContext, labelText = setting.title, initialValue = null, validator = setting.validator, @@ -125,14 +125,14 @@ class BooleanSettingComponent( class StringSettingComponent( reference: SettingReference, - valuesReadingContext: ValuesReadingContext, + readingContext: ReadingContext, showLabel: Boolean = true ) : UIComponentDelegatingSettingComponent( reference, - valuesReadingContext + readingContext ) { override val uiComponent = TextFieldComponent( - valuesReadingContext = valuesReadingContext, + readingContext = readingContext, initialValue = null, labelText = if (showLabel) setting.title else null, validator = setting.validator, @@ -142,13 +142,13 @@ class StringSettingComponent( class PathSettingComponent( reference: SettingReference, - valuesReadingContext: ValuesReadingContext + readingContext: ReadingContext ) : UIComponentDelegatingSettingComponent( reference, - valuesReadingContext + readingContext ) { override val uiComponent = PathFieldComponent( - valuesReadingContext = valuesReadingContext, + readingContext = readingContext, labelText = setting.title, validator = settingValidator { path -> setting.validator.validate(this, path) }, onValueUpdate = { newValue -> value = newValue } diff --git a/idea/idea-new-project-wizard/src/org/jetbrains/kotlin/tools/projectWizard/wizard/ui/setting/SettingComponent.kt b/idea/idea-new-project-wizard/src/org/jetbrains/kotlin/tools/projectWizard/wizard/ui/setting/SettingComponent.kt index 637fde23ad2..13cc10d271e 100644 --- a/idea/idea-new-project-wizard/src/org/jetbrains/kotlin/tools/projectWizard/wizard/ui/setting/SettingComponent.kt +++ b/idea/idea-new-project-wizard/src/org/jetbrains/kotlin/tools/projectWizard/wizard/ui/setting/SettingComponent.kt @@ -1,6 +1,6 @@ package org.jetbrains.kotlin.tools.projectWizard.wizard.ui.setting -import org.jetbrains.kotlin.tools.projectWizard.core.ValuesReadingContext +import org.jetbrains.kotlin.tools.projectWizard.core.ReadingContext import org.jetbrains.kotlin.tools.projectWizard.core.entity.* import org.jetbrains.kotlin.tools.projectWizard.wizard.ui.Displayable import org.jetbrains.kotlin.tools.projectWizard.wizard.ui.DynamicComponent @@ -8,8 +8,8 @@ import org.jetbrains.kotlin.tools.projectWizard.wizard.ui.FocusableComponent abstract class SettingComponent>( val reference: SettingReference, - val valuesReadingContext: ValuesReadingContext -) : DynamicComponent(valuesReadingContext), Displayable, FocusableComponent { + val readingContext: ReadingContext +) : DynamicComponent(readingContext), Displayable, FocusableComponent { var value: V? get() = reference.value set(value) { @@ -17,7 +17,7 @@ abstract class SettingComponent>( } val setting: Setting - get() = with(valuesReadingContext.context) { + get() = with(readingContext.context) { with(reference) { getSetting() } } @@ -29,14 +29,14 @@ abstract class SettingComponent>( } override fun onValueUpdated(reference: SettingReference<*, *>?) { - component.isVisible = setting.isActive(valuesReadingContext) + component.isVisible = setting.isActive(readingContext) updateValidationState() } private fun updateValidationState() { val value = value if (validationIndicator != null && value != null) { - validationIndicator!!.updateValidationState(setting.validator.validate(valuesReadingContext, value)) + validationIndicator!!.updateValidationState(setting.validator.validate(readingContext, value)) } } } diff --git a/idea/idea-new-project-wizard/src/org/jetbrains/kotlin/tools/projectWizard/wizard/ui/setting/SettingsList.kt b/idea/idea-new-project-wizard/src/org/jetbrains/kotlin/tools/projectWizard/wizard/ui/setting/SettingsList.kt index b69242fb41d..df8223b20c5 100644 --- a/idea/idea-new-project-wizard/src/org/jetbrains/kotlin/tools/projectWizard/wizard/ui/setting/SettingsList.kt +++ b/idea/idea-new-project-wizard/src/org/jetbrains/kotlin/tools/projectWizard/wizard/ui/setting/SettingsList.kt @@ -1,7 +1,7 @@ package org.jetbrains.kotlin.tools.projectWizard.wizard.ui.setting import com.intellij.ui.components.panels.VerticalLayout -import org.jetbrains.kotlin.tools.projectWizard.core.ValuesReadingContext +import org.jetbrains.kotlin.tools.projectWizard.core.ReadingContext import org.jetbrains.kotlin.tools.projectWizard.core.entity.SettingReference import org.jetbrains.kotlin.tools.projectWizard.core.entity.ValidationResult import org.jetbrains.kotlin.tools.projectWizard.core.entity.isSpecificError @@ -16,8 +16,8 @@ interface ErrorAwareComponent { class SettingsList( settings: List>, - private val valuesReadingContext: ValuesReadingContext -) : DynamicComponent(valuesReadingContext), ErrorAwareComponent { + private val readingContext: ReadingContext +) : DynamicComponent(readingContext), ErrorAwareComponent { private val panel = PanelWithStatusText(VerticalLayout(5), "This module has no settings to configure") var settingComponents: List> = emptyList() @@ -38,7 +38,7 @@ class SettingsList( panel.isStatusTextVisible = settings.isEmpty() panel.removeAll() settingComponents = settings.map { setting -> - DefaultSettingComponent.create(setting, valuesReadingContext) + DefaultSettingComponent.create(setting, readingContext) } settingComponents.forEach { setting -> setting.onInit(); panel.add(setting.component) } } @@ -46,7 +46,7 @@ class SettingsList( override fun findComponentWithError(error: ValidationResult.ValidationError) = settingComponents.firstOrNull { component -> val value = component.value ?: return@firstOrNull false - val result = component.setting.validator.validate(valuesReadingContext, value) + val result = component.setting.validator.validate(readingContext, value) result isSpecificError error } } \ No newline at end of file diff --git a/idea/idea-new-project-wizard/src/org/jetbrains/kotlin/tools/projectWizard/wizard/ui/setting/UIComponentDelegatingSettingComponent.kt b/idea/idea-new-project-wizard/src/org/jetbrains/kotlin/tools/projectWizard/wizard/ui/setting/UIComponentDelegatingSettingComponent.kt index 197a471d9a1..96b433eecba 100644 --- a/idea/idea-new-project-wizard/src/org/jetbrains/kotlin/tools/projectWizard/wizard/ui/setting/UIComponentDelegatingSettingComponent.kt +++ b/idea/idea-new-project-wizard/src/org/jetbrains/kotlin/tools/projectWizard/wizard/ui/setting/UIComponentDelegatingSettingComponent.kt @@ -5,7 +5,7 @@ package org.jetbrains.kotlin.tools.projectWizard.wizard.ui.setting -import org.jetbrains.kotlin.tools.projectWizard.core.ValuesReadingContext +import org.jetbrains.kotlin.tools.projectWizard.core.ReadingContext import org.jetbrains.kotlin.tools.projectWizard.core.entity.SettingReference import org.jetbrains.kotlin.tools.projectWizard.core.entity.SettingType import org.jetbrains.kotlin.tools.projectWizard.wizard.ui.components.UIComponent @@ -14,8 +14,8 @@ import javax.swing.JComponent abstract class UIComponentDelegatingSettingComponent>( reference: SettingReference, - valuesReadingContext: ValuesReadingContext -) : SettingComponent(reference, valuesReadingContext) { + readingContext: ReadingContext +) : SettingComponent(reference, readingContext) { abstract val uiComponent: UIComponent // As there is one in UIComponent diff --git a/libraries/tools/new-project-wizard/src/org/jetbrains/kotlin/tools/projectWizard/SettingsOwner.kt b/libraries/tools/new-project-wizard/src/org/jetbrains/kotlin/tools/projectWizard/SettingsOwner.kt index 38b2997d128..877aa8e74df 100644 --- a/libraries/tools/new-project-wizard/src/org/jetbrains/kotlin/tools/projectWizard/SettingsOwner.kt +++ b/libraries/tools/new-project-wizard/src/org/jetbrains/kotlin/tools/projectWizard/SettingsOwner.kt @@ -2,7 +2,6 @@ package org.jetbrains.kotlin.tools.projectWizard import org.jetbrains.kotlin.tools.projectWizard.core.EntitiesOwnerDescriptor import org.jetbrains.kotlin.tools.projectWizard.core.Parser -import org.jetbrains.kotlin.tools.projectWizard.core.TaskRunningContext import org.jetbrains.kotlin.tools.projectWizard.core.entity.* import org.jetbrains.kotlin.tools.projectWizard.phases.GenerationPhase import org.jetbrains.kotlin.tools.projectWizard.settings.DisplayableSettingItem diff --git a/libraries/tools/new-project-wizard/src/org/jetbrains/kotlin/tools/projectWizard/core/Checker.kt b/libraries/tools/new-project-wizard/src/org/jetbrains/kotlin/tools/projectWizard/core/Checker.kt index f4dfd1c3db9..b4e60459d9b 100644 --- a/libraries/tools/new-project-wizard/src/org/jetbrains/kotlin/tools/projectWizard/core/Checker.kt +++ b/libraries/tools/new-project-wizard/src/org/jetbrains/kotlin/tools/projectWizard/core/Checker.kt @@ -5,14 +5,14 @@ import org.jetbrains.kotlin.tools.projectWizard.core.entity.SettingType sealed class CheckerRule { - abstract fun check(context: ValuesReadingContext): Boolean + abstract fun check(context: ReadingContext): Boolean } data class RuleBySettingValue( val settingReference: SettingReference>, val expectedValue: Any ) : CheckerRule() { - override fun check(context: ValuesReadingContext): Boolean = with(context) { + override fun check(context: ReadingContext): Boolean = with(context) { settingReference.notRequiredSettingValue() == expectedValue } } @@ -21,11 +21,11 @@ data class OrRule( val left: CheckerRule, val right: CheckerRule ) : CheckerRule() { - override fun check(context: ValuesReadingContext): Boolean = left.check(context) || right.check(context) + override fun check(context: ReadingContext): Boolean = left.check(context) || right.check(context) } data class Checker(val rules: List) { - fun check(context: ValuesReadingContext) = + fun check(context: ReadingContext) = rules.all { rule -> rule.check(context) } class Builder { @@ -64,5 +64,5 @@ interface ContextOwner { interface ActivityCheckerOwner { val activityChecker: Checker - fun isActive(valuesReadingContext: ValuesReadingContext) = activityChecker.check(valuesReadingContext) + fun isActive(readingContext: ReadingContext) = activityChecker.check(readingContext) } \ No newline at end of file diff --git a/libraries/tools/new-project-wizard/src/org/jetbrains/kotlin/tools/projectWizard/core/ValuesReadingContext.kt b/libraries/tools/new-project-wizard/src/org/jetbrains/kotlin/tools/projectWizard/core/ReadingContext.kt similarity index 98% rename from libraries/tools/new-project-wizard/src/org/jetbrains/kotlin/tools/projectWizard/core/ValuesReadingContext.kt rename to libraries/tools/new-project-wizard/src/org/jetbrains/kotlin/tools/projectWizard/core/ReadingContext.kt index d9b40c19e7a..b4fe3e3ade1 100644 --- a/libraries/tools/new-project-wizard/src/org/jetbrains/kotlin/tools/projectWizard/core/ValuesReadingContext.kt +++ b/libraries/tools/new-project-wizard/src/org/jetbrains/kotlin/tools/projectWizard/core/ReadingContext.kt @@ -7,7 +7,7 @@ import org.jetbrains.kotlin.tools.projectWizard.core.service.SettingSavingWizard import kotlin.reflect.KClass import kotlin.reflect.KProperty1 -open class ValuesReadingContext( +open class ReadingContext( val context: Context, private val servicesManager: ServicesManager, val isUnitTestMode: Boolean diff --git a/libraries/tools/new-project-wizard/src/org/jetbrains/kotlin/tools/projectWizard/core/TaskRunningContext.kt b/libraries/tools/new-project-wizard/src/org/jetbrains/kotlin/tools/projectWizard/core/WritingContext.kt similarity index 89% rename from libraries/tools/new-project-wizard/src/org/jetbrains/kotlin/tools/projectWizard/core/TaskRunningContext.kt rename to libraries/tools/new-project-wizard/src/org/jetbrains/kotlin/tools/projectWizard/core/WritingContext.kt index de3f8f7f6ac..48e7b2228fc 100644 --- a/libraries/tools/new-project-wizard/src/org/jetbrains/kotlin/tools/projectWizard/core/TaskRunningContext.kt +++ b/libraries/tools/new-project-wizard/src/org/jetbrains/kotlin/tools/projectWizard/core/WritingContext.kt @@ -5,15 +5,15 @@ import org.jetbrains.kotlin.tools.projectWizard.core.entity.Task1 import org.jetbrains.kotlin.tools.projectWizard.core.entity.Task1Reference import org.jetbrains.kotlin.tools.projectWizard.core.service.ServicesManager -class TaskRunningContext( +class WritingContext( context: Context, servicesManager: ServicesManager, isUnitTestMode: Boolean -) : ValuesReadingContext(context, servicesManager, isUnitTestMode) { +) : ReadingContext(context, servicesManager, isUnitTestMode) { fun Task1Reference.execute(value: A): TaskResult { @Suppress("UNCHECKED_CAST") val task = context.taskContext.getEntity(this) as Task1 - return task.action(this@TaskRunningContext, value) + return task.action(this@WritingContext, value) } inline fun PropertyReference.update( diff --git a/libraries/tools/new-project-wizard/src/org/jetbrains/kotlin/tools/projectWizard/core/entity/Setting.kt b/libraries/tools/new-project-wizard/src/org/jetbrains/kotlin/tools/projectWizard/core/entity/Setting.kt index af4f86dc422..b7c8e15f970 100644 --- a/libraries/tools/new-project-wizard/src/org/jetbrains/kotlin/tools/projectWizard/core/entity/Setting.kt +++ b/libraries/tools/new-project-wizard/src/org/jetbrains/kotlin/tools/projectWizard/core/entity/Setting.kt @@ -131,7 +131,7 @@ class SettingContext(val onUpdated: (SettingReference<*, *>) -> Unit) { onUpdated(reference) } - fun ValuesReadingContext.initPluginSettings(settings: List>) { + fun ReadingContext.initPluginSettings(settings: List>) { for (setting in settings) { setting.savedOrDefaultValue?.let { values[setting.path] = it } } @@ -215,7 +215,7 @@ abstract class SettingBuilder>( this.validator = this.validator and validator } - fun validate(validator: ValuesReadingContext.(V) -> ValidationResult) { + fun validate(validator: ReadingContext.(V) -> ValidationResult) { this.validator = this.validator and settingValidator(validator) } @@ -318,7 +318,7 @@ class DropDownSettingType( } typealias DropDownSettingTypeFilter = - ValuesReadingContext.(SettingReference>, V) -> Boolean + ReadingContext.(SettingReference>, V) -> Boolean class ValueSettingType( diff --git a/libraries/tools/new-project-wizard/src/org/jetbrains/kotlin/tools/projectWizard/core/entity/SettingValidator.kt b/libraries/tools/new-project-wizard/src/org/jetbrains/kotlin/tools/projectWizard/core/entity/SettingValidator.kt index 3370f0627ea..2125c1dd7c8 100644 --- a/libraries/tools/new-project-wizard/src/org/jetbrains/kotlin/tools/projectWizard/core/entity/SettingValidator.kt +++ b/libraries/tools/new-project-wizard/src/org/jetbrains/kotlin/tools/projectWizard/core/entity/SettingValidator.kt @@ -3,20 +3,20 @@ package org.jetbrains.kotlin.tools.projectWizard.core.entity import org.jetbrains.kotlin.tools.projectWizard.core.Failure import org.jetbrains.kotlin.tools.projectWizard.core.UNIT_SUCCESS import org.jetbrains.kotlin.tools.projectWizard.core.ValidationError -import org.jetbrains.kotlin.tools.projectWizard.core.ValuesReadingContext +import org.jetbrains.kotlin.tools.projectWizard.core.ReadingContext -inline class SettingValidator(val validate: ValuesReadingContext.(V) -> ValidationResult) { +inline class SettingValidator(val validate: ReadingContext.(V) -> ValidationResult) { infix fun and(other: SettingValidator) = SettingValidator { value -> validate(value) and other.validate(this, value) } - operator fun ValuesReadingContext.invoke(value: V) = validate(value) + operator fun ReadingContext.invoke(value: V) = validate(value) } -fun settingValidator(validator: ValuesReadingContext.(V) -> ValidationResult) = +fun settingValidator(validator: ReadingContext.(V) -> ValidationResult) = SettingValidator(validator) -fun inValidatorContext(validator: ValuesReadingContext.(V) -> SettingValidator) = +fun inValidatorContext(validator: ReadingContext.(V) -> SettingValidator) = SettingValidator { value -> validator(value).validate(this, value) } @@ -96,7 +96,7 @@ interface Validatable { val validator: SettingValidator<@UnsafeVariance V> } -fun > ValuesReadingContext.validateList(list: List) = settingValidator { +fun > ReadingContext.validateList(list: List) = settingValidator { list.fold(ValidationResult.OK as ValidationResult) { result, value -> result and value.validator.validate(this, value).withTarget(value) } diff --git a/libraries/tools/new-project-wizard/src/org/jetbrains/kotlin/tools/projectWizard/core/entity/Task.kt b/libraries/tools/new-project-wizard/src/org/jetbrains/kotlin/tools/projectWizard/core/entity/Task.kt index a0d4114e139..bd09d90d469 100644 --- a/libraries/tools/new-project-wizard/src/org/jetbrains/kotlin/tools/projectWizard/core/entity/Task.kt +++ b/libraries/tools/new-project-wizard/src/org/jetbrains/kotlin/tools/projectWizard/core/entity/Task.kt @@ -14,12 +14,12 @@ sealed class Task : EntityBase() data class Task1( override val path: String, - val action: TaskRunningContext.(A) -> TaskResult + val action: WritingContext.(A) -> TaskResult ) : Task() { class Builder(private val name: String) { - private var action: TaskRunningContext.(A) -> TaskResult = { Failure() } + private var action: WritingContext.(A) -> TaskResult = { Failure() } - fun withAction(action: TaskRunningContext.(A) -> TaskResult) { + fun withAction(action: WritingContext.(A) -> TaskResult) { this.action = action } @@ -38,7 +38,7 @@ data class Task1( data class PipelineTask( override val path: String, - val action: TaskRunningContext.() -> TaskResult, + val action: WritingContext.() -> TaskResult, val before: List, val after: List, val phase: GenerationPhase, @@ -49,7 +49,7 @@ data class PipelineTask( private val name: String, private val phase: GenerationPhase ) { - private var action: TaskRunningContext.() -> TaskResult = { UNIT_SUCCESS } + private var action: WritingContext.() -> TaskResult = { UNIT_SUCCESS } private val before = mutableListOf() private val after = mutableListOf() @@ -57,7 +57,7 @@ data class PipelineTask( var title: String? = null - fun withAction(action: TaskRunningContext.() -> TaskResult) { + fun withAction(action: WritingContext.() -> TaskResult) { this.action = action } diff --git a/libraries/tools/new-project-wizard/src/org/jetbrains/kotlin/tools/projectWizard/core/service/BuildSystemAvailabilityWizardService.kt b/libraries/tools/new-project-wizard/src/org/jetbrains/kotlin/tools/projectWizard/core/service/BuildSystemAvailabilityWizardService.kt index 95fd4c994f8..f274a6811af 100644 --- a/libraries/tools/new-project-wizard/src/org/jetbrains/kotlin/tools/projectWizard/core/service/BuildSystemAvailabilityWizardService.kt +++ b/libraries/tools/new-project-wizard/src/org/jetbrains/kotlin/tools/projectWizard/core/service/BuildSystemAvailabilityWizardService.kt @@ -5,14 +5,14 @@ package org.jetbrains.kotlin.tools.projectWizard.core.service -import org.jetbrains.kotlin.tools.projectWizard.core.ValuesReadingContext +import org.jetbrains.kotlin.tools.projectWizard.core.ReadingContext import org.jetbrains.kotlin.tools.projectWizard.plugins.buildSystem.BuildSystemType interface BuildSystemAvailabilityWizardService : WizardService { fun isAvailable(buildSystemType: BuildSystemType): Boolean } -fun ValuesReadingContext.isBuildSystemAvailable(buildSystemType: BuildSystemType) = +fun ReadingContext.isBuildSystemAvailable(buildSystemType: BuildSystemType) = service().isAvailable(buildSystemType) class BuildSystemAvailabilityWizardServiceImpl : BuildSystemAvailabilityWizardService, IdeaIndependentWizardService { diff --git a/libraries/tools/new-project-wizard/src/org/jetbrains/kotlin/tools/projectWizard/core/service/RunConfigurationsService.kt b/libraries/tools/new-project-wizard/src/org/jetbrains/kotlin/tools/projectWizard/core/service/RunConfigurationsService.kt index 7e9f44432f9..a4d8cc8ddc4 100644 --- a/libraries/tools/new-project-wizard/src/org/jetbrains/kotlin/tools/projectWizard/core/service/RunConfigurationsService.kt +++ b/libraries/tools/new-project-wizard/src/org/jetbrains/kotlin/tools/projectWizard/core/service/RunConfigurationsService.kt @@ -6,12 +6,12 @@ package org.jetbrains.kotlin.tools.projectWizard.core.service import org.jetbrains.kotlin.tools.projectWizard.WizardRunConfiguration -import org.jetbrains.kotlin.tools.projectWizard.core.ValuesReadingContext +import org.jetbrains.kotlin.tools.projectWizard.core.ReadingContext interface RunConfigurationsService : WizardService { - fun ValuesReadingContext.addRunConfigurations(configurations: List) + fun ReadingContext.addRunConfigurations(configurations: List) } class RunConfigurationsServiceImpl : RunConfigurationsService, IdeaIndependentWizardService { - override fun ValuesReadingContext.addRunConfigurations(configurations: List) = Unit + override fun ReadingContext.addRunConfigurations(configurations: List) = Unit } \ No newline at end of file diff --git a/libraries/tools/new-project-wizard/src/org/jetbrains/kotlin/tools/projectWizard/moduleConfigurators/AndroidSinglePlatformModuleConfigurator.kt b/libraries/tools/new-project-wizard/src/org/jetbrains/kotlin/tools/projectWizard/moduleConfigurators/AndroidSinglePlatformModuleConfigurator.kt index da8f888a3c2..048fb7a31ca 100644 --- a/libraries/tools/new-project-wizard/src/org/jetbrains/kotlin/tools/projectWizard/moduleConfigurators/AndroidSinglePlatformModuleConfigurator.kt +++ b/libraries/tools/new-project-wizard/src/org/jetbrains/kotlin/tools/projectWizard/moduleConfigurators/AndroidSinglePlatformModuleConfigurator.kt @@ -12,7 +12,6 @@ import org.jetbrains.kotlin.tools.projectWizard.ir.buildsystem.gradle.BuildScrip import org.jetbrains.kotlin.tools.projectWizard.ir.buildsystem.gradle.RawGradleIR import org.jetbrains.kotlin.tools.projectWizard.library.MavenArtifact import org.jetbrains.kotlin.tools.projectWizard.plugins.AndroidPlugin -import org.jetbrains.kotlin.tools.projectWizard.plugins.buildSystem.gradle.GradlePlugin import org.jetbrains.kotlin.tools.projectWizard.plugins.kotlin.ModuleConfigurationData import org.jetbrains.kotlin.tools.projectWizard.plugins.kotlin.ModuleType import org.jetbrains.kotlin.tools.projectWizard.plugins.templates.TemplatesPlugin @@ -44,7 +43,7 @@ object AndroidSinglePlatformModuleConfigurator : ModuleConfiguratorWithSettings( } - override fun ValuesReadingContext.createBuildFileIRs( + override fun ReadingContext.createBuildFileIRs( configurationData: ModuleConfigurationData, module: Module ) = @@ -73,7 +72,7 @@ object AndroidSinglePlatformModuleConfigurator : ModuleConfiguratorWithSettings( ).map(::BuildScriptDependencyIR) } - override fun TaskRunningContext.runArbitraryTask( + override fun WritingContext.runArbitraryTask( configurationData: ModuleConfigurationData, module: Module, modulePath: Path @@ -88,7 +87,7 @@ object AndroidSinglePlatformModuleConfigurator : ModuleConfiguratorWithSettings( ) } - override fun ValuesReadingContext.createModuleIRs(configurationData: ModuleConfigurationData, module: Module): List = + override fun ReadingContext.createModuleIRs(configurationData: ModuleConfigurationData, module: Module): List = buildList { +ArtifactBasedLibraryDependencyIR( MavenArtifact(DefaultRepository.GOOGLE, "androidx.appcompat", "appcompat"), diff --git a/libraries/tools/new-project-wizard/src/org/jetbrains/kotlin/tools/projectWizard/moduleConfigurators/JsModuleConfigurator.kt b/libraries/tools/new-project-wizard/src/org/jetbrains/kotlin/tools/projectWizard/moduleConfigurators/JsModuleConfigurator.kt index 543e18403cf..e6bdd1a47e5 100644 --- a/libraries/tools/new-project-wizard/src/org/jetbrains/kotlin/tools/projectWizard/moduleConfigurators/JsModuleConfigurator.kt +++ b/libraries/tools/new-project-wizard/src/org/jetbrains/kotlin/tools/projectWizard/moduleConfigurators/JsModuleConfigurator.kt @@ -5,7 +5,7 @@ package org.jetbrains.kotlin.tools.projectWizard.moduleConfigurators -import org.jetbrains.kotlin.tools.projectWizard.core.ValuesReadingContext +import org.jetbrains.kotlin.tools.projectWizard.core.ReadingContext import org.jetbrains.kotlin.tools.projectWizard.core.buildList import org.jetbrains.kotlin.tools.projectWizard.ir.buildsystem.BuildSystemIR import org.jetbrains.kotlin.tools.projectWizard.ir.buildsystem.KotlinBuildSystemPluginIR @@ -35,7 +35,7 @@ object JsSingleplatformModuleConfigurator : JSConfigurator, ModuleConfiguratorWi version = configurationData.kotlinVersion ) - override fun ValuesReadingContext.createBuildFileIRs( + override fun ReadingContext.createBuildFileIRs( configurationData: ModuleConfigurationData, module: Module ): List = buildList { 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 ff069240589..b93da6d5394 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 @@ -177,7 +177,7 @@ val ModuleConfigurator.settings else -> emptyList() } -fun ValuesReadingContext.allSettingsOfModuleConfigurator(moduleConfigurator: ModuleConfigurator) = when (moduleConfigurator) { +fun ReadingContext.allSettingsOfModuleConfigurator(moduleConfigurator: ModuleConfigurator) = when (moduleConfigurator) { is ModuleConfiguratorWithSettings -> buildList>> { +moduleConfigurator.getConfiguratorSettings() +moduleConfigurator.getPluginSettings().map { it.pluginSetting } @@ -201,13 +201,13 @@ interface ModuleConfigurator : DisplayableSettingItem, EntitiesOwnerDescriptor { val suggestedModuleName: String? get() = null val canContainSubModules: Boolean get() = false - fun ValuesReadingContext.createBuildFileIRs( + fun ReadingContext.createBuildFileIRs( configurationData: ModuleConfigurationData, module: Module ): List = emptyList() - fun ValuesReadingContext.createModuleIRs(configurationData: ModuleConfigurationData, module: Module): List = + fun ReadingContext.createModuleIRs(configurationData: ModuleConfigurationData, module: Module): List = emptyList() fun createStdlibType(configurationData: ModuleConfigurationData, module: Module): StdlibType? = @@ -217,7 +217,7 @@ interface ModuleConfigurator : DisplayableSettingItem, EntitiesOwnerDescriptor { fun createKotlinPluginIR(configurationData: ModuleConfigurationData, module: Module): KotlinBuildSystemPluginIR? = null - fun TaskRunningContext.runArbitraryTask( + fun WritingContext.runArbitraryTask( configurationData: ModuleConfigurationData, module: Module, modulePath: Path diff --git a/libraries/tools/new-project-wizard/src/org/jetbrains/kotlin/tools/projectWizard/moduleConfigurators/ModuleConfiguratorWithTests.kt b/libraries/tools/new-project-wizard/src/org/jetbrains/kotlin/tools/projectWizard/moduleConfigurators/ModuleConfiguratorWithTests.kt index ada6a29ad83..a565d20dbb8 100644 --- a/libraries/tools/new-project-wizard/src/org/jetbrains/kotlin/tools/projectWizard/moduleConfigurators/ModuleConfiguratorWithTests.kt +++ b/libraries/tools/new-project-wizard/src/org/jetbrains/kotlin/tools/projectWizard/moduleConfigurators/ModuleConfiguratorWithTests.kt @@ -5,7 +5,7 @@ package org.jetbrains.kotlin.tools.projectWizard.moduleConfigurators -import org.jetbrains.kotlin.tools.projectWizard.core.ValuesReadingContext +import org.jetbrains.kotlin.tools.projectWizard.core.ReadingContext import org.jetbrains.kotlin.tools.projectWizard.core.entity.ModuleConfiguratorSetting import org.jetbrains.kotlin.tools.projectWizard.core.entity.ModuleConfiguratorSettingReference import org.jetbrains.kotlin.tools.projectWizard.core.safeAs @@ -37,7 +37,7 @@ abstract class ModuleConfiguratorWithTests : ModuleConfiguratorWithSettings() { abstract fun defaultTestFramework(): KotlinTestFramework - override fun ValuesReadingContext.createModuleIRs(configurationData: ModuleConfigurationData, module: Module): List = + override fun ReadingContext.createModuleIRs(configurationData: ModuleConfigurationData, module: Module): List = withSettingsOf(module) { testFramework.reference.settingValue.dependencyNames.map { dependencyName -> KotlinArbitraryDependencyIR( diff --git a/libraries/tools/new-project-wizard/src/org/jetbrains/kotlin/tools/projectWizard/moduleConfigurators/NativeTargetConfigurator.kt b/libraries/tools/new-project-wizard/src/org/jetbrains/kotlin/tools/projectWizard/moduleConfigurators/NativeTargetConfigurator.kt index a38ee0cf5c4..381444ded03 100644 --- a/libraries/tools/new-project-wizard/src/org/jetbrains/kotlin/tools/projectWizard/moduleConfigurators/NativeTargetConfigurator.kt +++ b/libraries/tools/new-project-wizard/src/org/jetbrains/kotlin/tools/projectWizard/moduleConfigurators/NativeTargetConfigurator.kt @@ -1,6 +1,6 @@ package org.jetbrains.kotlin.tools.projectWizard.moduleConfigurators -import org.jetbrains.kotlin.tools.projectWizard.core.ValuesReadingContext +import org.jetbrains.kotlin.tools.projectWizard.core.ReadingContext import org.jetbrains.kotlin.tools.projectWizard.core.buildList import org.jetbrains.kotlin.tools.projectWizard.ir.buildsystem.BuildSystemIR import org.jetbrains.kotlin.tools.projectWizard.ir.buildsystem.gradle.CreateGradleValueIR @@ -34,7 +34,7 @@ object NativeForCurrentSystemTarget : NativeTargetConfigurator, SingleCoexistenc override val text = "For Current System" - override fun ValuesReadingContext.createTargetIrs(module: Module): List { + override fun ReadingContext.createTargetIrs(module: Module): List { val moduleName = module.name val variableName = "${moduleName}Target" @@ -74,7 +74,7 @@ object NativeForCurrentSystemTarget : NativeTargetConfigurator, SingleCoexistenc } } - override fun ValuesReadingContext.createBuildFileIRs( + override fun ReadingContext.createBuildFileIRs( configurationData: ModuleConfigurationData, module: Module ): List = buildList { diff --git a/libraries/tools/new-project-wizard/src/org/jetbrains/kotlin/tools/projectWizard/moduleConfigurators/TargetConfigurator.kt b/libraries/tools/new-project-wizard/src/org/jetbrains/kotlin/tools/projectWizard/moduleConfigurators/TargetConfigurator.kt index 23926ffb629..85b404aaa38 100644 --- a/libraries/tools/new-project-wizard/src/org/jetbrains/kotlin/tools/projectWizard/moduleConfigurators/TargetConfigurator.kt +++ b/libraries/tools/new-project-wizard/src/org/jetbrains/kotlin/tools/projectWizard/moduleConfigurators/TargetConfigurator.kt @@ -1,6 +1,6 @@ package org.jetbrains.kotlin.tools.projectWizard.moduleConfigurators -import org.jetbrains.kotlin.tools.projectWizard.core.ValuesReadingContext +import org.jetbrains.kotlin.tools.projectWizard.core.ReadingContext import org.jetbrains.kotlin.tools.projectWizard.core.buildList import org.jetbrains.kotlin.tools.projectWizard.ir.buildsystem.BuildSystemIR import org.jetbrains.kotlin.tools.projectWizard.ir.buildsystem.gradle.* @@ -10,7 +10,6 @@ import org.jetbrains.kotlin.tools.projectWizard.plugins.buildSystem.BuildSystemT import org.jetbrains.kotlin.tools.projectWizard.plugins.buildSystem.buildSystemType import org.jetbrains.kotlin.tools.projectWizard.plugins.buildSystem.isGradle import org.jetbrains.kotlin.tools.projectWizard.plugins.kotlin.ModuleSubType -import org.jetbrains.kotlin.tools.projectWizard.plugins.kotlin.ModuleType import org.jetbrains.kotlin.tools.projectWizard.settings.buildsystem.Module import org.jetbrains.kotlin.tools.projectWizard.settings.buildsystem.ModuleKind @@ -20,8 +19,8 @@ interface TargetConfigurator : ModuleConfiguratorWithModuleType { fun canCoexistsWith(other: List): Boolean = true - fun ValuesReadingContext.createTargetIrs(module: Module): List - fun ValuesReadingContext.createInnerTargetIrs(module: Module): List = emptyList() + fun ReadingContext.createTargetIrs(module: Module): List + fun ReadingContext.createInnerTargetIrs(module: Module): List = emptyList() } abstract class TargetConfiguratorWithTests : ModuleConfiguratorWithTests(), TargetConfigurator @@ -40,7 +39,7 @@ interface SimpleTargetConfigurator : TargetConfigurator { override val suggestedModuleName: String? get() = moduleSubType.name - override fun ValuesReadingContext.createTargetIrs(module: Module): List = buildList { + override fun ReadingContext.createTargetIrs(module: Module): List = buildList { +DefaultTargetConfigurationIR( module.createTargetAccessIr(moduleSubType), createInnerTargetIrs(module) @@ -64,7 +63,7 @@ object JsBrowserTargetConfigurator : JsTargetConfigurator, ModuleConfiguratorWit override fun defaultTestFramework(): KotlinTestFramework = KotlinTestFramework.JS - override fun ValuesReadingContext.createTargetIrs(module: Module): List = buildList { + override fun ReadingContext.createTargetIrs(module: Module): List = buildList { +DefaultTargetConfigurationIR( module.createTargetAccessIr(ModuleSubType.js), buildList { @@ -82,7 +81,7 @@ object JsNodeTargetConfigurator : JsTargetConfigurator { override val suggestedModuleName = "nodeJs" - override fun ValuesReadingContext.createTargetIrs(module: Module): List = buildList { + override fun ReadingContext.createTargetIrs(module: Module): List = buildList { +DefaultTargetConfigurationIR( module.createTargetAccessIr(ModuleSubType.js), buildList { @@ -110,7 +109,7 @@ object JvmTargetConfigurator : JvmModuleConfigurator(), override fun defaultTestFramework(): KotlinTestFramework = KotlinTestFramework.JUNIT4 - override fun ValuesReadingContext.createInnerTargetIrs(module: Module): List = buildList { + override fun ReadingContext.createInnerTargetIrs(module: Module): List = buildList { val targetVersionValue = withSettingsOf(module) { targetJvmVersion.reference.settingValue.value } when { buildSystemType.isGradle -> { diff --git a/libraries/tools/new-project-wizard/src/org/jetbrains/kotlin/tools/projectWizard/moduleConfigurators/configurators.kt b/libraries/tools/new-project-wizard/src/org/jetbrains/kotlin/tools/projectWizard/moduleConfigurators/configurators.kt index 0a931f0bf56..52ef7b785c5 100644 --- a/libraries/tools/new-project-wizard/src/org/jetbrains/kotlin/tools/projectWizard/moduleConfigurators/configurators.kt +++ b/libraries/tools/new-project-wizard/src/org/jetbrains/kotlin/tools/projectWizard/moduleConfigurators/configurators.kt @@ -1,6 +1,6 @@ package org.jetbrains.kotlin.tools.projectWizard.moduleConfigurators -import org.jetbrains.kotlin.tools.projectWizard.core.ValuesReadingContext +import org.jetbrains.kotlin.tools.projectWizard.core.ReadingContext import org.jetbrains.kotlin.tools.projectWizard.core.entity.ModuleConfiguratorSetting import org.jetbrains.kotlin.tools.projectWizard.core.safeAs import org.jetbrains.kotlin.tools.projectWizard.ir.buildsystem.BuildSystemIR @@ -84,7 +84,7 @@ object JvmSinglePlatformModuleConfigurator : JvmModuleConfigurator(), ) - override fun ValuesReadingContext.createBuildFileIRs(configurationData: ModuleConfigurationData, module: Module): List = + override fun ReadingContext.createBuildFileIRs(configurationData: ModuleConfigurationData, module: Module): List = buildList { +GradleImportIR("org.jetbrains.kotlin.gradle.tasks.KotlinCompile") diff --git a/libraries/tools/new-project-wizard/src/org/jetbrains/kotlin/tools/projectWizard/plugins/StructurePlugin.kt b/libraries/tools/new-project-wizard/src/org/jetbrains/kotlin/tools/projectWizard/plugins/StructurePlugin.kt index 0b1012c7ee1..a3cf25d4527 100644 --- a/libraries/tools/new-project-wizard/src/org/jetbrains/kotlin/tools/projectWizard/plugins/StructurePlugin.kt +++ b/libraries/tools/new-project-wizard/src/org/jetbrains/kotlin/tools/projectWizard/plugins/StructurePlugin.kt @@ -37,14 +37,14 @@ class StructurePlugin(context: Context) : Plugin(context) { } } -val ValuesReadingContext.projectPath +val ReadingContext.projectPath get() = StructurePlugin::projectPath.reference.settingValue -val ValuesReadingContext.projectName +val ReadingContext.projectName get() = StructurePlugin::name.reference.settingValue -fun TaskRunningContext.pomIR() = PomIR( +fun WritingContext.pomIR() = PomIR( artifactId = StructurePlugin::artifactId.reference.settingValue, groupId = StructurePlugin::groupId.reference.settingValue, version = Version.fromString(StructurePlugin::version.reference.settingValue) diff --git a/libraries/tools/new-project-wizard/src/org/jetbrains/kotlin/tools/projectWizard/plugins/buildSystem/BuildSystemPlugin.kt b/libraries/tools/new-project-wizard/src/org/jetbrains/kotlin/tools/projectWizard/plugins/buildSystem/BuildSystemPlugin.kt index 20a100c0b51..93d0ab60259 100644 --- a/libraries/tools/new-project-wizard/src/org/jetbrains/kotlin/tools/projectWizard/plugins/buildSystem/BuildSystemPlugin.kt +++ b/libraries/tools/new-project-wizard/src/org/jetbrains/kotlin/tools/projectWizard/plugins/buildSystem/BuildSystemPlugin.kt @@ -15,12 +15,10 @@ import org.jetbrains.kotlin.tools.projectWizard.plugins.kotlin.ProjectKind import org.jetbrains.kotlin.tools.projectWizard.plugins.printer.BuildFilePrinter import org.jetbrains.kotlin.tools.projectWizard.plugins.printer.printBuildFile import org.jetbrains.kotlin.tools.projectWizard.plugins.projectPath -import org.jetbrains.kotlin.tools.projectWizard.plugins.templates.TemplatePlugin import org.jetbrains.kotlin.tools.projectWizard.plugins.templates.TemplatesPlugin import org.jetbrains.kotlin.tools.projectWizard.settings.DisplayableSettingItem import org.jetbrains.kotlin.tools.projectWizard.settings.buildsystem.Repository import org.jetbrains.kotlin.tools.projectWizard.settings.buildsystem.updateBuildFiles -import java.nio.file.Path abstract class BuildSystemPlugin(context: Context) : Plugin(context) { val type by enumSetting("Build System", GenerationPhase.FIRST_STEP) { @@ -127,12 +125,12 @@ val BuildSystemType.isGradle get() = this == BuildSystemType.GradleGroovyDsl || this == BuildSystemType.GradleKotlinDsl -val TaskRunningContext.allModules +val WritingContext.allModules get() = BuildSystemPlugin::buildFiles.propertyValue.flatMap { buildFile -> buildFile.modules.modules } -val TaskRunningContext.allModulesPaths +val WritingContext.allModulesPaths get() = BuildSystemPlugin::buildFiles.propertyValue.flatMap { buildFile -> val paths = when (val structure = buildFile.modules) { is MultiplatformModulesStructureIR -> listOf(buildFile.directoryPath) @@ -147,6 +145,6 @@ val TaskRunningContext.allModulesPaths } -val ValuesReadingContext.buildSystemType: BuildSystemType +val ReadingContext.buildSystemType: BuildSystemType get() = BuildSystemPlugin::type.reference.settingValue diff --git a/libraries/tools/new-project-wizard/src/org/jetbrains/kotlin/tools/projectWizard/plugins/buildSystem/gradle/GradlePlugin.kt b/libraries/tools/new-project-wizard/src/org/jetbrains/kotlin/tools/projectWizard/plugins/buildSystem/gradle/GradlePlugin.kt index 1eabe3cd4b7..cd9d153bfb8 100644 --- a/libraries/tools/new-project-wizard/src/org/jetbrains/kotlin/tools/projectWizard/plugins/buildSystem/gradle/GradlePlugin.kt +++ b/libraries/tools/new-project-wizard/src/org/jetbrains/kotlin/tools/projectWizard/plugins/buildSystem/gradle/GradlePlugin.kt @@ -3,11 +3,9 @@ package org.jetbrains.kotlin.tools.projectWizard.plugins.buildSystem.gradle import org.jetbrains.kotlin.tools.projectWizard.core.* import org.jetbrains.kotlin.tools.projectWizard.core.entity.reference import org.jetbrains.kotlin.tools.projectWizard.core.service.FileSystemWizardService -import org.jetbrains.kotlin.tools.projectWizard.ir.buildsystem.BuildFileIR import org.jetbrains.kotlin.tools.projectWizard.ir.buildsystem.RepositoryIR import org.jetbrains.kotlin.tools.projectWizard.ir.buildsystem.gradle.SettingsGradleFileIR import org.jetbrains.kotlin.tools.projectWizard.ir.buildsystem.render -import org.jetbrains.kotlin.tools.projectWizard.ir.buildsystem.withIrs import org.jetbrains.kotlin.tools.projectWizard.phases.GenerationPhase import org.jetbrains.kotlin.tools.projectWizard.plugins.StructurePlugin import org.jetbrains.kotlin.tools.projectWizard.plugins.buildSystem.* @@ -17,7 +15,6 @@ import org.jetbrains.kotlin.tools.projectWizard.plugins.printer.printBuildFile import org.jetbrains.kotlin.tools.projectWizard.plugins.projectPath import org.jetbrains.kotlin.tools.projectWizard.plugins.templates.TemplatesPlugin import org.jetbrains.kotlin.tools.projectWizard.settings.buildsystem.DefaultRepository -import org.jetbrains.kotlin.tools.projectWizard.settings.buildsystem.Repositories import org.jetbrains.kotlin.tools.projectWizard.settings.version.Version import org.jetbrains.kotlin.tools.projectWizard.templates.FileTemplate import org.jetbrains.kotlin.tools.projectWizard.templates.FileTemplateDescriptor @@ -143,7 +140,7 @@ abstract class GradlePlugin(context: Context) : BuildSystemPlugin(context) { } } -val ValuesReadingContext.settingsGradleBuildFileData +val ReadingContext.settingsGradleBuildFileData get() = when (buildSystemType) { BuildSystemType.GradleKotlinDsl -> BuildFileData( diff --git a/libraries/tools/new-project-wizard/src/org/jetbrains/kotlin/tools/projectWizard/plugins/kotlin/KotlinPlugin.kt b/libraries/tools/new-project-wizard/src/org/jetbrains/kotlin/tools/projectWizard/plugins/kotlin/KotlinPlugin.kt index c06613857d6..a90c5a6f82e 100644 --- a/libraries/tools/new-project-wizard/src/org/jetbrains/kotlin/tools/projectWizard/plugins/kotlin/KotlinPlugin.kt +++ b/libraries/tools/new-project-wizard/src/org/jetbrains/kotlin/tools/projectWizard/plugins/kotlin/KotlinPlugin.kt @@ -10,7 +10,6 @@ import org.jetbrains.kotlin.tools.projectWizard.ir.buildsystem.* import org.jetbrains.kotlin.tools.projectWizard.phases.GenerationPhase import org.jetbrains.kotlin.tools.projectWizard.plugins.StructurePlugin import org.jetbrains.kotlin.tools.projectWizard.plugins.buildSystem.BuildSystemPlugin -import org.jetbrains.kotlin.tools.projectWizard.plugins.buildSystem.BuildSystemType import org.jetbrains.kotlin.tools.projectWizard.plugins.buildSystem.buildSystemType import org.jetbrains.kotlin.tools.projectWizard.plugins.pomIR import org.jetbrains.kotlin.tools.projectWizard.plugins.projectPath @@ -98,7 +97,7 @@ class KotlinPlugin(context: Context) : Plugin(context) { } - private fun TaskRunningContext.createBuildFiles(modules: List): TaskResult> = + private fun WritingContext.createBuildFiles(modules: List): TaskResult> = with( ModulesToIRsConverter( ModuleConfigurationData( diff --git a/libraries/tools/new-project-wizard/src/org/jetbrains/kotlin/tools/projectWizard/plugins/kotlin/ModulesToIRsConverter.kt b/libraries/tools/new-project-wizard/src/org/jetbrains/kotlin/tools/projectWizard/plugins/kotlin/ModulesToIRsConverter.kt index 57af2ecc06f..7fba92ae341 100644 --- a/libraries/tools/new-project-wizard/src/org/jetbrains/kotlin/tools/projectWizard/plugins/kotlin/ModulesToIRsConverter.kt +++ b/libraries/tools/new-project-wizard/src/org/jetbrains/kotlin/tools/projectWizard/plugins/kotlin/ModulesToIRsConverter.kt @@ -17,7 +17,7 @@ data class ModuleConfigurationData( val kotlinVersion: Version, val buildSystemType: BuildSystemType, val pomIr: PomIR, - val taskRunningContext: TaskRunningContext + val writingContext: WritingContext ) { val allModules = rootModules.withAllSubModules() } @@ -57,7 +57,7 @@ class ModulesToIRsConverter( else -> rootPath / module.name } - fun ValuesReadingContext.createBuildFiles(): TaskResult> = with(data) { + fun ReadingContext.createBuildFiles(): TaskResult> = with(data) { val needExplicitRootBuildFile = !needFlattening val parentModuleHasTransitivelySpecifiedKotlinVersion = allModules.any { modules -> modules.configurator == AndroidSinglePlatformModuleConfigurator @@ -82,7 +82,7 @@ class ModulesToIRsConverter( } - private fun ValuesReadingContext.createBuildFileForModule( + private fun ReadingContext.createBuildFileForModule( module: Module, state: ModulesToIrsState ): TaskResult> = when (module.kind) { @@ -91,12 +91,12 @@ class ModulesToIRsConverter( else -> Success(emptyList()) } - private fun ValuesReadingContext.createSinglePlatformModule( + private fun ReadingContext.createSinglePlatformModule( module: Module, state: ModulesToIrsState ): TaskResult> = with(data) { val modulePath = calculatePathForModule(module, state.parentPath) - taskRunningContext.mutateProjectStructureByModuleConfigurator(module, modulePath) + writingContext.mutateProjectStructureByModuleConfigurator(module, modulePath) val configurator = module.configurator val dependenciesIRs = buildList { +module.sourcesets.flatMap { sourceset -> @@ -149,12 +149,12 @@ class ModulesToIRsConverter( }.map { it.flatten() + buildFileIr } } - private fun ValuesReadingContext.createMultiplatformModule( + private fun ReadingContext.createMultiplatformModule( module: Module, state: ModulesToIrsState ): TaskResult> = with(data) { val modulePath = calculatePathForModule(module, state.parentPath) - taskRunningContext.mutateProjectStructureByModuleConfigurator(module, modulePath) + writingContext.mutateProjectStructureByModuleConfigurator(module, modulePath) val targetIrs = module.subModules.flatMap { subModule -> with(subModule.configurator as TargetConfigurator) { createTargetIrs(subModule) } } @@ -179,7 +179,7 @@ class ModulesToIRsConverter( ).asSingletonList().asSuccess() } - private fun ValuesReadingContext.createTargetSourceset(target: Module, modulePath: Path): MultiplatformModuleIR { + private fun ReadingContext.createTargetSourceset(target: Module, modulePath: Path): MultiplatformModuleIR { val sourcesetss = target.sourcesets.map { sourceset -> val sourcesetName = target.name + sourceset.sourcesetType.name.capitalize() val sourcesetIrs = buildList { @@ -215,7 +215,7 @@ class ModulesToIRsConverter( ) } - private fun TaskRunningContext.mutateProjectStructureByModuleConfigurator( + private fun WritingContext.mutateProjectStructureByModuleConfigurator( module: Module, modulePath: Path ): TaskResult = with(module.configurator) { @@ -223,7 +223,7 @@ class ModulesToIRsConverter( runArbitraryTask(data, module, modulePath) } - private fun ValuesReadingContext.createBuildFileIRs( + private fun ReadingContext.createBuildFileIRs( module: Module, state: ModulesToIrsState ) = buildList { diff --git a/libraries/tools/new-project-wizard/src/org/jetbrains/kotlin/tools/projectWizard/plugins/templates/TemplatesPlugin.kt b/libraries/tools/new-project-wizard/src/org/jetbrains/kotlin/tools/projectWizard/plugins/templates/TemplatesPlugin.kt index 70178c7097d..cebf20cf5df 100644 --- a/libraries/tools/new-project-wizard/src/org/jetbrains/kotlin/tools/projectWizard/plugins/templates/TemplatesPlugin.kt +++ b/libraries/tools/new-project-wizard/src/org/jetbrains/kotlin/tools/projectWizard/plugins/templates/TemplatesPlugin.kt @@ -9,7 +9,6 @@ import org.jetbrains.kotlin.tools.projectWizard.phases.GenerationPhase import org.jetbrains.kotlin.tools.projectWizard.plugins.buildSystem.BuildSystemPlugin import org.jetbrains.kotlin.tools.projectWizard.plugins.kotlin.KotlinPlugin import org.jetbrains.kotlin.tools.projectWizard.plugins.projectName -import org.jetbrains.kotlin.tools.projectWizard.plugins.projectPath import org.jetbrains.kotlin.tools.projectWizard.settings.buildsystem.updateBuildFiles import org.jetbrains.kotlin.tools.projectWizard.templates.* import org.jetbrains.kotlin.tools.projectWizard.transformers.interceptors.InterceptionPoint @@ -106,7 +105,7 @@ class TemplatesPlugin(context: Context) : Plugin(context) { } } - private fun TaskRunningContext.applyFileTemplatesFromSourceset( + private fun WritingContext.applyFileTemplatesFromSourceset( module: ModuleIR, templateEngine: TemplateEngine, interceptionPointSettings: Map, Any> @@ -129,7 +128,7 @@ class TemplatesPlugin(context: Context) : Plugin(context) { }.sequenceIgnore() } - private fun TaskRunningContext.defaultSettings(moduleIR: ModuleIR) = mapOf( + private fun WritingContext.defaultSettings(moduleIR: ModuleIR) = mapOf( "projectName" to projectName, "moduleName" to moduleIR.name ) diff --git a/libraries/tools/new-project-wizard/src/org/jetbrains/kotlin/tools/projectWizard/settings/buildsystem/Module.kt b/libraries/tools/new-project-wizard/src/org/jetbrains/kotlin/tools/projectWizard/settings/buildsystem/Module.kt index bf584fda026..8ffca3c01d3 100644 --- a/libraries/tools/new-project-wizard/src/org/jetbrains/kotlin/tools/projectWizard/settings/buildsystem/Module.kt +++ b/libraries/tools/new-project-wizard/src/org/jetbrains/kotlin/tools/projectWizard/settings/buildsystem/Module.kt @@ -86,7 +86,7 @@ class Module( else -> "Module" } - fun ValuesReadingContext.initDefaultValuesForSettings(context: Context) { + fun ReadingContext.initDefaultValuesForSettings(context: Context) { configurator.safeAs()?.initDefaultValuesFor(this@Module, context) template?.apply { initDefaultValuesFor(this@Module, context) } } diff --git a/libraries/tools/new-project-wizard/src/org/jetbrains/kotlin/tools/projectWizard/settings/buildsystem/Sourceset.kt b/libraries/tools/new-project-wizard/src/org/jetbrains/kotlin/tools/projectWizard/settings/buildsystem/Sourceset.kt index 0e830b4f944..339ae99a4d7 100644 --- a/libraries/tools/new-project-wizard/src/org/jetbrains/kotlin/tools/projectWizard/settings/buildsystem/Sourceset.kt +++ b/libraries/tools/new-project-wizard/src/org/jetbrains/kotlin/tools/projectWizard/settings/buildsystem/Sourceset.kt @@ -4,15 +4,11 @@ import org.jetbrains.kotlin.tools.projectWizard.GeneratedIdentificator import org.jetbrains.kotlin.tools.projectWizard.Identificator import org.jetbrains.kotlin.tools.projectWizard.IdentificatorOwner import org.jetbrains.kotlin.tools.projectWizard.core.* -import org.jetbrains.kotlin.tools.projectWizard.core.TaskRunningContext -import org.jetbrains.kotlin.tools.projectWizard.core.entity.* +import org.jetbrains.kotlin.tools.projectWizard.core.WritingContext import org.jetbrains.kotlin.tools.projectWizard.ir.buildsystem.BuildFileIR import org.jetbrains.kotlin.tools.projectWizard.ir.buildsystem.ModuleIR import org.jetbrains.kotlin.tools.projectWizard.plugins.buildSystem.BuildSystemPlugin -import org.jetbrains.kotlin.tools.projectWizard.plugins.kotlin.ModuleType import org.jetbrains.kotlin.tools.projectWizard.settings.DisplayableSettingItem -import org.jetbrains.kotlin.tools.projectWizard.templates.Template -import org.jetbrains.kotlin.tools.projectWizard.templates.withSettingsOf inline class ModulePath(val parts: List) { fun asString(separator: String = ".") = parts.joinToString(separator) @@ -71,15 +67,15 @@ enum class SourcesetType: DisplayableSettingItem { } -fun TaskRunningContext.updateBuildFiles(action: (BuildFileIR) -> TaskResult): TaskResult = +fun WritingContext.updateBuildFiles(action: (BuildFileIR) -> TaskResult): TaskResult = BuildSystemPlugin::buildFiles.update { buildFiles -> buildFiles.mapSequence(action) } -fun TaskRunningContext.updateModules(action: (ModuleIR) -> TaskResult): TaskResult = +fun WritingContext.updateModules(action: (ModuleIR) -> TaskResult): TaskResult = updateBuildFiles { buildFile -> buildFile.withModulesUpdated { action(it) } } -fun TaskRunningContext.forEachModule(action: (ModuleIR) -> TaskResult): TaskResult = +fun WritingContext.forEachModule(action: (ModuleIR) -> TaskResult): TaskResult = updateModules { moduleIR -> action(moduleIR).map { moduleIR } } \ No newline at end of file diff --git a/libraries/tools/new-project-wizard/src/org/jetbrains/kotlin/tools/projectWizard/templates/ConsoleJvmApplicationTemplate.kt b/libraries/tools/new-project-wizard/src/org/jetbrains/kotlin/tools/projectWizard/templates/ConsoleJvmApplicationTemplate.kt index d8ccf313c70..7cdf2a347f5 100644 --- a/libraries/tools/new-project-wizard/src/org/jetbrains/kotlin/tools/projectWizard/templates/ConsoleJvmApplicationTemplate.kt +++ b/libraries/tools/new-project-wizard/src/org/jetbrains/kotlin/tools/projectWizard/templates/ConsoleJvmApplicationTemplate.kt @@ -1,7 +1,7 @@ package org.jetbrains.kotlin.tools.projectWizard.templates import org.jetbrains.kotlin.tools.projectWizard.core.buildList -import org.jetbrains.kotlin.tools.projectWizard.core.TaskRunningContext +import org.jetbrains.kotlin.tools.projectWizard.core.WritingContext import org.jetbrains.kotlin.tools.projectWizard.core.asPath import org.jetbrains.kotlin.tools.projectWizard.ir.buildsystem.* import org.jetbrains.kotlin.tools.projectWizard.ir.buildsystem.gradle.multiplatform.TargetConfigurationIR @@ -17,7 +17,7 @@ class ConsoleJvmApplicationTemplate : Template() { """.trimIndent() override val moduleTypes: Set = setOf(ModuleType.jvm) - override fun TaskRunningContext.getIrsToAddToBuildFile( + override fun WritingContext.getIrsToAddToBuildFile( module: ModuleIR ) = buildList { +runTaskIrs("MainKt") @@ -26,7 +26,7 @@ class ConsoleJvmApplicationTemplate : Template() { override fun updateTargetIr(module: ModuleIR, targetConfigurationIR: TargetConfigurationIR): TargetConfigurationIR = targetConfigurationIR.addWithJavaIntoJvmTarget() - override fun TaskRunningContext.getFileTemplates(module: ModuleIR) = + override fun WritingContext.getFileTemplates(module: ModuleIR) = buildList { +(FileTemplateDescriptor("$id/main.kt.vm", "main.kt".asPath()) asSrcOf SourcesetType.main) } diff --git a/libraries/tools/new-project-wizard/src/org/jetbrains/kotlin/tools/projectWizard/templates/KtorServerTemplate.kt b/libraries/tools/new-project-wizard/src/org/jetbrains/kotlin/tools/projectWizard/templates/KtorServerTemplate.kt index cae4365e0f3..59a9622d80c 100644 --- a/libraries/tools/new-project-wizard/src/org/jetbrains/kotlin/tools/projectWizard/templates/KtorServerTemplate.kt +++ b/libraries/tools/new-project-wizard/src/org/jetbrains/kotlin/tools/projectWizard/templates/KtorServerTemplate.kt @@ -5,7 +5,7 @@ package org.jetbrains.kotlin.tools.projectWizard.templates -import org.jetbrains.kotlin.tools.projectWizard.core.TaskRunningContext +import org.jetbrains.kotlin.tools.projectWizard.core.WritingContext import org.jetbrains.kotlin.tools.projectWizard.core.asPath import org.jetbrains.kotlin.tools.projectWizard.core.buildList import org.jetbrains.kotlin.tools.projectWizard.core.entity.TemplateSetting @@ -28,7 +28,7 @@ class KtorServerTemplate : Template() { override val moduleTypes: Set = setOf(ModuleType.jvm) override val id: String = "ktorServer" - override fun TaskRunningContext.getRequiredLibraries(module: ModuleIR): List = + override fun WritingContext.getRequiredLibraries(module: ModuleIR): List = withSettingsOf(module.originalModule) { buildList { +ktorArtifactDependency(serverEngine.reference.settingValue.dependencyName) @@ -41,7 +41,7 @@ class KtorServerTemplate : Template() { } } - override fun TaskRunningContext.getIrsToAddToBuildFile(module: ModuleIR): List = buildList { + override fun WritingContext.getIrsToAddToBuildFile(module: ModuleIR): List = buildList { +RepositoryIR(Repositories.KTOR_BINTRAY) +RepositoryIR(DefaultRepository.JCENTER) +runTaskIrs(mainClass = "ServerKt") @@ -50,7 +50,7 @@ class KtorServerTemplate : Template() { override fun updateTargetIr(module: ModuleIR, targetConfigurationIR: TargetConfigurationIR): TargetConfigurationIR = targetConfigurationIR.addWithJavaIntoJvmTarget() - override fun TaskRunningContext.getFileTemplates(module: ModuleIR): List = listOf( + override fun WritingContext.getFileTemplates(module: ModuleIR): List = listOf( FileTemplateDescriptor("$id/server.kt.vm", "server.kt".asPath()) asSrcOf SourcesetType.main ) diff --git a/libraries/tools/new-project-wizard/src/org/jetbrains/kotlin/tools/projectWizard/templates/NativeConsoleApplicationTemplate.kt b/libraries/tools/new-project-wizard/src/org/jetbrains/kotlin/tools/projectWizard/templates/NativeConsoleApplicationTemplate.kt index db00d9dbb1d..e7cf7eb27aa 100644 --- a/libraries/tools/new-project-wizard/src/org/jetbrains/kotlin/tools/projectWizard/templates/NativeConsoleApplicationTemplate.kt +++ b/libraries/tools/new-project-wizard/src/org/jetbrains/kotlin/tools/projectWizard/templates/NativeConsoleApplicationTemplate.kt @@ -5,7 +5,7 @@ package org.jetbrains.kotlin.tools.projectWizard.templates -import org.jetbrains.kotlin.tools.projectWizard.core.TaskRunningContext +import org.jetbrains.kotlin.tools.projectWizard.core.WritingContext import org.jetbrains.kotlin.tools.projectWizard.core.asPath import org.jetbrains.kotlin.tools.projectWizard.core.buildList import org.jetbrains.kotlin.tools.projectWizard.ir.buildsystem.ModuleIR @@ -24,7 +24,7 @@ class NativeConsoleApplicationTemplate : Template() { override fun updateTargetIr(module: ModuleIR, targetConfigurationIR: TargetConfigurationIR): TargetConfigurationIR = targetConfigurationIR.withIrs(NativeTargetInternalIR("main")) - override fun TaskRunningContext.getFileTemplates(module: ModuleIR): List = buildList { + override fun WritingContext.getFileTemplates(module: ModuleIR): List = buildList { +(FileTemplateDescriptor("$id/main.kt.vm", "main.kt".asPath()) asSrcOf SourcesetType.main) } } \ No newline at end of file diff --git a/libraries/tools/new-project-wizard/src/org/jetbrains/kotlin/tools/projectWizard/templates/SimpleJsClientTemplate.kt b/libraries/tools/new-project-wizard/src/org/jetbrains/kotlin/tools/projectWizard/templates/SimpleJsClientTemplate.kt index 0d6bc8ddb84..76a33aaace3 100644 --- a/libraries/tools/new-project-wizard/src/org/jetbrains/kotlin/tools/projectWizard/templates/SimpleJsClientTemplate.kt +++ b/libraries/tools/new-project-wizard/src/org/jetbrains/kotlin/tools/projectWizard/templates/SimpleJsClientTemplate.kt @@ -42,7 +42,7 @@ class SimpleJsClientTemplate : Template() { override val settings: List> = listOf(renderEngine) - override fun ValuesReadingContext.createRunConfigurations(module: ModuleIR): List = buildList { + override fun ReadingContext.createRunConfigurations(module: ModuleIR): List = buildList { if (module.originalModule.kind == ModuleKind.singleplatformJs) { +WizardGradleRunConfiguration( "BrowserDevelopmentRun in continuous mode", @@ -57,7 +57,7 @@ class SimpleJsClientTemplate : Template() { } } - override fun TaskRunningContext.getRequiredLibraries(module: ModuleIR): List = withSettingsOf(module.originalModule) { + override fun WritingContext.getRequiredLibraries(module: ModuleIR): List = withSettingsOf(module.originalModule) { buildList { +ArtifactBasedLibraryDependencyIR( MavenArtifact(DefaultRepository.JCENTER, "org.jetbrains.kotlinx", "kotlinx-html-js"), @@ -81,7 +81,7 @@ class SimpleJsClientTemplate : Template() { } - override fun TaskRunningContext.getFileTemplates(module: ModuleIR): List = + override fun WritingContext.getFileTemplates(module: ModuleIR): List = withSettingsOf(module.originalModule) { buildList { val hasKtorServNeighbourTarget = module.safeAs() @@ -200,7 +200,7 @@ class SimpleJsClientTemplate : Template() { } } - override fun TaskRunningContext.getIrsToAddToBuildFile(module: ModuleIR): List = buildList { + override fun WritingContext.getIrsToAddToBuildFile(module: ModuleIR): List = buildList { +RepositoryIR(DefaultRepository.JCENTER) if (module is MultiplatformModuleIR) { +GradleImportIR("org.jetbrains.kotlin.gradle.targets.js.webpack.KotlinWebpack") 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 dbf52cc2829..7cd596d72b8 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 @@ -71,7 +71,7 @@ abstract class Template : SettingsOwner { open val settings: List> = emptyList() open val interceptionPoints: List> = emptyList() - fun ValuesReadingContext.initDefaultValuesFor(module: Module, context: Context) { + fun ReadingContext.initDefaultValuesFor(module: Module, context: Context) { withSettingsOf(module) { settings.forEach { setting -> val defaultValue = setting.savedOrDefaultValue ?: return@forEach @@ -80,10 +80,10 @@ abstract class Template : SettingsOwner { } } - open fun TaskRunningContext.getRequiredLibraries(module: ModuleIR): List = emptyList() + open fun WritingContext.getRequiredLibraries(module: ModuleIR): List = emptyList() //TODO: use setting reading context - open fun TaskRunningContext.getIrsToAddToBuildFile( + open fun WritingContext.getIrsToAddToBuildFile( module: ModuleIR ): List = emptyList() @@ -92,13 +92,13 @@ abstract class Template : SettingsOwner { targetConfigurationIR: TargetConfigurationIR ): TargetConfigurationIR = targetConfigurationIR - open fun TaskRunningContext.getFileTemplates(module: ModuleIR): List = emptyList() + open fun WritingContext.getFileTemplates(module: ModuleIR): List = emptyList() open fun createInterceptors(module: ModuleIR): List = emptyList() - open fun ValuesReadingContext.createRunConfigurations(module: ModuleIR): List = emptyList() + open fun ReadingContext.createRunConfigurations(module: ModuleIR): List = emptyList() - fun TaskRunningContext.applyToSourceset( + fun WritingContext.applyToSourceset( module: ModuleIR ): TaskResult { val librariesToAdd = getRequiredLibraries(module) @@ -118,7 +118,7 @@ abstract class Template : SettingsOwner { return result.asSuccess() } - fun TaskRunningContext.settingsAsMap(module: Module): Map = + fun WritingContext.settingsAsMap(module: Module): Map = withSettingsOf(module) { settings.associate { setting -> setting.path to setting.reference.settingValue @@ -126,7 +126,7 @@ abstract class Template : SettingsOwner { } + createDefaultSettings() - private fun TaskRunningContext.createDefaultSettings() = mapOf( + private fun WritingContext.createDefaultSettings() = mapOf( "projectName" to StructurePlugin::name.settingValue.capitalize() ) @@ -252,7 +252,7 @@ fun Template.settings(module: Module) = withSettingsOf(module) { settings.map { it.reference } } -fun TaskRunningContext.applyTemplateToModule( +fun WritingContext.applyTemplateToModule( template: Template?, module: ModuleIR ): TaskResult = when (template) { diff --git a/libraries/tools/new-project-wizard/src/org/jetbrains/kotlin/tools/projectWizard/templates/TemplateEngine.kt b/libraries/tools/new-project-wizard/src/org/jetbrains/kotlin/tools/projectWizard/templates/TemplateEngine.kt index 14296910ac6..3331369238d 100644 --- a/libraries/tools/new-project-wizard/src/org/jetbrains/kotlin/tools/projectWizard/templates/TemplateEngine.kt +++ b/libraries/tools/new-project-wizard/src/org/jetbrains/kotlin/tools/projectWizard/templates/TemplateEngine.kt @@ -6,7 +6,7 @@ import org.apache.velocity.runtime.RuntimeConstants import org.apache.velocity.runtime.RuntimeServices import org.apache.velocity.runtime.log.LogChute import org.jetbrains.kotlin.tools.projectWizard.core.TaskResult -import org.jetbrains.kotlin.tools.projectWizard.core.TaskRunningContext +import org.jetbrains.kotlin.tools.projectWizard.core.WritingContext import org.jetbrains.kotlin.tools.projectWizard.core.div import org.jetbrains.kotlin.tools.projectWizard.core.service.FileFormattingService import org.jetbrains.kotlin.tools.projectWizard.core.service.FileSystemWizardService @@ -16,7 +16,7 @@ import java.io.StringWriter interface TemplateEngine { fun renderTemplate(template: FileTemplateDescriptor, data: Map): String - fun TaskRunningContext.writeTemplate(template: FileTemplate): TaskResult { + fun WritingContext.writeTemplate(template: FileTemplate): TaskResult { val formatter = service() val text = renderTemplate(template.descriptor, template.data).let { text -> formatter.formatFile(text, template.descriptor.relativePath.fileName.toString()) 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 f47d349509d..5d8b100402c 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 @@ -9,7 +9,7 @@ import org.jetbrains.kotlin.tools.projectWizard.phases.GenerationPhase abstract class Wizard(createPlugins: PluginsCreator, val servicesManager: ServicesManager, private val isUnitTestMode: Boolean) { val context = Context(createPlugins, EventManager()) - val valuesReadingContext = ValuesReadingContext(context, servicesManager, isUnitTestMode) + val valuesReadingContext = ReadingContext(context, servicesManager, isUnitTestMode) protected val plugins = context.plugins protected val pluginSettings = plugins.flatMap { it.declaredSettings }.distinctBy { it.path } @@ -20,7 +20,7 @@ abstract class Wizard(createPlugins: PluginsCreator, val servicesManager: Servic } @Suppress("UNUSED_PARAMETER") - fun ValuesReadingContext.validate(phases: Set): TaskResult = + fun ReadingContext.validate(phases: Set): TaskResult = context.settingContext.allPluginSettings.map { setting -> val value = context.settingContext.pluginSettingValue(setting) ?: return@map ValidationResult.OK when (setting.neededAtPhase) { @@ -29,7 +29,7 @@ abstract class Wizard(createPlugins: PluginsCreator, val servicesManager: Servic } }.fold(ValidationResult.OK, ValidationResult::and).toResult() - private fun ValuesReadingContext.saveSettingValues(phases: Set) { + private fun ReadingContext.saveSettingValues(phases: Set) { for (setting in pluginSettings) { if (setting.neededAtPhase !in phases) continue if (!setting.isSavable) continue @@ -47,7 +47,7 @@ abstract class Wizard(createPlugins: PluginsCreator, val servicesManager: Servic onTaskExecuting: (PipelineTask) -> Unit = {} ): TaskResult = computeM { context.checkAllRequiredSettingPresent(phases).ensure() - val taskRunningContext = TaskRunningContext(context, servicesManager.withServices(services), isUnitTestMode) + val taskRunningContext = WritingContext(context, servicesManager.withServices(services), isUnitTestMode) taskRunningContext.validate(phases).ensure() taskRunningContext.saveSettingValues(phases) val (tasksSorted) = context.sortTasks().map { tasks ->