Change class hierarchy of KotlinSourceRootType. Deadlock during concurrent classloading fixed
#KT-30137 Fixed
This commit is contained in:
@@ -27,7 +27,7 @@ import org.jetbrains.kotlin.analyzer.ModuleInfo
|
||||
import org.jetbrains.kotlin.analyzer.TrackableModuleInfo
|
||||
import org.jetbrains.kotlin.caches.project.LibraryModuleInfo
|
||||
import org.jetbrains.kotlin.caches.resolve.resolution
|
||||
import org.jetbrains.kotlin.config.KotlinSourceRootType
|
||||
import org.jetbrains.kotlin.config.*
|
||||
import org.jetbrains.kotlin.descriptors.ModuleDescriptor
|
||||
import org.jetbrains.kotlin.idea.caches.resolve.util.enlargedSearchScope
|
||||
import org.jetbrains.kotlin.idea.configuration.BuildSystemType
|
||||
@@ -210,8 +210,8 @@ fun Module.testSourceInfo(): ModuleTestSourceInfo? = if (hasTestRoots()) ModuleT
|
||||
|
||||
internal fun Module.correspondingModuleInfos(): List<ModuleSourceInfo> = listOf(testSourceInfo(), productionSourceInfo()).filterNotNull()
|
||||
|
||||
private fun Module.hasProductionRoots() = hasRootsOfType(JavaSourceRootType.SOURCE) || hasRootsOfType(KotlinSourceRootType.Source) || (isNewMPPModule && sourceType == SourceType.PRODUCTION)
|
||||
private fun Module.hasTestRoots() = hasRootsOfType(JavaSourceRootType.TEST_SOURCE) || hasRootsOfType(KotlinSourceRootType.TestSource) || (isNewMPPModule && sourceType == SourceType.TEST)
|
||||
private fun Module.hasProductionRoots() = hasRootsOfType(JavaSourceRootType.SOURCE) || hasRootsOfType(SourceKotlinRootType) || (isNewMPPModule && sourceType == SourceType.PRODUCTION)
|
||||
private fun Module.hasTestRoots() = hasRootsOfType(JavaSourceRootType.TEST_SOURCE) || hasRootsOfType(TestSourceKotlinRootType) || (isNewMPPModule && sourceType == SourceType.TEST)
|
||||
|
||||
private fun Module.hasRootsOfType(sourceRootType: JpsModuleSourceRootType<*>): Boolean =
|
||||
rootManager.contentEntries.any { it.getSourceFolders(sourceRootType).isNotEmpty() }
|
||||
|
||||
@@ -10,23 +10,22 @@ import com.intellij.openapi.vfs.VirtualFile
|
||||
import org.jetbrains.jps.model.java.JavaResourceRootType
|
||||
import org.jetbrains.jps.model.java.JavaSourceRootType
|
||||
import org.jetbrains.jps.model.module.JpsModuleSourceRootType
|
||||
import org.jetbrains.kotlin.config.KotlinResourceRootType
|
||||
import org.jetbrains.kotlin.config.KotlinSourceRootType
|
||||
import org.jetbrains.kotlin.config.*
|
||||
import org.jetbrains.kotlin.idea.caches.project.SourceType
|
||||
import org.jetbrains.kotlin.idea.util.isInSourceContentWithoutInjected
|
||||
|
||||
private val testRootTypes: Set<JpsModuleSourceRootType<*>> = setOf(
|
||||
JavaSourceRootType.TEST_SOURCE,
|
||||
JavaResourceRootType.TEST_RESOURCE,
|
||||
KotlinSourceRootType.TestSource,
|
||||
KotlinResourceRootType.TestResource
|
||||
TestSourceKotlinRootType,
|
||||
TestResourceKotlinRootType
|
||||
)
|
||||
|
||||
private val sourceRootTypes = setOf<JpsModuleSourceRootType<*>>(
|
||||
JavaSourceRootType.SOURCE,
|
||||
JavaResourceRootType.RESOURCE,
|
||||
KotlinSourceRootType.Source,
|
||||
KotlinResourceRootType.Resource
|
||||
SourceKotlinRootType,
|
||||
ResourceKotlinRootType
|
||||
)
|
||||
|
||||
fun JpsModuleSourceRootType<*>.getSourceType(): SourceType? = when(this) {
|
||||
|
||||
@@ -19,7 +19,8 @@ import com.intellij.util.Query
|
||||
import org.jetbrains.jps.model.java.JavaModuleSourceRootTypes
|
||||
import org.jetbrains.jps.model.java.JavaSourceRootProperties
|
||||
import org.jetbrains.jps.model.module.JpsModuleSourceRootType
|
||||
import org.jetbrains.kotlin.config.KotlinSourceRootType
|
||||
import org.jetbrains.kotlin.config.SourceKotlinRootType
|
||||
import org.jetbrains.kotlin.config.TestSourceKotlinRootType
|
||||
import org.jetbrains.kotlin.idea.caches.PerModulePackageCacheService
|
||||
import org.jetbrains.kotlin.idea.roots.invalidateProjectRoots
|
||||
import org.jetbrains.kotlin.idea.util.rootManager
|
||||
@@ -79,7 +80,7 @@ private fun findLongestExistingPackage(module: Module, packageName: String): Psi
|
||||
}
|
||||
|
||||
private val kotlinSourceRootTypes: Set<JpsModuleSourceRootType<JavaSourceRootProperties>> =
|
||||
setOf(KotlinSourceRootType.Source, KotlinSourceRootType.TestSource) + JavaModuleSourceRootTypes.SOURCES
|
||||
setOf(SourceKotlinRootType, TestSourceKotlinRootType) + JavaModuleSourceRootTypes.SOURCES
|
||||
|
||||
private fun Module.getNonGeneratedKotlinSourceRoots(): List<VirtualFile> {
|
||||
val result = mutableListOf<VirtualFile>()
|
||||
|
||||
+25
-27
@@ -8,9 +8,7 @@ package org.jetbrains.kotlin.gradle
|
||||
import com.intellij.openapi.roots.*
|
||||
import org.jetbrains.jps.model.java.JavaResourceRootType
|
||||
import org.jetbrains.jps.model.java.JavaSourceRootType
|
||||
import org.jetbrains.kotlin.config.JvmTarget
|
||||
import org.jetbrains.kotlin.config.KotlinResourceRootType
|
||||
import org.jetbrains.kotlin.config.KotlinSourceRootType
|
||||
import org.jetbrains.kotlin.config.*
|
||||
import org.jetbrains.kotlin.idea.codeInsight.gradle.ExternalSystemImportingTestCase
|
||||
import org.jetbrains.kotlin.idea.codeInsight.gradle.MultiplePluginVersionGradleImportingTestCase
|
||||
import org.jetbrains.kotlin.platform.impl.CommonIdePlatformKind
|
||||
@@ -65,8 +63,8 @@ class NewMultiplatformProjectImportingTest : MultiplePluginVersionGradleImportin
|
||||
platform(CommonIdePlatformKind.Platform)
|
||||
libraryDependency("Gradle: org.jetbrains.kotlin:kotlin-stdlib-common:${kotlinVersion()}", DependencyScope.COMPILE)
|
||||
moduleDependency("lib_commonMain", DependencyScope.COMPILE)
|
||||
sourceFolder("app/src/commonMain/kotlin", KotlinSourceRootType.Source)
|
||||
sourceFolder("app/src/commonMain/resources", KotlinResourceRootType.Resource)
|
||||
sourceFolder("app/src/commonMain/kotlin", SourceKotlinRootType)
|
||||
sourceFolder("app/src/commonMain/resources", ResourceKotlinRootType)
|
||||
inheritProjectOutput()
|
||||
}
|
||||
module("app_commonTest") {
|
||||
@@ -74,8 +72,8 @@ class NewMultiplatformProjectImportingTest : MultiplePluginVersionGradleImportin
|
||||
libraryDependency("Gradle: org.jetbrains.kotlin:kotlin-stdlib-common:${kotlinVersion()}", DependencyScope.TEST)
|
||||
moduleDependency("lib_commonMain", DependencyScope.TEST)
|
||||
moduleDependency("app_commonMain", DependencyScope.TEST)
|
||||
sourceFolder("app/src/commonTest/kotlin", KotlinSourceRootType.TestSource)
|
||||
sourceFolder("app/src/commonTest/resources", KotlinResourceRootType.TestResource)
|
||||
sourceFolder("app/src/commonTest/kotlin", TestSourceKotlinRootType)
|
||||
sourceFolder("app/src/commonTest/resources", TestResourceKotlinRootType)
|
||||
inheritProjectOutput()
|
||||
}
|
||||
module("app_jsMain") {
|
||||
@@ -85,8 +83,8 @@ class NewMultiplatformProjectImportingTest : MultiplePluginVersionGradleImportin
|
||||
moduleDependency("lib_jsMain", DependencyScope.COMPILE)
|
||||
moduleDependency("lib_commonMain", DependencyScope.COMPILE)
|
||||
moduleDependency("app_commonMain", DependencyScope.COMPILE)
|
||||
sourceFolder("app/src/jsMain/kotlin", KotlinSourceRootType.Source)
|
||||
sourceFolder("app/src/jsMain/resources", KotlinResourceRootType.Resource)
|
||||
sourceFolder("app/src/jsMain/kotlin", SourceKotlinRootType)
|
||||
sourceFolder("app/src/jsMain/resources", ResourceKotlinRootType)
|
||||
outputPath("app/build/classes/kotlin/js/main", true)
|
||||
}
|
||||
module("app_jsTest") {
|
||||
@@ -98,8 +96,8 @@ class NewMultiplatformProjectImportingTest : MultiplePluginVersionGradleImportin
|
||||
moduleDependency("app_commonMain", DependencyScope.TEST)
|
||||
moduleDependency("app_commonTest", DependencyScope.TEST)
|
||||
moduleDependency("app_jsMain", DependencyScope.TEST)
|
||||
sourceFolder("app/src/jsTest/kotlin", KotlinSourceRootType.TestSource)
|
||||
sourceFolder("app/src/jsTest/resources", KotlinResourceRootType.TestResource)
|
||||
sourceFolder("app/src/jsTest/kotlin", TestSourceKotlinRootType)
|
||||
sourceFolder("app/src/jsTest/resources", TestResourceKotlinRootType)
|
||||
outputPath("app/build/classes/kotlin/js/test", false)
|
||||
}
|
||||
module("app_jvmMain") {
|
||||
@@ -157,16 +155,16 @@ class NewMultiplatformProjectImportingTest : MultiplePluginVersionGradleImportin
|
||||
module("lib_commonMain") {
|
||||
platform(CommonIdePlatformKind.Platform)
|
||||
libraryDependency("Gradle: org.jetbrains.kotlin:kotlin-stdlib-common:${kotlinVersion()}", DependencyScope.COMPILE)
|
||||
sourceFolder("lib/src/commonMain/kotlin", KotlinSourceRootType.Source)
|
||||
sourceFolder("lib/src/commonMain/resources", KotlinResourceRootType.Resource)
|
||||
sourceFolder("lib/src/commonMain/kotlin", SourceKotlinRootType)
|
||||
sourceFolder("lib/src/commonMain/resources", ResourceKotlinRootType)
|
||||
inheritProjectOutput()
|
||||
}
|
||||
module("lib_commonTest") {
|
||||
platform(CommonIdePlatformKind.Platform)
|
||||
libraryDependency("Gradle: org.jetbrains.kotlin:kotlin-stdlib-common:${kotlinVersion()}", DependencyScope.TEST)
|
||||
moduleDependency("lib_commonMain", DependencyScope.TEST)
|
||||
sourceFolder("lib/src/commonTest/kotlin", KotlinSourceRootType.TestSource)
|
||||
sourceFolder("lib/src/commonTest/resources", KotlinResourceRootType.TestResource)
|
||||
sourceFolder("lib/src/commonTest/kotlin", TestSourceKotlinRootType)
|
||||
sourceFolder("lib/src/commonTest/resources", TestResourceKotlinRootType)
|
||||
inheritProjectOutput()
|
||||
}
|
||||
module("lib_jsMain") {
|
||||
@@ -174,8 +172,8 @@ class NewMultiplatformProjectImportingTest : MultiplePluginVersionGradleImportin
|
||||
libraryDependency("Gradle: org.jetbrains.kotlin:kotlin-stdlib-js:${kotlinVersion()}", DependencyScope.COMPILE)
|
||||
libraryDependency("Gradle: org.jetbrains.kotlin:kotlin-stdlib-common:${kotlinVersion()}", DependencyScope.COMPILE)
|
||||
moduleDependency("lib_commonMain", DependencyScope.COMPILE)
|
||||
sourceFolder("lib/src/jsMain/kotlin", KotlinSourceRootType.Source)
|
||||
sourceFolder("lib/src/jsMain/resources", KotlinResourceRootType.Resource)
|
||||
sourceFolder("lib/src/jsMain/kotlin", SourceKotlinRootType)
|
||||
sourceFolder("lib/src/jsMain/resources", ResourceKotlinRootType)
|
||||
outputPath("lib/build/classes/kotlin/js/main", true)
|
||||
}
|
||||
module("lib_jsTest") {
|
||||
@@ -185,8 +183,8 @@ class NewMultiplatformProjectImportingTest : MultiplePluginVersionGradleImportin
|
||||
moduleDependency("lib_commonMain", DependencyScope.TEST)
|
||||
moduleDependency("lib_commonTest", DependencyScope.TEST)
|
||||
moduleDependency("lib_jsMain", DependencyScope.TEST)
|
||||
sourceFolder("lib/src/jsTest/kotlin", KotlinSourceRootType.TestSource)
|
||||
sourceFolder("lib/src/jsTest/resources", KotlinResourceRootType.TestResource)
|
||||
sourceFolder("lib/src/jsTest/kotlin", TestSourceKotlinRootType)
|
||||
sourceFolder("lib/src/jsTest/resources", TestResourceKotlinRootType)
|
||||
outputPath("lib/build/classes/kotlin/js/test", false)
|
||||
}
|
||||
module("lib_jvmMain") {
|
||||
@@ -305,14 +303,14 @@ class NewMultiplatformProjectImportingTest : MultiplePluginVersionGradleImportin
|
||||
module("shared")
|
||||
module("shared_commonMain") {
|
||||
libraryDependency("Gradle: org.jetbrains.kotlin:kotlin-stdlib-common:${kotlinVersion()}", DependencyScope.COMPILE)
|
||||
sourceFolder("shared/src/commonMain/kotlin", KotlinSourceRootType.Source)
|
||||
sourceFolder("shared/src/commonMain/resources", KotlinResourceRootType.Resource)
|
||||
sourceFolder("shared/src/commonMain/kotlin", SourceKotlinRootType)
|
||||
sourceFolder("shared/src/commonMain/resources", ResourceKotlinRootType)
|
||||
}
|
||||
module("shared_commonTest") {
|
||||
libraryDependency("Gradle: org.jetbrains.kotlin:kotlin-stdlib-common:${kotlinVersion()}", DependencyScope.TEST)
|
||||
moduleDependency("shared_commonMain", DependencyScope.TEST)
|
||||
sourceFolder("shared/src/commonTest/kotlin", KotlinSourceRootType.TestSource)
|
||||
sourceFolder("shared/src/commonTest/resources", KotlinResourceRootType.TestResource)
|
||||
sourceFolder("shared/src/commonTest/kotlin", TestSourceKotlinRootType)
|
||||
sourceFolder("shared/src/commonTest/resources", TestResourceKotlinRootType)
|
||||
}
|
||||
module("shared_androidMain") {
|
||||
libraryDependency("Gradle: org.jetbrains.kotlin:kotlin-stdlib-common:${kotlinVersion()}", DependencyScope.COMPILE)
|
||||
@@ -340,8 +338,8 @@ class NewMultiplatformProjectImportingTest : MultiplePluginVersionGradleImportin
|
||||
libraryDependency("Kotlin/Native $nativeVersion - stdlib", DependencyScope.PROVIDED)
|
||||
libraryDependency("Gradle: org.jetbrains.kotlin:kotlin-stdlib-common:${kotlinVersion()}", DependencyScope.COMPILE)
|
||||
moduleDependency("shared_commonMain", DependencyScope.COMPILE)
|
||||
sourceFolder("shared/src/iOSMain/kotlin", KotlinSourceRootType.Source)
|
||||
sourceFolder("shared/src/iOSMain/resources", KotlinResourceRootType.Resource)
|
||||
sourceFolder("shared/src/iOSMain/kotlin", SourceKotlinRootType)
|
||||
sourceFolder("shared/src/iOSMain/resources", ResourceKotlinRootType)
|
||||
}
|
||||
module("shared_iOSTest") {
|
||||
libraryDependency("Kotlin/Native $nativeVersion - stdlib", DependencyScope.PROVIDED)
|
||||
@@ -349,8 +347,8 @@ class NewMultiplatformProjectImportingTest : MultiplePluginVersionGradleImportin
|
||||
moduleDependency("shared_iOSMain", DependencyScope.TEST)
|
||||
moduleDependency("shared_commonMain", DependencyScope.TEST)
|
||||
moduleDependency("shared_commonTest", DependencyScope.TEST)
|
||||
sourceFolder("shared/src/iOSTest/kotlin", KotlinSourceRootType.TestSource)
|
||||
sourceFolder("shared/src/iOSTest/resources", KotlinResourceRootType.TestResource)
|
||||
sourceFolder("shared/src/iOSTest/kotlin", TestSourceKotlinRootType)
|
||||
sourceFolder("shared/src/iOSTest/resources", TestResourceKotlinRootType)
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
+54
-54
@@ -632,16 +632,16 @@ compileTestKotlin {
|
||||
assertKotlinSdk("project_main", "project_test")
|
||||
|
||||
Assert.assertEquals(
|
||||
listOf("file:///src/main/java" to KotlinSourceRootType.Source,
|
||||
"file:///src/main/kotlin" to KotlinSourceRootType.Source,
|
||||
"file:///src/main/resources" to KotlinResourceRootType.Resource),
|
||||
listOf("file:///src/main/java" to SourceKotlinRootType,
|
||||
"file:///src/main/kotlin" to SourceKotlinRootType,
|
||||
"file:///src/main/resources" to ResourceKotlinRootType),
|
||||
getSourceRootInfos("project_main")
|
||||
)
|
||||
Assert.assertEquals(
|
||||
listOf("file:///src/test/java" to KotlinSourceRootType.TestSource,
|
||||
"file:///src/test/kotlin" to KotlinSourceRootType.TestSource,
|
||||
"file:///src/test/resources" to KotlinResourceRootType.TestResource),
|
||||
getSourceRootInfos("project_test")
|
||||
listOf("file:///src/test/java" to TestSourceKotlinRootType,
|
||||
"file:///src/test/kotlin" to TestSourceKotlinRootType,
|
||||
"file:///src/test/resources" to TestResourceKotlinRootType),
|
||||
getSourceRootInfos("project_test")
|
||||
)
|
||||
|
||||
assertAllModulesConfigured()
|
||||
@@ -696,16 +696,16 @@ compileTestKotlin {
|
||||
assertAllModulesConfigured()
|
||||
|
||||
Assert.assertEquals(
|
||||
listOf("file:///src/main/java" to KotlinSourceRootType.Source,
|
||||
"file:///src/main/kotlin" to KotlinSourceRootType.Source,
|
||||
"file:///src/main/resources" to KotlinResourceRootType.Resource),
|
||||
listOf("file:///src/main/java" to SourceKotlinRootType,
|
||||
"file:///src/main/kotlin" to SourceKotlinRootType,
|
||||
"file:///src/main/resources" to ResourceKotlinRootType),
|
||||
getSourceRootInfos("project_main")
|
||||
)
|
||||
Assert.assertEquals(
|
||||
listOf("file:///src/test/java" to KotlinSourceRootType.TestSource,
|
||||
"file:///src/test/kotlin" to KotlinSourceRootType.TestSource,
|
||||
"file:///src/test/resources" to KotlinResourceRootType.TestResource),
|
||||
getSourceRootInfos("project_test")
|
||||
listOf("file:///src/test/java" to TestSourceKotlinRootType,
|
||||
"file:///src/test/kotlin" to TestSourceKotlinRootType,
|
||||
"file:///src/test/resources" to TestResourceKotlinRootType),
|
||||
getSourceRootInfos("project_test")
|
||||
)
|
||||
}
|
||||
|
||||
@@ -792,16 +792,16 @@ compileTestKotlin {
|
||||
assertAllModulesConfigured()
|
||||
|
||||
Assert.assertEquals(
|
||||
listOf("file:///src/main/java" to KotlinSourceRootType.Source,
|
||||
"file:///src/main/kotlin" to KotlinSourceRootType.Source,
|
||||
"file:///src/main/resources" to KotlinResourceRootType.Resource),
|
||||
listOf("file:///src/main/java" to SourceKotlinRootType,
|
||||
"file:///src/main/kotlin" to SourceKotlinRootType,
|
||||
"file:///src/main/resources" to ResourceKotlinRootType),
|
||||
getSourceRootInfos("project_main")
|
||||
)
|
||||
Assert.assertEquals(
|
||||
listOf("file:///src/test/java" to KotlinSourceRootType.TestSource,
|
||||
"file:///src/test/kotlin" to KotlinSourceRootType.TestSource,
|
||||
"file:///src/test/resources" to KotlinResourceRootType.TestResource),
|
||||
getSourceRootInfos("project_test")
|
||||
listOf("file:///src/test/java" to TestSourceKotlinRootType,
|
||||
"file:///src/test/kotlin" to TestSourceKotlinRootType,
|
||||
"file:///src/test/resources" to TestResourceKotlinRootType),
|
||||
getSourceRootInfos("project_test")
|
||||
)
|
||||
}
|
||||
|
||||
@@ -927,16 +927,16 @@ compileTestKotlin {
|
||||
assertEquals(CommonLibraryKind, libraries.single { it.name?.contains("kotlin-stdlib-common") == true }.kind)
|
||||
|
||||
Assert.assertEquals(
|
||||
listOf("file:///src/main/java" to KotlinSourceRootType.Source,
|
||||
"file:///src/main/kotlin" to KotlinSourceRootType.Source,
|
||||
"file:///src/main/resources" to KotlinResourceRootType.Resource),
|
||||
listOf("file:///src/main/java" to SourceKotlinRootType,
|
||||
"file:///src/main/kotlin" to SourceKotlinRootType,
|
||||
"file:///src/main/resources" to ResourceKotlinRootType),
|
||||
getSourceRootInfos("project_main")
|
||||
)
|
||||
Assert.assertEquals(
|
||||
listOf("file:///src/test/java" to KotlinSourceRootType.TestSource,
|
||||
"file:///src/test/kotlin" to KotlinSourceRootType.TestSource,
|
||||
"file:///src/test/resources" to KotlinResourceRootType.TestResource),
|
||||
getSourceRootInfos("project_test")
|
||||
listOf("file:///src/test/java" to TestSourceKotlinRootType,
|
||||
"file:///src/test/kotlin" to TestSourceKotlinRootType,
|
||||
"file:///src/test/resources" to TestResourceKotlinRootType),
|
||||
getSourceRootInfos("project_test")
|
||||
)
|
||||
}
|
||||
|
||||
@@ -985,16 +985,16 @@ compileTestKotlin {
|
||||
assertEquals(CommonLibraryKind, (stdlib as LibraryEx).kind)
|
||||
|
||||
Assert.assertEquals(
|
||||
listOf("file:///src/main/java" to KotlinSourceRootType.Source,
|
||||
"file:///src/main/kotlin" to KotlinSourceRootType.Source,
|
||||
"file:///src/main/resources" to KotlinResourceRootType.Resource),
|
||||
listOf("file:///src/main/java" to SourceKotlinRootType,
|
||||
"file:///src/main/kotlin" to SourceKotlinRootType,
|
||||
"file:///src/main/resources" to ResourceKotlinRootType),
|
||||
getSourceRootInfos("project_main")
|
||||
)
|
||||
Assert.assertEquals(
|
||||
listOf("file:///src/test/java" to KotlinSourceRootType.TestSource,
|
||||
"file:///src/test/kotlin" to KotlinSourceRootType.TestSource,
|
||||
"file:///src/test/resources" to KotlinResourceRootType.TestResource),
|
||||
getSourceRootInfos("project_test")
|
||||
listOf("file:///src/test/java" to TestSourceKotlinRootType,
|
||||
"file:///src/test/kotlin" to TestSourceKotlinRootType,
|
||||
"file:///src/test/resources" to TestResourceKotlinRootType),
|
||||
getSourceRootInfos("project_test")
|
||||
)
|
||||
}
|
||||
|
||||
@@ -1042,13 +1042,13 @@ compileTestKotlin {
|
||||
assertEquals(CommonLibraryKind, (stdlib as LibraryEx).kind)
|
||||
|
||||
Assert.assertEquals(
|
||||
listOf("file:///src/main/java" to KotlinSourceRootType.Source,
|
||||
"file:///src/main/kotlin" to KotlinSourceRootType.Source,
|
||||
"file:///src/test/java" to KotlinSourceRootType.TestSource,
|
||||
"file:///src/test/kotlin" to KotlinSourceRootType.TestSource,
|
||||
"file:///src/main/resources" to KotlinResourceRootType.Resource,
|
||||
"file:///src/test/resources" to KotlinResourceRootType.TestResource),
|
||||
getSourceRootInfos("project")
|
||||
listOf("file:///src/main/java" to SourceKotlinRootType,
|
||||
"file:///src/main/kotlin" to SourceKotlinRootType,
|
||||
"file:///src/test/java" to TestSourceKotlinRootType,
|
||||
"file:///src/test/kotlin" to TestSourceKotlinRootType,
|
||||
"file:///src/main/resources" to ResourceKotlinRootType,
|
||||
"file:///src/test/resources" to TestResourceKotlinRootType),
|
||||
getSourceRootInfos("project")
|
||||
)
|
||||
}
|
||||
|
||||
@@ -1129,16 +1129,16 @@ compileTestKotlin {
|
||||
}
|
||||
|
||||
Assert.assertEquals(
|
||||
listOf("file:///src/main/java" to KotlinSourceRootType.Source,
|
||||
"file:///src/main/kotlin" to KotlinSourceRootType.Source,
|
||||
"file:///src/main/resources" to KotlinResourceRootType.Resource),
|
||||
listOf("file:///src/main/java" to SourceKotlinRootType,
|
||||
"file:///src/main/kotlin" to SourceKotlinRootType,
|
||||
"file:///src/main/resources" to ResourceKotlinRootType),
|
||||
getSourceRootInfos("project_main")
|
||||
)
|
||||
Assert.assertEquals(
|
||||
listOf("file:///src/test/java" to KotlinSourceRootType.TestSource,
|
||||
"file:///src/test/kotlin" to KotlinSourceRootType.TestSource,
|
||||
"file:///src/test/resources" to KotlinResourceRootType.TestResource),
|
||||
getSourceRootInfos("project_test")
|
||||
listOf("file:///src/test/java" to TestSourceKotlinRootType,
|
||||
"file:///src/test/kotlin" to TestSourceKotlinRootType,
|
||||
"file:///src/test/resources" to TestResourceKotlinRootType),
|
||||
getSourceRootInfos("project_test")
|
||||
)
|
||||
}
|
||||
|
||||
@@ -2106,14 +2106,14 @@ compileTestKotlin {
|
||||
assertKotlinSdk("project_main", "project_test")
|
||||
|
||||
Assert.assertEquals(
|
||||
listOf("file:///src/main/kotlin" to KotlinSourceRootType.Source,
|
||||
"file:///src/main/resources" to KotlinResourceRootType.Resource),
|
||||
listOf("file:///src/main/kotlin" to SourceKotlinRootType,
|
||||
"file:///src/main/resources" to ResourceKotlinRootType),
|
||||
getSourceRootInfos("project_main")
|
||||
)
|
||||
Assert.assertEquals(
|
||||
listOf("file:///src/test/kotlin" to KotlinSourceRootType.TestSource,
|
||||
"file:///src/test/resources" to KotlinResourceRootType.TestResource),
|
||||
getSourceRootInfos("project_test")
|
||||
listOf("file:///src/test/kotlin" to TestSourceKotlinRootType,
|
||||
"file:///src/test/resources" to TestResourceKotlinRootType),
|
||||
getSourceRootInfos("project_test")
|
||||
)
|
||||
}
|
||||
|
||||
|
||||
+54
-54
@@ -632,16 +632,16 @@ compileTestKotlin {
|
||||
assertKotlinSdk("project_main", "project_test")
|
||||
|
||||
Assert.assertEquals(
|
||||
listOf("file:///src/main/java" to KotlinSourceRootType.Source,
|
||||
"file:///src/main/kotlin" to KotlinSourceRootType.Source,
|
||||
"file:///src/main/resources" to KotlinResourceRootType.Resource),
|
||||
listOf("file:///src/main/java" to SourceKotlinRootType,
|
||||
"file:///src/main/kotlin" to SourceKotlinRootType,
|
||||
"file:///src/main/resources" to ResourceKotlinRootType),
|
||||
getSourceRootInfos("project_main")
|
||||
)
|
||||
Assert.assertEquals(
|
||||
listOf("file:///src/test/java" to KotlinSourceRootType.TestSource,
|
||||
"file:///src/test/kotlin" to KotlinSourceRootType.TestSource,
|
||||
"file:///src/test/resources" to KotlinResourceRootType.TestResource),
|
||||
getSourceRootInfos("project_test")
|
||||
listOf("file:///src/test/java" to TestSourceKotlinRootType,
|
||||
"file:///src/test/kotlin" to TestSourceKotlinRootType,
|
||||
"file:///src/test/resources" to TestResourceKotlinRootType),
|
||||
getSourceRootInfos("project_test")
|
||||
)
|
||||
|
||||
assertAllModulesConfigured()
|
||||
@@ -696,16 +696,16 @@ compileTestKotlin {
|
||||
assertAllModulesConfigured()
|
||||
|
||||
Assert.assertEquals(
|
||||
listOf("file:///src/main/java" to KotlinSourceRootType.Source,
|
||||
"file:///src/main/kotlin" to KotlinSourceRootType.Source,
|
||||
"file:///src/main/resources" to KotlinResourceRootType.Resource),
|
||||
listOf("file:///src/main/java" to SourceKotlinRootType,
|
||||
"file:///src/main/kotlin" to SourceKotlinRootType,
|
||||
"file:///src/main/resources" to ResourceKotlinRootType),
|
||||
getSourceRootInfos("project_main")
|
||||
)
|
||||
Assert.assertEquals(
|
||||
listOf("file:///src/test/java" to KotlinSourceRootType.TestSource,
|
||||
"file:///src/test/kotlin" to KotlinSourceRootType.TestSource,
|
||||
"file:///src/test/resources" to KotlinResourceRootType.TestResource),
|
||||
getSourceRootInfos("project_test")
|
||||
listOf("file:///src/test/java" to TestSourceKotlinRootType,
|
||||
"file:///src/test/kotlin" to TestSourceKotlinRootType,
|
||||
"file:///src/test/resources" to TestResourceKotlinRootType),
|
||||
getSourceRootInfos("project_test")
|
||||
)
|
||||
}
|
||||
|
||||
@@ -792,16 +792,16 @@ compileTestKotlin {
|
||||
assertAllModulesConfigured()
|
||||
|
||||
Assert.assertEquals(
|
||||
listOf("file:///src/main/java" to KotlinSourceRootType.Source,
|
||||
"file:///src/main/kotlin" to KotlinSourceRootType.Source,
|
||||
"file:///src/main/resources" to KotlinResourceRootType.Resource),
|
||||
listOf("file:///src/main/java" to SourceKotlinRootType,
|
||||
"file:///src/main/kotlin" to SourceKotlinRootType,
|
||||
"file:///src/main/resources" to ResourceKotlinRootType),
|
||||
getSourceRootInfos("project_main")
|
||||
)
|
||||
Assert.assertEquals(
|
||||
listOf("file:///src/test/java" to KotlinSourceRootType.TestSource,
|
||||
"file:///src/test/kotlin" to KotlinSourceRootType.TestSource,
|
||||
"file:///src/test/resources" to KotlinResourceRootType.TestResource),
|
||||
getSourceRootInfos("project_test")
|
||||
listOf("file:///src/test/java" to TestSourceKotlinRootType,
|
||||
"file:///src/test/kotlin" to TestSourceKotlinRootType,
|
||||
"file:///src/test/resources" to TestResourceKotlinRootType),
|
||||
getSourceRootInfos("project_test")
|
||||
)
|
||||
}
|
||||
|
||||
@@ -927,16 +927,16 @@ compileTestKotlin {
|
||||
assertEquals(CommonLibraryKind, libraries.single { it.name?.contains("kotlin-stdlib-common") == true }.kind)
|
||||
|
||||
Assert.assertEquals(
|
||||
listOf("file:///src/main/java" to KotlinSourceRootType.Source,
|
||||
"file:///src/main/kotlin" to KotlinSourceRootType.Source,
|
||||
"file:///src/main/resources" to KotlinResourceRootType.Resource),
|
||||
listOf("file:///src/main/java" to SourceKotlinRootType,
|
||||
"file:///src/main/kotlin" to SourceKotlinRootType,
|
||||
"file:///src/main/resources" to ResourceKotlinRootType),
|
||||
getSourceRootInfos("project_main")
|
||||
)
|
||||
Assert.assertEquals(
|
||||
listOf("file:///src/test/java" to KotlinSourceRootType.TestSource,
|
||||
"file:///src/test/kotlin" to KotlinSourceRootType.TestSource,
|
||||
"file:///src/test/resources" to KotlinResourceRootType.TestResource),
|
||||
getSourceRootInfos("project_test")
|
||||
listOf("file:///src/test/java" to TestSourceKotlinRootType,
|
||||
"file:///src/test/kotlin" to TestSourceKotlinRootType,
|
||||
"file:///src/test/resources" to TestResourceKotlinRootType),
|
||||
getSourceRootInfos("project_test")
|
||||
)
|
||||
}
|
||||
|
||||
@@ -987,16 +987,16 @@ compileTestKotlin {
|
||||
assertEquals(CommonLibraryKind, (stdlib as LibraryEx).kind)
|
||||
|
||||
Assert.assertEquals(
|
||||
listOf("file:///src/main/java" to KotlinSourceRootType.Source,
|
||||
"file:///src/main/kotlin" to KotlinSourceRootType.Source,
|
||||
"file:///src/main/resources" to KotlinResourceRootType.Resource),
|
||||
listOf("file:///src/main/java" to SourceKotlinRootType,
|
||||
"file:///src/main/kotlin" to SourceKotlinRootType,
|
||||
"file:///src/main/resources" to ResourceKotlinRootType),
|
||||
getSourceRootInfos("project_main")
|
||||
)
|
||||
Assert.assertEquals(
|
||||
listOf("file:///src/test/java" to KotlinSourceRootType.TestSource,
|
||||
"file:///src/test/kotlin" to KotlinSourceRootType.TestSource,
|
||||
"file:///src/test/resources" to KotlinResourceRootType.TestResource),
|
||||
getSourceRootInfos("project_test")
|
||||
listOf("file:///src/test/java" to TestSourceKotlinRootType,
|
||||
"file:///src/test/kotlin" to TestSourceKotlinRootType,
|
||||
"file:///src/test/resources" to TestResourceKotlinRootType),
|
||||
getSourceRootInfos("project_test")
|
||||
)
|
||||
}
|
||||
|
||||
@@ -1044,13 +1044,13 @@ compileTestKotlin {
|
||||
assertEquals(CommonLibraryKind, (stdlib as LibraryEx).kind)
|
||||
|
||||
Assert.assertEquals(
|
||||
listOf("file:///src/main/java" to KotlinSourceRootType.Source,
|
||||
"file:///src/main/kotlin" to KotlinSourceRootType.Source,
|
||||
"file:///src/test/java" to KotlinSourceRootType.TestSource,
|
||||
"file:///src/test/kotlin" to KotlinSourceRootType.TestSource,
|
||||
"file:///src/main/resources" to KotlinResourceRootType.Resource,
|
||||
"file:///src/test/resources" to KotlinResourceRootType.TestResource),
|
||||
getSourceRootInfos("project")
|
||||
listOf("file:///src/main/java" to SourceKotlinRootType,
|
||||
"file:///src/main/kotlin" to SourceKotlinRootType,
|
||||
"file:///src/test/java" to TestSourceKotlinRootType,
|
||||
"file:///src/test/kotlin" to TestSourceKotlinRootType,
|
||||
"file:///src/main/resources" to ResourceKotlinRootType,
|
||||
"file:///src/test/resources" to TestResourceKotlinRootType),
|
||||
getSourceRootInfos("project")
|
||||
)
|
||||
}
|
||||
|
||||
@@ -1131,16 +1131,16 @@ compileTestKotlin {
|
||||
}
|
||||
|
||||
Assert.assertEquals(
|
||||
listOf("file:///src/main/java" to KotlinSourceRootType.Source,
|
||||
"file:///src/main/kotlin" to KotlinSourceRootType.Source,
|
||||
"file:///src/main/resources" to KotlinResourceRootType.Resource),
|
||||
listOf("file:///src/main/java" to SourceKotlinRootType,
|
||||
"file:///src/main/kotlin" to SourceKotlinRootType,
|
||||
"file:///src/main/resources" to ResourceKotlinRootType),
|
||||
getSourceRootInfos("project_main")
|
||||
)
|
||||
Assert.assertEquals(
|
||||
listOf("file:///src/test/java" to KotlinSourceRootType.TestSource,
|
||||
"file:///src/test/kotlin" to KotlinSourceRootType.TestSource,
|
||||
"file:///src/test/resources" to KotlinResourceRootType.TestResource),
|
||||
getSourceRootInfos("project_test")
|
||||
listOf("file:///src/test/java" to TestSourceKotlinRootType,
|
||||
"file:///src/test/kotlin" to TestSourceKotlinRootType,
|
||||
"file:///src/test/resources" to TestResourceKotlinRootType),
|
||||
getSourceRootInfos("project_test")
|
||||
)
|
||||
}
|
||||
|
||||
@@ -2114,14 +2114,14 @@ compileTestKotlin {
|
||||
assertKotlinSdk("project_main", "project_test")
|
||||
|
||||
Assert.assertEquals(
|
||||
listOf("file:///src/main/kotlin" to KotlinSourceRootType.Source,
|
||||
"file:///src/main/resources" to KotlinResourceRootType.Resource),
|
||||
listOf("file:///src/main/kotlin" to SourceKotlinRootType,
|
||||
"file:///src/main/resources" to ResourceKotlinRootType),
|
||||
getSourceRootInfos("project_main")
|
||||
)
|
||||
Assert.assertEquals(
|
||||
listOf("file:///src/test/kotlin" to KotlinSourceRootType.TestSource,
|
||||
"file:///src/test/resources" to KotlinResourceRootType.TestResource),
|
||||
getSourceRootInfos("project_test")
|
||||
listOf("file:///src/test/kotlin" to TestSourceKotlinRootType,
|
||||
"file:///src/test/resources" to TestResourceKotlinRootType),
|
||||
getSourceRootInfos("project_test")
|
||||
)
|
||||
}
|
||||
|
||||
|
||||
@@ -13,8 +13,6 @@ import org.jetbrains.jps.model.module.JpsModuleSourceRootType
|
||||
|
||||
sealed class KotlinResourceRootType(val isTest: Boolean) : JpsElementTypeBase<JavaResourceRootProperties>(),
|
||||
JpsModuleSourceRootType<JavaResourceRootProperties>, KotlinRootType {
|
||||
object Resource : KotlinResourceRootType(false)
|
||||
object TestResource : KotlinResourceRootType(true)
|
||||
|
||||
override fun createDefaultProperties() =
|
||||
JpsJavaExtensionService.getInstance().createResourceRootProperties("", false)
|
||||
@@ -24,4 +22,7 @@ sealed class KotlinResourceRootType(val isTest: Boolean) : JpsElementTypeBase<Ja
|
||||
override fun isForTests() = isTest
|
||||
|
||||
override fun equals(other: Any?) = if (super.equals(other)) true else isSameRootType(this, other)
|
||||
}
|
||||
}
|
||||
|
||||
object ResourceKotlinRootType : KotlinResourceRootType(false)
|
||||
object TestResourceKotlinRootType : KotlinResourceRootType(true)
|
||||
@@ -13,8 +13,6 @@ import org.jetbrains.jps.model.module.JpsModuleSourceRootType
|
||||
|
||||
sealed class KotlinResourceRootType(val isTest: Boolean) : JpsElementTypeBase<JavaResourceRootProperties>(),
|
||||
JpsModuleSourceRootType<JavaResourceRootProperties>, KotlinRootType {
|
||||
object Resource : KotlinResourceRootType(false)
|
||||
object TestResource : KotlinResourceRootType(true)
|
||||
|
||||
override fun createDefaultProperties() =
|
||||
JpsJavaExtensionService.getInstance().createResourceRootProperties("", false)
|
||||
@@ -22,4 +20,7 @@ sealed class KotlinResourceRootType(val isTest: Boolean) : JpsElementTypeBase<Ja
|
||||
override fun isTestRoot() = isTest
|
||||
|
||||
override fun equals(other: Any?) = if (super.equals(other)) true else isSameRootType(this, other)
|
||||
}
|
||||
}
|
||||
|
||||
object ResourceKotlinRootType : KotlinResourceRootType(false)
|
||||
object TestResourceKotlinRootType : KotlinResourceRootType(true)
|
||||
@@ -13,12 +13,13 @@ import org.jetbrains.jps.model.module.JpsModuleSourceRootType
|
||||
|
||||
sealed class KotlinResourceRootType() : JpsElementTypeBase<JavaResourceRootProperties>(),
|
||||
JpsModuleSourceRootType<JavaResourceRootProperties> {
|
||||
object Resource : KotlinResourceRootType()
|
||||
|
||||
object TestResource : KotlinResourceRootType() {
|
||||
override fun isForTests() = true
|
||||
}
|
||||
|
||||
override fun createDefaultProperties() =
|
||||
JpsJavaExtensionService.getInstance().createResourceRootProperties("", false)
|
||||
}
|
||||
|
||||
object ResourceKotlinRootType : KotlinResourceRootType()
|
||||
|
||||
object TestResourceKotlinRootType : KotlinResourceRootType() {
|
||||
override fun isForTests() = true
|
||||
}
|
||||
@@ -13,8 +13,6 @@ import org.jetbrains.jps.model.module.JpsModuleSourceRootType
|
||||
|
||||
sealed class KotlinResourceRootType(val isTest: Boolean) : JpsElementTypeBase<JavaResourceRootProperties>(),
|
||||
JpsModuleSourceRootType<JavaResourceRootProperties>, KotlinRootType {
|
||||
object Resource : KotlinResourceRootType(false)
|
||||
object TestResource : KotlinResourceRootType(true)
|
||||
|
||||
override fun createDefaultProperties() =
|
||||
JpsJavaExtensionService.getInstance().createResourceRootProperties("", false)
|
||||
@@ -22,4 +20,7 @@ sealed class KotlinResourceRootType(val isTest: Boolean) : JpsElementTypeBase<Ja
|
||||
override fun isTestRoot() = isTest
|
||||
|
||||
override fun equals(other: Any?) = if (super.equals(other)) true else isSameRootType(this, other)
|
||||
}
|
||||
}
|
||||
|
||||
object ResourceKotlinRootType : KotlinResourceRootType(false)
|
||||
object TestResourceKotlinRootType : KotlinResourceRootType(true)
|
||||
@@ -12,14 +12,10 @@ import org.jetbrains.jps.model.java.JpsJavaExtensionService
|
||||
import org.jetbrains.jps.model.module.JpsModuleSourceRootType
|
||||
|
||||
sealed class KotlinSourceRootType(val isTest: Boolean) : JpsElementTypeBase<JavaSourceRootProperties>(), JpsModuleSourceRootType<JavaSourceRootProperties>, KotlinRootType {
|
||||
object Source : KotlinSourceRootType(false)
|
||||
object TestSource : KotlinSourceRootType(true)
|
||||
|
||||
|
||||
override fun createDefaultProperties() = JpsJavaExtensionService.getInstance().createSourceRootProperties("")
|
||||
|
||||
companion object {
|
||||
val ALL_SOURCES = setOf(Source, TestSource)
|
||||
}
|
||||
|
||||
override fun isTestRoot() = isTest
|
||||
|
||||
@@ -28,3 +24,8 @@ sealed class KotlinSourceRootType(val isTest: Boolean) : JpsElementTypeBase<Java
|
||||
override fun equals(other: Any?) = if (super.equals(other)) true else isSameRootType(this, other)
|
||||
}
|
||||
|
||||
object SourceKotlinRootType : KotlinSourceRootType(false)
|
||||
|
||||
object TestSourceKotlinRootType : KotlinSourceRootType(true)
|
||||
|
||||
val ALL_KOTLIN_SOURCE_ROOT_TYPES = setOf(SourceKotlinRootType, TestSourceKotlinRootType)
|
||||
|
||||
@@ -12,17 +12,18 @@ import org.jetbrains.jps.model.java.JpsJavaExtensionService
|
||||
import org.jetbrains.jps.model.module.JpsModuleSourceRootType
|
||||
|
||||
sealed class KotlinSourceRootType(val isTest: Boolean) : JpsElementTypeBase<JavaSourceRootProperties>(), JpsModuleSourceRootType<JavaSourceRootProperties>, KotlinRootType {
|
||||
object Source : KotlinSourceRootType(false)
|
||||
object TestSource : KotlinSourceRootType(true)
|
||||
|
||||
|
||||
override fun createDefaultProperties() = JpsJavaExtensionService.getInstance().createSourceRootProperties("")
|
||||
|
||||
companion object {
|
||||
val ALL_SOURCES = setOf(Source, TestSource)
|
||||
}
|
||||
|
||||
override fun isTestRoot() = isTest
|
||||
|
||||
override fun equals(other: Any?) = if (super.equals(other)) true else isSameRootType(this, other)
|
||||
}
|
||||
|
||||
object SourceKotlinRootType : KotlinSourceRootType(false)
|
||||
|
||||
object TestSourceKotlinRootType : KotlinSourceRootType(true)
|
||||
|
||||
val ALL_KOTLIN_SOURCE_ROOT_TYPES = setOf(SourceKotlinRootType, TestSourceKotlinRootType)
|
||||
|
||||
@@ -12,16 +12,15 @@ import org.jetbrains.jps.model.java.JpsJavaExtensionService
|
||||
import org.jetbrains.jps.model.module.JpsModuleSourceRootType
|
||||
|
||||
sealed class KotlinSourceRootType() : JpsElementTypeBase<JavaSourceRootProperties>(), JpsModuleSourceRootType<JavaSourceRootProperties> {
|
||||
object Source : KotlinSourceRootType()
|
||||
|
||||
object TestSource : KotlinSourceRootType() {
|
||||
override fun isForTests() = true
|
||||
}
|
||||
|
||||
override fun createDefaultProperties() = JpsJavaExtensionService.getInstance().createSourceRootProperties("")
|
||||
|
||||
companion object {
|
||||
val ALL_SOURCES = setOf(Source, TestSource)
|
||||
}
|
||||
}
|
||||
|
||||
object SourceKotlinRootType : KotlinSourceRootType()
|
||||
|
||||
object TestSourceKotlinRootType : KotlinSourceRootType() {
|
||||
override fun isForTests() = true
|
||||
}
|
||||
|
||||
val ALL_KOTLIN_SOURCE_ROOT_TYPES = setOf(SourceKotlinRootType, TestSourceKotlinRootType)
|
||||
|
||||
@@ -12,17 +12,20 @@ import org.jetbrains.jps.model.java.JpsJavaExtensionService
|
||||
import org.jetbrains.jps.model.module.JpsModuleSourceRootType
|
||||
|
||||
sealed class KotlinSourceRootType(val isTest: Boolean) : JpsElementTypeBase<JavaSourceRootProperties>(), JpsModuleSourceRootType<JavaSourceRootProperties>, KotlinRootType {
|
||||
object Source : KotlinSourceRootType(false)
|
||||
object TestSource : KotlinSourceRootType(true)
|
||||
|
||||
|
||||
override fun createDefaultProperties() = JpsJavaExtensionService.getInstance().createSourceRootProperties("")
|
||||
|
||||
companion object {
|
||||
val ALL_SOURCES = setOf(Source, TestSource)
|
||||
}
|
||||
|
||||
override fun isTestRoot() = isTest
|
||||
|
||||
fun isForTests() = isTest
|
||||
|
||||
override fun equals(other: Any?) = if (super.equals(other)) true else isSameRootType(this, other)
|
||||
}
|
||||
|
||||
object SourceKotlinRootType : KotlinSourceRootType(false)
|
||||
|
||||
object TestSourceKotlinRootType : KotlinSourceRootType(true)
|
||||
|
||||
val ALL_KOTLIN_SOURCE_ROOT_TYPES = setOf(SourceKotlinRootType, TestSourceKotlinRootType)
|
||||
|
||||
@@ -0,0 +1,31 @@
|
||||
/*
|
||||
* Copyright 2010-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.config
|
||||
|
||||
import org.jetbrains.jps.model.ex.JpsElementTypeBase
|
||||
import org.jetbrains.jps.model.java.JavaSourceRootProperties
|
||||
import org.jetbrains.jps.model.java.JavaSourceRootType
|
||||
import org.jetbrains.jps.model.java.JpsJavaExtensionService
|
||||
import org.jetbrains.jps.model.module.JpsModuleSourceRootType
|
||||
|
||||
sealed class KotlinSourceRootType(val isTest: Boolean) : JpsElementTypeBase<JavaSourceRootProperties>(), JpsModuleSourceRootType<JavaSourceRootProperties>, KotlinRootType {
|
||||
|
||||
|
||||
override fun createDefaultProperties() = JpsJavaExtensionService.getInstance().createSourceRootProperties("")
|
||||
|
||||
|
||||
override fun isTestRoot() = isTest
|
||||
|
||||
fun isForTests() = isTest
|
||||
|
||||
override fun equals(other: Any?) = if (super.equals(other)) true else isSameRootType(this, other)
|
||||
}
|
||||
|
||||
object SourceKotlinRootType : KotlinSourceRootType(false)
|
||||
|
||||
object TestSourceKotlinRootType : KotlinSourceRootType(true)
|
||||
|
||||
val ALL_KOTLIN_SOURCE_ROOT_TYPES = setOf(SourceKotlinRootType, TestSourceKotlinRootType)
|
||||
+5
-5
@@ -27,12 +27,12 @@ sealed class KotlinSourceRootPropertiesSerializer(
|
||||
typeId: String
|
||||
) : JpsModuleSourceRootPropertiesSerializer<JavaSourceRootProperties>(type, typeId) {
|
||||
object Source : KotlinSourceRootPropertiesSerializer(
|
||||
KotlinSourceRootType.Source,
|
||||
SourceKotlinRootType,
|
||||
KOTLIN_SOURCE_ROOT_TYPE_ID
|
||||
)
|
||||
|
||||
object TestSource : KotlinSourceRootPropertiesSerializer(
|
||||
KotlinSourceRootType.TestSource,
|
||||
TestSourceKotlinRootType,
|
||||
KOTLIN_TEST_ROOT_TYPE_ID
|
||||
)
|
||||
|
||||
@@ -59,12 +59,12 @@ sealed class KotlinResourceRootPropertiesSerializer(
|
||||
typeId: String
|
||||
) : JpsModuleSourceRootPropertiesSerializer<JavaResourceRootProperties>(type, typeId) {
|
||||
object Resource : KotlinResourceRootPropertiesSerializer(
|
||||
KotlinResourceRootType.Resource,
|
||||
ResourceKotlinRootType,
|
||||
KOTLIN_RESOURCE_ROOT_TYPE_ID
|
||||
)
|
||||
object TestResource : KotlinResourceRootPropertiesSerializer(
|
||||
KotlinResourceRootType.TestResource,
|
||||
KOTLIN_TEST_RESOURCE_ROOT_TYPE_ID
|
||||
TestResourceKotlinRootType,
|
||||
KOTLIN_TEST_RESOURCE_ROOT_TYPE_ID
|
||||
)
|
||||
|
||||
override fun loadProperties(sourceRootTag: Element): JavaResourceRootProperties {
|
||||
|
||||
@@ -331,8 +331,8 @@ class KotlinMavenImporter : MavenImporter(KOTLIN_PLUGIN_GROUP_ID, KOTLIN_PLUGIN_
|
||||
.flatMap { it.goals.asSequence() }
|
||||
.any { it in PomFile.KotlinGoals.CompileGoals && it !in PomFile.KotlinGoals.JvmGoals }
|
||||
|
||||
val prodSourceRootType: JpsModuleSourceRootType<*> = if (isNonJvmModule) KotlinSourceRootType.Source else JavaSourceRootType.SOURCE
|
||||
val testSourceRootType: JpsModuleSourceRootType<*> = if (isNonJvmModule) KotlinSourceRootType.TestSource else JavaSourceRootType.TEST_SOURCE
|
||||
val prodSourceRootType: JpsModuleSourceRootType<*> = if (isNonJvmModule) SourceKotlinRootType else JavaSourceRootType.SOURCE
|
||||
val testSourceRootType: JpsModuleSourceRootType<*> = if (isNonJvmModule) TestSourceKotlinRootType else JavaSourceRootType.TEST_SOURCE
|
||||
|
||||
for ((type, dir) in directories) {
|
||||
if (rootModel.getSourceFolder(File(dir)) == null) {
|
||||
@@ -346,10 +346,10 @@ class KotlinMavenImporter : MavenImporter(KOTLIN_PLUGIN_GROUP_ID, KOTLIN_PLUGIN_
|
||||
}
|
||||
|
||||
if (isNonJvmModule) {
|
||||
mavenProject.sources.forEach { rootModel.addSourceFolder(it, KotlinSourceRootType.Source) }
|
||||
mavenProject.testSources.forEach { rootModel.addSourceFolder(it, KotlinSourceRootType.TestSource) }
|
||||
mavenProject.resources.forEach { rootModel.addSourceFolder(it.directory, KotlinResourceRootType.Resource) }
|
||||
mavenProject.testResources.forEach { rootModel.addSourceFolder(it.directory, KotlinResourceRootType.TestResource) }
|
||||
mavenProject.sources.forEach { rootModel.addSourceFolder(it, SourceKotlinRootType) }
|
||||
mavenProject.testSources.forEach { rootModel.addSourceFolder(it, TestSourceKotlinRootType) }
|
||||
mavenProject.resources.forEach { rootModel.addSourceFolder(it.directory, ResourceKotlinRootType) }
|
||||
mavenProject.testResources.forEach { rootModel.addSourceFolder(it.directory, TestResourceKotlinRootType) }
|
||||
KotlinSdkType.setUpIfNeeded()
|
||||
}
|
||||
|
||||
|
||||
@@ -40,8 +40,9 @@ import org.jetbrains.idea.maven.project.MavenProjectsManager
|
||||
import org.jetbrains.idea.maven.utils.MavenArtifactScope
|
||||
import org.jetbrains.jps.model.java.JavaSourceRootType
|
||||
import org.jetbrains.kotlin.cli.common.arguments.CliArgumentStringBuilder.buildArgumentString
|
||||
import org.jetbrains.kotlin.config.KotlinSourceRootType
|
||||
import org.jetbrains.kotlin.config.LanguageFeature
|
||||
import org.jetbrains.kotlin.config.SourceKotlinRootType
|
||||
import org.jetbrains.kotlin.config.TestSourceKotlinRootType
|
||||
import org.jetbrains.kotlin.idea.configuration.RepositoryDescription
|
||||
import org.jetbrains.kotlin.idea.maven.configuration.KotlinMavenConfigurator
|
||||
import org.jetbrains.kotlin.psi.psiUtil.getChildrenOfType
|
||||
@@ -500,9 +501,9 @@ class PomFile private constructor(private val xmlFile: XmlFile, val domModel: Ma
|
||||
|
||||
private fun SourceFolder.isRelatedSourceRoot(isTest: Boolean): Boolean {
|
||||
return if (isTest) {
|
||||
rootType == JavaSourceRootType.TEST_SOURCE || rootType == KotlinSourceRootType.TestSource
|
||||
rootType == JavaSourceRootType.TEST_SOURCE || rootType == TestSourceKotlinRootType
|
||||
} else {
|
||||
rootType == JavaSourceRootType.SOURCE || rootType == KotlinSourceRootType.Source
|
||||
rootType == JavaSourceRootType.SOURCE || rootType == SourceKotlinRootType
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
+2
-2
@@ -30,7 +30,7 @@ import com.intellij.psi.PsiDocumentManager
|
||||
import com.intellij.psi.PsiManager
|
||||
import com.intellij.psi.search.FileTypeIndex
|
||||
import org.jetbrains.jps.model.java.JavaSourceRootType
|
||||
import org.jetbrains.kotlin.config.KotlinSourceRootType
|
||||
import org.jetbrains.kotlin.config.SourceKotlinRootType
|
||||
import org.jetbrains.kotlin.idea.inspections.runInspection
|
||||
import org.jetbrains.kotlin.idea.maven.inspections.KotlinMavenPluginPhaseInspection
|
||||
import org.jetbrains.kotlin.idea.refactoring.toPsiDirectory
|
||||
@@ -181,7 +181,7 @@ abstract class AbstractKotlinMavenInspectionTest : MavenImportingTestCase() {
|
||||
val contentEntry = getContentRoots(myProject.allModules().single().name).single()
|
||||
val sourceFolder =
|
||||
contentEntry.getSourceFolders(JavaSourceRootType.SOURCE).singleOrNull() ?:
|
||||
contentEntry.getSourceFolders(KotlinSourceRootType.Source).singleOrNull()
|
||||
contentEntry.getSourceFolders(SourceKotlinRootType).singleOrNull()
|
||||
ApplicationManager.getApplication().runWriteAction {
|
||||
val javaFile = sourceFolder?.file?.toPsiDirectory(myProject)?.createFile("Test.java") ?: throw IllegalStateException()
|
||||
javaFile.viewProvider.document!!.setText("class Test {}\n")
|
||||
|
||||
@@ -843,10 +843,10 @@ class KotlinMavenImporterTest : MavenImportingTestCase() {
|
||||
|
||||
Assert.assertTrue(ModuleRootManager.getInstance(getModule("project")).sdk!!.sdkType is KotlinSdkType)
|
||||
|
||||
assertContentFolders("project", KotlinSourceRootType.Source, "src/main/kotlin")
|
||||
assertContentFolders("project", KotlinSourceRootType.TestSource, "src/test/java")
|
||||
assertContentFolders("project", KotlinResourceRootType.Resource, "src/main/resources")
|
||||
assertContentFolders("project", KotlinResourceRootType.TestResource, "src/test/resources")
|
||||
assertContentFolders("project", SourceKotlinRootType, "src/main/kotlin")
|
||||
assertContentFolders("project", TestSourceKotlinRootType, "src/test/java")
|
||||
assertContentFolders("project", ResourceKotlinRootType, "src/main/resources")
|
||||
assertContentFolders("project", TestResourceKotlinRootType, "src/test/resources")
|
||||
}
|
||||
|
||||
fun testJsCustomOutputPaths() {
|
||||
@@ -1315,10 +1315,10 @@ class KotlinMavenImporterTest : MavenImportingTestCase() {
|
||||
|
||||
Assert.assertTrue(ModuleRootManager.getInstance(getModule("project")).sdk!!.sdkType is KotlinSdkType)
|
||||
|
||||
assertContentFolders("project", KotlinSourceRootType.Source, "src/main/kotlin")
|
||||
assertContentFolders("project", KotlinSourceRootType.TestSource, "src/test/java")
|
||||
assertContentFolders("project", KotlinResourceRootType.Resource, "src/main/resources")
|
||||
assertContentFolders("project", KotlinResourceRootType.TestResource, "src/test/resources")
|
||||
assertContentFolders("project", SourceKotlinRootType, "src/main/kotlin")
|
||||
assertContentFolders("project", TestSourceKotlinRootType, "src/test/java")
|
||||
assertContentFolders("project", ResourceKotlinRootType, "src/main/resources")
|
||||
assertContentFolders("project", TestResourceKotlinRootType, "src/test/resources")
|
||||
}
|
||||
|
||||
fun testJsDetectionByGoalWithJsStdlib() {
|
||||
@@ -1372,10 +1372,10 @@ class KotlinMavenImporterTest : MavenImportingTestCase() {
|
||||
|
||||
Assert.assertTrue(ModuleRootManager.getInstance(getModule("project")).sdk!!.sdkType is KotlinSdkType)
|
||||
|
||||
assertContentFolders("project", KotlinSourceRootType.Source, "src/main/kotlin")
|
||||
assertContentFolders("project", KotlinSourceRootType.TestSource, "src/test/java")
|
||||
assertContentFolders("project", KotlinResourceRootType.Resource, "src/main/resources")
|
||||
assertContentFolders("project", KotlinResourceRootType.TestResource, "src/test/resources")
|
||||
assertContentFolders("project", SourceKotlinRootType, "src/main/kotlin")
|
||||
assertContentFolders("project", TestSourceKotlinRootType, "src/test/java")
|
||||
assertContentFolders("project", ResourceKotlinRootType, "src/main/resources")
|
||||
assertContentFolders("project", TestResourceKotlinRootType, "src/test/resources")
|
||||
}
|
||||
|
||||
fun testJsDetectionByGoalWithCommonStdlib() {
|
||||
@@ -1429,10 +1429,10 @@ class KotlinMavenImporterTest : MavenImportingTestCase() {
|
||||
|
||||
Assert.assertTrue(ModuleRootManager.getInstance(getModule("project")).sdk!!.sdkType is KotlinSdkType)
|
||||
|
||||
assertContentFolders("project", KotlinSourceRootType.Source, "src/main/kotlin")
|
||||
assertContentFolders("project", KotlinSourceRootType.TestSource, "src/test/java")
|
||||
assertContentFolders("project", KotlinResourceRootType.Resource, "src/main/resources")
|
||||
assertContentFolders("project", KotlinResourceRootType.TestResource, "src/test/resources")
|
||||
assertContentFolders("project", SourceKotlinRootType, "src/main/kotlin")
|
||||
assertContentFolders("project", TestSourceKotlinRootType, "src/test/java")
|
||||
assertContentFolders("project", ResourceKotlinRootType, "src/main/resources")
|
||||
assertContentFolders("project", TestResourceKotlinRootType, "src/test/resources")
|
||||
}
|
||||
|
||||
fun testJsAndCommonStdlibKinds() {
|
||||
@@ -1494,10 +1494,10 @@ class KotlinMavenImporterTest : MavenImportingTestCase() {
|
||||
assertEquals(JSLibraryKind, libraries.single { it.name?.contains("kotlin-stdlib-js") == true }.kind)
|
||||
assertEquals(CommonLibraryKind, libraries.single { it.name?.contains("kotlin-stdlib-common") == true }.kind)
|
||||
|
||||
assertContentFolders("project", KotlinSourceRootType.Source, "src/main/kotlin")
|
||||
assertContentFolders("project", KotlinSourceRootType.TestSource, "src/test/java")
|
||||
assertContentFolders("project", KotlinResourceRootType.Resource, "src/main/resources")
|
||||
assertContentFolders("project", KotlinResourceRootType.TestResource, "src/test/resources")
|
||||
assertContentFolders("project", SourceKotlinRootType, "src/main/kotlin")
|
||||
assertContentFolders("project", TestSourceKotlinRootType, "src/test/java")
|
||||
assertContentFolders("project", ResourceKotlinRootType, "src/main/resources")
|
||||
assertContentFolders("project", TestResourceKotlinRootType, "src/test/resources")
|
||||
}
|
||||
|
||||
fun testCommonDetectionByGoalWithJvmStdlib() {
|
||||
@@ -1545,10 +1545,10 @@ class KotlinMavenImporterTest : MavenImportingTestCase() {
|
||||
|
||||
Assert.assertTrue(ModuleRootManager.getInstance(getModule("project")).sdk!!.sdkType is KotlinSdkType)
|
||||
|
||||
assertContentFolders("project", KotlinSourceRootType.Source, "src/main/kotlin")
|
||||
assertContentFolders("project", KotlinSourceRootType.TestSource, "src/test/java")
|
||||
assertContentFolders("project", KotlinResourceRootType.Resource, "src/main/resources")
|
||||
assertContentFolders("project", KotlinResourceRootType.TestResource, "src/test/resources")
|
||||
assertContentFolders("project", SourceKotlinRootType, "src/main/kotlin")
|
||||
assertContentFolders("project", TestSourceKotlinRootType, "src/test/java")
|
||||
assertContentFolders("project", ResourceKotlinRootType, "src/main/resources")
|
||||
assertContentFolders("project", TestResourceKotlinRootType, "src/test/resources")
|
||||
}
|
||||
|
||||
fun testCommonDetectionByGoalWithJsStdlib() {
|
||||
@@ -1596,10 +1596,10 @@ class KotlinMavenImporterTest : MavenImportingTestCase() {
|
||||
|
||||
Assert.assertTrue(ModuleRootManager.getInstance(getModule("project")).sdk!!.sdkType is KotlinSdkType)
|
||||
|
||||
assertContentFolders("project", KotlinSourceRootType.Source, "src/main/kotlin")
|
||||
assertContentFolders("project", KotlinSourceRootType.TestSource, "src/test/java")
|
||||
assertContentFolders("project", KotlinResourceRootType.Resource, "src/main/resources")
|
||||
assertContentFolders("project", KotlinResourceRootType.TestResource, "src/test/resources")
|
||||
assertContentFolders("project", SourceKotlinRootType, "src/main/kotlin")
|
||||
assertContentFolders("project", TestSourceKotlinRootType, "src/test/java")
|
||||
assertContentFolders("project", ResourceKotlinRootType, "src/main/resources")
|
||||
assertContentFolders("project", TestResourceKotlinRootType, "src/test/resources")
|
||||
}
|
||||
|
||||
fun testCommonDetectionByGoalWithCommonStdlib() {
|
||||
@@ -1651,10 +1651,10 @@ class KotlinMavenImporterTest : MavenImportingTestCase() {
|
||||
|
||||
Assert.assertTrue(ModuleRootManager.getInstance(getModule("project")).sdk!!.sdkType is KotlinSdkType)
|
||||
|
||||
assertContentFolders("project", KotlinSourceRootType.Source, "src/main/kotlin")
|
||||
assertContentFolders("project", KotlinSourceRootType.TestSource, "src/test/java")
|
||||
assertContentFolders("project", KotlinResourceRootType.Resource, "src/main/resources")
|
||||
assertContentFolders("project", KotlinResourceRootType.TestResource, "src/test/resources")
|
||||
assertContentFolders("project", SourceKotlinRootType, "src/main/kotlin")
|
||||
assertContentFolders("project", TestSourceKotlinRootType, "src/test/java")
|
||||
assertContentFolders("project", ResourceKotlinRootType, "src/main/resources")
|
||||
assertContentFolders("project", TestResourceKotlinRootType, "src/test/resources")
|
||||
}
|
||||
|
||||
fun testJvmDetectionByConflictingGoalsAndJvmStdlib() {
|
||||
@@ -1706,10 +1706,10 @@ class KotlinMavenImporterTest : MavenImportingTestCase() {
|
||||
|
||||
Assert.assertEquals(JvmIdePlatformKind.Platform(JvmTarget.JVM_1_6), facetSettings.platform)
|
||||
|
||||
assertContentFolders("project", KotlinSourceRootType.Source, "src/main/kotlin")
|
||||
assertContentFolders("project", KotlinSourceRootType.TestSource, "src/test/java")
|
||||
assertContentFolders("project", KotlinResourceRootType.Resource, "src/main/resources")
|
||||
assertContentFolders("project", KotlinResourceRootType.TestResource, "src/test/resources")
|
||||
assertContentFolders("project", SourceKotlinRootType, "src/main/kotlin")
|
||||
assertContentFolders("project", TestSourceKotlinRootType, "src/test/java")
|
||||
assertContentFolders("project", ResourceKotlinRootType, "src/main/resources")
|
||||
assertContentFolders("project", TestResourceKotlinRootType, "src/test/resources")
|
||||
}
|
||||
|
||||
fun testJsDetectionByConflictingGoalsAndJsStdlib() {
|
||||
@@ -1761,10 +1761,10 @@ class KotlinMavenImporterTest : MavenImportingTestCase() {
|
||||
|
||||
Assert.assertTrue(facetSettings.platform.isJavaScript)
|
||||
|
||||
assertContentFolders("project", KotlinSourceRootType.Source, "src/main/kotlin")
|
||||
assertContentFolders("project", KotlinSourceRootType.TestSource, "src/test/java")
|
||||
assertContentFolders("project", KotlinResourceRootType.Resource, "src/main/resources")
|
||||
assertContentFolders("project", KotlinResourceRootType.TestResource, "src/test/resources")
|
||||
assertContentFolders("project", SourceKotlinRootType, "src/main/kotlin")
|
||||
assertContentFolders("project", TestSourceKotlinRootType, "src/test/java")
|
||||
assertContentFolders("project", ResourceKotlinRootType, "src/main/resources")
|
||||
assertContentFolders("project", TestResourceKotlinRootType, "src/test/resources")
|
||||
}
|
||||
|
||||
fun testCommonDetectionByConflictingGoalsAndCommonStdlib() {
|
||||
@@ -1816,10 +1816,10 @@ class KotlinMavenImporterTest : MavenImportingTestCase() {
|
||||
|
||||
Assert.assertTrue(facetSettings.platform.isCommon)
|
||||
|
||||
assertContentFolders("project", KotlinSourceRootType.Source, "src/main/kotlin")
|
||||
assertContentFolders("project", KotlinSourceRootType.TestSource, "src/test/java")
|
||||
assertContentFolders("project", KotlinResourceRootType.Resource, "src/main/resources")
|
||||
assertContentFolders("project", KotlinResourceRootType.TestResource, "src/test/resources")
|
||||
assertContentFolders("project", SourceKotlinRootType, "src/main/kotlin")
|
||||
assertContentFolders("project", TestSourceKotlinRootType, "src/test/java")
|
||||
assertContentFolders("project", ResourceKotlinRootType, "src/main/resources")
|
||||
assertContentFolders("project", TestResourceKotlinRootType, "src/test/resources")
|
||||
}
|
||||
|
||||
fun testNoPluginsInAdditionalArgs() {
|
||||
|
||||
@@ -10,8 +10,8 @@ import com.intellij.openapi.roots.ModuleRootModel
|
||||
import com.intellij.openapi.roots.OrderEnumerationHandler
|
||||
import com.intellij.openapi.roots.OrderRootType
|
||||
import org.jetbrains.jps.model.module.JpsModuleSourceRootType
|
||||
import org.jetbrains.kotlin.config.KotlinResourceRootType
|
||||
import org.jetbrains.kotlin.config.KotlinSourceRootType
|
||||
import org.jetbrains.kotlin.config.TestResourceKotlinRootType
|
||||
import org.jetbrains.kotlin.config.TestSourceKotlinRootType
|
||||
|
||||
object KotlinNonJvmOrderEnumerationHandler : OrderEnumerationHandler() {
|
||||
class Factory : OrderEnumerationHandler.Factory() {
|
||||
@@ -20,7 +20,7 @@ object KotlinNonJvmOrderEnumerationHandler : OrderEnumerationHandler() {
|
||||
}
|
||||
|
||||
private val kotlinTestSourceRootTypes: Set<JpsModuleSourceRootType<*>> =
|
||||
setOf(KotlinSourceRootType.TestSource, KotlinResourceRootType.TestResource)
|
||||
setOf(TestSourceKotlinRootType, TestResourceKotlinRootType)
|
||||
|
||||
override fun addCustomModuleRoots(
|
||||
type: OrderRootType,
|
||||
|
||||
@@ -20,8 +20,7 @@ import org.jetbrains.jps.model.java.JavaSourceRootProperties
|
||||
import org.jetbrains.jps.model.java.JavaSourceRootType
|
||||
import org.jetbrains.jps.model.module.JpsModuleSourceRoot
|
||||
import org.jetbrains.jps.model.module.JpsModuleSourceRootType
|
||||
import org.jetbrains.kotlin.config.KotlinResourceRootType
|
||||
import org.jetbrains.kotlin.config.KotlinSourceRootType
|
||||
import org.jetbrains.kotlin.config.*
|
||||
import org.jetbrains.kotlin.idea.framework.KotlinSdkType
|
||||
|
||||
private fun JpsModuleSourceRoot.getOrCreateProperties() =
|
||||
@@ -31,10 +30,10 @@ fun JpsModuleSourceRoot.getMigratedSourceRootTypeWithProperties(): Pair<JpsModul
|
||||
val currentRootType = rootType
|
||||
@Suppress("UNCHECKED_CAST")
|
||||
val newSourceRootType: JpsModuleSourceRootType<JpsElement> = when (currentRootType) {
|
||||
JavaSourceRootType.SOURCE -> KotlinSourceRootType.Source
|
||||
JavaSourceRootType.TEST_SOURCE -> KotlinSourceRootType.TestSource
|
||||
JavaResourceRootType.RESOURCE -> KotlinResourceRootType.Resource
|
||||
JavaResourceRootType.TEST_RESOURCE -> KotlinResourceRootType.TestResource
|
||||
JavaSourceRootType.SOURCE -> SourceKotlinRootType
|
||||
JavaSourceRootType.TEST_SOURCE -> TestSourceKotlinRootType
|
||||
JavaResourceRootType.RESOURCE -> ResourceKotlinRootType
|
||||
JavaResourceRootType.TEST_RESOURCE -> TestResourceKotlinRootType
|
||||
else -> return null
|
||||
} as JpsModuleSourceRootType<JpsElement>
|
||||
return newSourceRootType to getOrCreateProperties()
|
||||
@@ -57,7 +56,7 @@ fun getKotlinAwareDestinationSourceRoots(project: Project): List<VirtualFile> {
|
||||
}
|
||||
|
||||
private val KOTLIN_AWARE_SOURCE_ROOT_TYPES: Set<JpsModuleSourceRootType<JavaSourceRootProperties>> =
|
||||
JavaModuleSourceRootTypes.SOURCES + KotlinSourceRootType.ALL_SOURCES
|
||||
JavaModuleSourceRootTypes.SOURCES + ALL_KOTLIN_SOURCE_ROOT_TYPES
|
||||
|
||||
private fun Module.collectKotlinAwareDestinationSourceRoots(): List<VirtualFile> {
|
||||
return rootManager
|
||||
|
||||
@@ -8,19 +8,18 @@ package org.jetbrains.kotlin.idea.roots.ui
|
||||
import com.intellij.openapi.roots.ContentEntry
|
||||
import com.intellij.openapi.roots.ui.configuration.*
|
||||
import com.intellij.openapi.vfs.VirtualFile
|
||||
import org.jetbrains.kotlin.config.KotlinResourceRootType
|
||||
import org.jetbrains.kotlin.config.KotlinSourceRootType
|
||||
import org.jetbrains.kotlin.config.*
|
||||
|
||||
class KotlinContentEntriesEditor(
|
||||
moduleName: String,
|
||||
state: ModuleConfigurationState
|
||||
) : CommonContentEntriesEditor(
|
||||
moduleName,
|
||||
state,
|
||||
KotlinSourceRootType.Source,
|
||||
KotlinSourceRootType.TestSource,
|
||||
KotlinResourceRootType.Resource,
|
||||
KotlinResourceRootType.TestResource
|
||||
moduleName,
|
||||
state,
|
||||
SourceKotlinRootType,
|
||||
TestSourceKotlinRootType,
|
||||
ResourceKotlinRootType,
|
||||
TestResourceKotlinRootType
|
||||
) {
|
||||
private val javaEditor by lazy {
|
||||
object : JavaContentEntriesEditor(moduleName, state) {
|
||||
|
||||
@@ -10,31 +10,30 @@ import org.jetbrains.jps.model.JpsElement
|
||||
import org.jetbrains.jps.model.java.JavaResourceRootProperties
|
||||
import org.jetbrains.jps.model.java.JavaSourceRootProperties
|
||||
import org.jetbrains.jps.model.module.JpsModuleSourceRootType
|
||||
import org.jetbrains.kotlin.config.KotlinResourceRootType
|
||||
import org.jetbrains.kotlin.config.KotlinSourceRootType
|
||||
import org.jetbrains.kotlin.config.*
|
||||
|
||||
sealed class KotlinModuleSourceRootEditHandler<Data : JpsElement>(
|
||||
rootType: JpsModuleSourceRootType<Data>,
|
||||
private val delegate: ModuleSourceRootEditHandler<Data>
|
||||
) : ModuleSourceRootEditHandler<Data>(rootType) {
|
||||
class Source : KotlinModuleSourceRootEditHandler<JavaSourceRootProperties>(
|
||||
KotlinSourceRootType.Source,
|
||||
JavaModuleSourceRootEditHandler()
|
||||
SourceKotlinRootType,
|
||||
JavaModuleSourceRootEditHandler()
|
||||
)
|
||||
|
||||
class TestSource : KotlinModuleSourceRootEditHandler<JavaSourceRootProperties>(
|
||||
KotlinSourceRootType.TestSource,
|
||||
JavaTestSourceRootEditHandler()
|
||||
TestSourceKotlinRootType,
|
||||
JavaTestSourceRootEditHandler()
|
||||
)
|
||||
|
||||
class Resource : KotlinModuleSourceRootEditHandler<JavaResourceRootProperties>(
|
||||
KotlinResourceRootType.Resource,
|
||||
JavaResourceRootEditHandler()
|
||||
ResourceKotlinRootType,
|
||||
JavaResourceRootEditHandler()
|
||||
)
|
||||
|
||||
class TestResource : KotlinModuleSourceRootEditHandler<JavaResourceRootProperties>(
|
||||
KotlinResourceRootType.TestResource,
|
||||
JavaTestResourceRootEditHandler()
|
||||
TestResourceKotlinRootType,
|
||||
JavaTestResourceRootEditHandler()
|
||||
)
|
||||
|
||||
override fun getUnmarkRootButtonText() = delegate.unmarkRootButtonText
|
||||
|
||||
@@ -12,7 +12,8 @@ import org.jetbrains.jps.builders.java.ResourcesTargetType
|
||||
import org.jetbrains.jps.builders.storage.BuildDataPaths
|
||||
import org.jetbrains.jps.incremental.ResourcesTarget
|
||||
import org.jetbrains.jps.model.java.JavaResourceRootProperties
|
||||
import org.jetbrains.kotlin.config.KotlinResourceRootType
|
||||
import org.jetbrains.kotlin.config.ResourceKotlinRootType
|
||||
import org.jetbrains.kotlin.config.TestResourceKotlinRootType
|
||||
|
||||
class KotlinResourcesRootProvider : AdditionalRootsProviderService<ResourceRootDescriptor>(ResourcesTargetType.ALL_TYPES) {
|
||||
override fun getAdditionalRoots(
|
||||
@@ -26,7 +27,7 @@ class KotlinResourcesRootProvider : AdditionalRootsProviderService<ResourceRootD
|
||||
|
||||
// Add source roots with type KotlinResourceRootType.
|
||||
// See the note in KotlinSourceRootProvider
|
||||
val kotlinResourceRootType = if (target.isTests) KotlinResourceRootType.TestResource else KotlinResourceRootType.Resource
|
||||
val kotlinResourceRootType = if (target.isTests) TestResourceKotlinRootType else ResourceKotlinRootType
|
||||
module.getSourceRoots(kotlinResourceRootType).forEach {
|
||||
result.add(
|
||||
ResourceRootDescriptor(
|
||||
|
||||
@@ -16,8 +16,7 @@ import org.jetbrains.jps.model.java.JavaSourceRootProperties
|
||||
import org.jetbrains.jps.model.java.JavaSourceRootType
|
||||
import org.jetbrains.jps.model.module.JpsModule
|
||||
import org.jetbrains.jps.model.module.JpsModuleSourceRootType
|
||||
import org.jetbrains.kotlin.config.KotlinResourceRootType
|
||||
import org.jetbrains.kotlin.config.KotlinSourceRootType
|
||||
import org.jetbrains.kotlin.config.*
|
||||
import org.jetbrains.kotlin.jps.model.expectedByModules
|
||||
import org.jetbrains.kotlin.jps.model.isTestModule
|
||||
import org.jetbrains.kotlin.jps.model.sourceSetModules
|
||||
@@ -39,7 +38,7 @@ class KotlinSourceRootProvider : AdditionalRootsProviderService<JavaSourceRootDe
|
||||
// `ModuleBuildTarget.computeAllTargets`. `ModuleBuildTarget` is required for incremental compilation.
|
||||
// We cannot define our own `ModuleBuildTarget` since it is final and `ModuleBuildTarget` supports only `JavaSourceRootDescriptor`.
|
||||
// So the only one way to support `KotlinSourceRootType` is to add a fake `JavaSourceRootDescriptor` for each source root with that type.
|
||||
val kotlinSourceRootType = if (target.isTests) KotlinSourceRootType.TestSource else KotlinSourceRootType.Source
|
||||
val kotlinSourceRootType = if (target.isTests) TestSourceKotlinRootType else SourceKotlinRootType
|
||||
module.getSourceRoots(kotlinSourceRootType).forEach {
|
||||
result.add(
|
||||
JavaSourceRootDescriptor(
|
||||
@@ -95,8 +94,8 @@ class KotlinSourceRootProvider : AdditionalRootsProviderService<JavaSourceRootDe
|
||||
|
||||
private val JpsModuleSourceRootType<*>.isTestsRootType
|
||||
get() = when (this) {
|
||||
is KotlinSourceRootType -> this == KotlinSourceRootType.TestSource
|
||||
is KotlinResourceRootType -> this == KotlinResourceRootType.TestResource
|
||||
is KotlinSourceRootType -> this == TestSourceKotlinRootType
|
||||
is KotlinResourceRootType -> this == TestResourceKotlinRootType
|
||||
// for compatibility:
|
||||
is JavaSourceRootType -> this == JavaSourceRootType.TEST_SOURCE
|
||||
is JavaResourceRootType -> this == JavaResourceRootType.TEST_RESOURCE
|
||||
|
||||
Reference in New Issue
Block a user