Use module file index in getModuleInfo to determine source/test module info
Do not include files that are in content of module but are not in source content Do not log error in case there is compiled kotlin file in source content
This commit is contained in:
@@ -26,6 +26,7 @@ import org.jetbrains.jet.asJava.FakeLightClassForFileOfPackage
|
|||||||
import org.jetbrains.jet.asJava.KotlinLightClassForPackage
|
import org.jetbrains.jet.asJava.KotlinLightClassForPackage
|
||||||
import com.intellij.openapi.project.Project
|
import com.intellij.openapi.project.Project
|
||||||
import com.intellij.openapi.vfs.VirtualFile
|
import com.intellij.openapi.vfs.VirtualFile
|
||||||
|
import com.intellij.openapi.roots.ModuleRootManager
|
||||||
|
|
||||||
fun PsiElement.getModuleInfo(): IdeaModuleInfo {
|
fun PsiElement.getModuleInfo(): IdeaModuleInfo {
|
||||||
fun logAndReturnDefault(message: String): IdeaModuleInfo {
|
fun logAndReturnDefault(message: String): IdeaModuleInfo {
|
||||||
@@ -66,13 +67,19 @@ private fun getModuleInfoByVirtualFile(project: Project, virtualFile: VirtualFil
|
|||||||
|
|
||||||
val module = projectFileIndex.getModuleForFile(virtualFile)
|
val module = projectFileIndex.getModuleForFile(virtualFile)
|
||||||
if (module != null) {
|
if (module != null) {
|
||||||
if (isDecompiledFile) {
|
fun warnIfDecompiled() {
|
||||||
LOG.error("Decompiled file for ${virtualFile.getCanonicalPath()} is in content of $module")
|
if (isDecompiledFile) {
|
||||||
|
LOG.warn("Decompiled file for ${virtualFile.getCanonicalPath()} is in content of $module")
|
||||||
|
}
|
||||||
}
|
}
|
||||||
if (projectFileIndex.isInTestSourceContent(virtualFile)) {
|
|
||||||
|
val moduleFileIndex = ModuleRootManager.getInstance(module).getFileIndex()
|
||||||
|
if (moduleFileIndex.isInTestSourceContent(virtualFile)) {
|
||||||
|
warnIfDecompiled()
|
||||||
return module.testSourceInfo()
|
return module.testSourceInfo()
|
||||||
}
|
}
|
||||||
else {
|
else if (moduleFileIndex.isInSourceContent(virtualFile)) {
|
||||||
|
warnIfDecompiled()
|
||||||
return module.productionSourceInfo()
|
return module.productionSourceInfo()
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
Reference in New Issue
Block a user