diff --git a/idea/src/META-INF/gradle.xml b/idea/src/META-INF/gradle.xml index c26ed098059..2fe9a36e85f 100644 --- a/idea/src/META-INF/gradle.xml +++ b/idea/src/META-INF/gradle.xml @@ -3,4 +3,7 @@ + + + diff --git a/idea/src/org/jetbrains/kotlin/idea/configuration/GradleKotlinJavaFrameworkSupportProvider.kt b/idea/src/org/jetbrains/kotlin/idea/configuration/GradleKotlinJavaFrameworkSupportProvider.kt new file mode 100644 index 00000000000..dba6d6518d0 --- /dev/null +++ b/idea/src/org/jetbrains/kotlin/idea/configuration/GradleKotlinJavaFrameworkSupportProvider.kt @@ -0,0 +1,62 @@ +/* + * Copyright 2010-2015 JetBrains s.r.o. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +package org.jetbrains.kotlin.idea.configuration + +import com.intellij.framework.FrameworkTypeEx +import com.intellij.framework.addSupport.FrameworkSupportInModuleProvider +import com.intellij.openapi.module.Module +import com.intellij.openapi.roots.ModifiableModelsProvider +import com.intellij.openapi.roots.ModifiableRootModel +import org.jetbrains.kotlin.idea.KotlinIcons +import org.jetbrains.kotlin.idea.versions.KotlinRuntimeLibraryUtil +import org.jetbrains.plugins.gradle.frameworkSupport.BuildScriptDataBuilder +import org.jetbrains.plugins.gradle.frameworkSupport.GradleFrameworkSupportProvider +import javax.swing.Icon + +public class GradleKotlinJavaFrameworkSupportProvider() : GradleFrameworkSupportProvider() { + override fun getFrameworkType(): FrameworkTypeEx = object : FrameworkTypeEx("KOTLIN") { + override fun getIcon(): Icon = KotlinIcons.FILE + + override fun getPresentableName(): String = "Kotlin (Java)" + + override fun createProvider(): FrameworkSupportInModuleProvider = this@GradleKotlinJavaFrameworkSupportProvider + } + + override fun addSupport(module: Module, + rootModel: ModifiableRootModel, + modifiableModelsProvider: ModifiableModelsProvider, + buildScriptData: BuildScriptDataBuilder) { + var kotlinVersion = KotlinRuntimeLibraryUtil.bundledRuntimeVersion() + if (kotlinVersion == "@snapshot@") { + kotlinVersion = "0.1-SNAPSHOT" + buildScriptData.addBuildscriptRepositoriesDefinition("mavenCentral()") + + val snapshotRepository = KotlinWithGradleConfigurator.SNAPSHOT_REPOSITORY.replace('\n', ' ') + buildScriptData.addBuildscriptRepositoriesDefinition(snapshotRepository) + + buildScriptData.addRepositoriesDefinition("mavenCentral()") + buildScriptData.addRepositoriesDefinition(snapshotRepository) + } + + buildScriptData + .addPluginDefinition(KotlinGradleModuleConfigurator.APPLY_KOTLIN) + + // TODO: once IDEA-148110 is fixed, define kotlin_version property in buildscript + .addDependencyNotation(KotlinWithGradleConfigurator.LIBRARY.replace("\$kotlin_version", kotlinVersion)) + .addBuildscriptDependencyNotation(KotlinWithGradleConfigurator.CLASSPATH.replace("\$kotlin_version", kotlinVersion)) + } +} diff --git a/idea/src/org/jetbrains/kotlin/idea/configuration/KotlinGradleModuleConfigurator.java b/idea/src/org/jetbrains/kotlin/idea/configuration/KotlinGradleModuleConfigurator.java index 8eefed9d652..fa7934171d8 100644 --- a/idea/src/org/jetbrains/kotlin/idea/configuration/KotlinGradleModuleConfigurator.java +++ b/idea/src/org/jetbrains/kotlin/idea/configuration/KotlinGradleModuleConfigurator.java @@ -27,7 +27,7 @@ import org.jetbrains.plugins.groovy.lang.psi.api.statements.blocks.GrClosableBlo public class KotlinGradleModuleConfigurator extends KotlinWithGradleConfigurator { public static final String NAME = "gradle"; - private static final String APPLY_KOTLIN = "apply plugin: 'kotlin'"; + public static final String APPLY_KOTLIN = "apply plugin: 'kotlin'"; @NotNull @Override diff --git a/idea/src/org/jetbrains/kotlin/idea/configuration/KotlinWithGradleConfigurator.java b/idea/src/org/jetbrains/kotlin/idea/configuration/KotlinWithGradleConfigurator.java index b9af3caa0f9..131559bfab1 100644 --- a/idea/src/org/jetbrains/kotlin/idea/configuration/KotlinWithGradleConfigurator.java +++ b/idea/src/org/jetbrains/kotlin/idea/configuration/KotlinWithGradleConfigurator.java @@ -57,8 +57,8 @@ public abstract class KotlinWithGradleConfigurator implements KotlinProjectConfi protected static final String CLASSPATH = "classpath \"org.jetbrains.kotlin:kotlin-gradle-plugin:$kotlin_version\""; protected static final String SNAPSHOT_REPOSITORY = "maven {\nurl 'http://oss.sonatype.org/content/repositories/snapshots'\n}"; - protected static final String REPOSITORY = "mavenCentral()\n"; - protected static final String LIBRARY = "compile \"org.jetbrains.kotlin:kotlin-stdlib:$kotlin_version\""; + public static final String REPOSITORY = "mavenCentral()\n"; + public static final String LIBRARY = "compile \"org.jetbrains.kotlin:kotlin-stdlib:$kotlin_version\""; protected static final String SOURCE_SET = "main.java.srcDirs += 'src/main/kotlin'\n"; protected static final String VERSION = String.format("ext.kotlin_version = '%s'", VERSION_TEMPLATE);