Introduce SourceType and use KotlinFacetSettings.isTestModule
Refactor dealing with production/test roots Remove ad-hoc code in KotlinMultiplatformRunLocationsProvider
This commit is contained in:
@@ -12,12 +12,20 @@ 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.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
|
||||
JavaSourceRootType.TEST_SOURCE,
|
||||
JavaResourceRootType.TEST_RESOURCE,
|
||||
KotlinSourceRootType.TestSource,
|
||||
KotlinResourceRootType.TestResource
|
||||
)
|
||||
|
||||
fun FileIndex.isInTestSourceContentKotlinAware(fileOrDir: VirtualFile) = isUnderSourceRootOfType(fileOrDir, testRootTypes)
|
||||
fun FileIndex.isInTestSourceContentKotlinAware(fileOrDir: VirtualFile) = isUnderSourceRootOfType(fileOrDir, testRootTypes)
|
||||
|
||||
fun FileIndex.getSourceType(fileOrDir: VirtualFile): SourceType? = when {
|
||||
isInTestSourceContentKotlinAware(fileOrDir) -> SourceType.TEST
|
||||
isInSourceContentWithoutInjected(fileOrDir) -> SourceType.PRODUCTION
|
||||
else -> null
|
||||
}
|
||||
Reference in New Issue
Block a user