Use Gradle API to import annotations from compiler plugins instead of nasty data storage tasks

Tasks itself will be left for some time until all users migrate to the newer IDE plugin versions.
This commit is contained in:
Yan Zhulanow
2017-12-27 01:17:10 +09:00
parent e7c1d94c0f
commit 81aae03b57
15 changed files with 343 additions and 121 deletions
@@ -918,14 +918,11 @@ compileTestKotlin {
buildscript {
repositories {
mavenCentral()
maven {
url 'http://dl.bintray.com/kotlin/kotlin-eap-1.1'
}
}
dependencies {
classpath("org.jetbrains.kotlin:kotlin-gradle-plugin:1.1.0")
classpath("org.jetbrains.kotlin:kotlin-allopen:1.1.0")
classpath("org.jetbrains.kotlin:kotlin-gradle-plugin:1.2.10")
classpath("org.jetbrains.kotlin:kotlin-allopen:1.2.10")
}
}
@@ -949,6 +946,46 @@ compileTestKotlin {
}
}
@Test
fun testNoArgInvokeInitializers() {
createProjectSubFile("build.gradle", """
group 'Again'
version '1.0-SNAPSHOT'
buildscript {
repositories {
mavenCentral()
}
dependencies {
classpath("org.jetbrains.kotlin:kotlin-gradle-plugin:1.2.10")
classpath("org.jetbrains.kotlin:kotlin-noarg:1.2.10")
}
}
apply plugin: 'kotlin'
apply plugin: "kotlin-noarg"
noArg {
invokeInitializers = true
annotation("NoArg")
}
""")
importProject()
with (facetSettings) {
Assert.assertEquals(
"-version",
compilerSettings!!.additionalArguments
)
Assert.assertEquals(
listOf("plugin:org.jetbrains.kotlin.noarg:annotation=NoArg",
"plugin:org.jetbrains.kotlin.noarg:invokeInitializers=true"),
compilerArguments!!.pluginOptions!!.toList()
)
}
}
@Test
fun testAndroidGradleJsDetection() {
createProjectSubFile("android-module/build.gradle", """
+3
View File
@@ -10,6 +10,9 @@
<pluginDescriptions implementation="org.jetbrains.kotlin.idea.configuration.KotlinGradlePluginDescription"/>
<projectResolve implementation="org.jetbrains.kotlin.idea.configuration.KotlinGradleProjectResolverExtension" order="first"/>
<projectResolve implementation="org.jetbrains.kotlin.kapt.idea.KaptProjectResolverExtension" order="last"/>
<projectResolve implementation="org.jetbrains.kotlin.allopen.ide.AllOpenProjectResolverExtension" order="last"/>
<projectResolve implementation="org.jetbrains.kotlin.noarg.ide.NoArgProjectResolverExtension" order="last"/>
<projectResolve implementation="org.jetbrains.kotlin.samWithReceiver.ide.SamWithReceiverProjectResolverExtension" order="last"/>
</extensions>
<extensionPoints>