diff --git a/idea/idea-jvm/src/org/jetbrains/kotlin/idea/framework/KotlinModuleBuilder.kt b/idea/idea-jvm/src/org/jetbrains/kotlin/idea/framework/KotlinModuleBuilder.kt
index cf8e1c1c731..39ddc881f21 100644
--- a/idea/idea-jvm/src/org/jetbrains/kotlin/idea/framework/KotlinModuleBuilder.kt
+++ b/idea/idea-jvm/src/org/jetbrains/kotlin/idea/framework/KotlinModuleBuilder.kt
@@ -20,8 +20,10 @@ import com.intellij.ide.util.projectWizard.JavaModuleBuilder
import com.intellij.ide.util.projectWizard.ModuleWizardStep
import com.intellij.ide.util.projectWizard.SettingsStep
import com.intellij.ide.util.projectWizard.WizardContext
+import com.intellij.openapi.projectRoots.SdkTypeId
import com.intellij.openapi.roots.ui.configuration.ModulesProvider
import org.jetbrains.kotlin.resolve.TargetPlatform
+import org.jetbrains.kotlin.resolve.jvm.platform.JvmPlatform
import javax.swing.Icon
class KotlinModuleBuilder(
@@ -38,4 +40,9 @@ class KotlinModuleBuilder(
override fun modifySettingsStep(settingsStep: SettingsStep): ModuleWizardStep {
return KotlinModuleSettingStep(targetPlatform, this, settingsStep)
}
+
+ override fun isSuitableSdkType(sdkType: SdkTypeId?) = when (targetPlatform) {
+ is JvmPlatform -> super.isSuitableSdkType(sdkType)
+ else -> sdkType is KotlinSdkType
+ }
}
diff --git a/idea/src/META-INF/plugin.xml b/idea/src/META-INF/plugin.xml
index 02a3ced4e26..70b17f54617 100644
--- a/idea/src/META-INF/plugin.xml
+++ b/idea/src/META-INF/plugin.xml
@@ -784,6 +784,8 @@
+
+
org.jetbrains.kotlin.idea.intentions.FoldInitializerAndIfToElvisIntention
Kotlin
diff --git a/idea/src/org/jetbrains/kotlin/idea/framework/KotlinSdkType.kt b/idea/src/org/jetbrains/kotlin/idea/framework/KotlinSdkType.kt
new file mode 100644
index 00000000000..98c5fafe43e
--- /dev/null
+++ b/idea/src/org/jetbrains/kotlin/idea/framework/KotlinSdkType.kt
@@ -0,0 +1,57 @@
+/*
+ * Copyright 2000-2018 JetBrains s.r.o. Use of this source code is governed by the Apache 2.0 license
+ * that can be found in the license/LICENSE.txt file.
+ */
+
+/*
+ * Copyright 2000-2018 JetBrains s.r.o. Use of this source code is governed by the Apache 2.0 license
+ * that can be found in the license/LICENSE.txt file.
+ */
+
+package org.jetbrains.kotlin.idea.framework
+
+import com.intellij.openapi.projectRoots.*
+import com.intellij.openapi.projectRoots.impl.ProjectJdkImpl
+import com.intellij.openapi.projectRoots.impl.SdkConfigurationUtil
+import com.intellij.util.Consumer
+import org.jdom.Element
+import org.jetbrains.kotlin.idea.KotlinIcons
+import org.jetbrains.kotlin.idea.versions.bundledRuntimeVersion
+import javax.swing.JComponent
+
+class KotlinSdkType : SdkType("KotlinSDK") {
+ companion object {
+ const val DEFAULT_SDK_NAME = "Kotlin SDK"
+ }
+
+ override fun getPresentableName() = DEFAULT_SDK_NAME
+
+ override fun getIcon() = KotlinIcons.SMALL_LOGO
+
+ override fun isValidSdkHome(path: String?) = true
+
+ override fun suggestSdkName(currentSdkName: String?, sdkHome: String?) = "Kotlin SDK"
+
+ override fun suggestHomePath() = null
+
+ override fun sdkHasValidPath(sdk: Sdk) = true
+
+ override fun getVersionString(sdk: Sdk) = bundledRuntimeVersion()
+
+ override fun supportsCustomCreateUI() = true
+
+ override fun showCustomCreateUI(sdkModel: SdkModel, parentComponent: JComponent, selectedSdk: Sdk?, sdkCreatedCallback: Consumer) {
+ val newSdkName = SdkConfigurationUtil.createUniqueSdkName(this, "", sdkModel.sdks.toList())
+ sdkCreatedCallback.consume(newSdk(newSdkName))
+ }
+
+ fun newSdk(name: String) = ProjectJdkImpl(name, this).apply {
+ homePath = "not applicable"
+ }
+
+ override fun createAdditionalDataConfigurable(sdkModel: SdkModel, sdkModificator: SdkModificator) = null
+
+ override fun saveAdditionalData(additionalData: SdkAdditionalData, additional: Element) {
+
+ }
+}
\ No newline at end of file