Support overriding module/library/sdk for particular light PsiClass

To support light R classes
This commit is contained in:
Simon Ogorodnik
2018-11-15 21:55:22 +03:00
parent 7f9e91eabe
commit 445c85f829
7 changed files with 284 additions and 0 deletions
@@ -22,6 +22,19 @@ private val testRootTypes: Set<JpsModuleSourceRootType<*>> = setOf(
KotlinResourceRootType.TestResource
)
private val sourceRootTypes = setOf<JpsModuleSourceRootType<*>>(
JavaSourceRootType.SOURCE,
JavaResourceRootType.RESOURCE,
KotlinSourceRootType.Source,
KotlinResourceRootType.Resource
)
fun JpsModuleSourceRootType<*>.getSourceType(): SourceType? = when(this) {
in sourceRootTypes -> SourceType.PRODUCTION
in testRootTypes -> SourceType.TEST
else -> null
}
fun FileIndex.isInTestSourceContentKotlinAware(fileOrDir: VirtualFile) = isUnderSourceRootOfType(fileOrDir, testRootTypes)
fun FileIndex.getSourceType(fileOrDir: VirtualFile): SourceType? = when {