AA: populate SingleJavaFileRootsIndex properly
diff --git a/analysis/analysis-api-standalone/analysis-api-standalone-base/src/org/jetbrains/kotlin/analysis/api/standalone/base/project/structure/StandaloneProjectFactory.kt b/analysis/analysis-api-standalone/analysis-api-standalone-base/src/org/jetbrains/kotlin/analysis/api/standalone/base/project/structure/StandaloneProjectFactory.kt
index ca42cd2..5b0fd30 100644
--- a/analysis/analysis-api-standalone/analysis-api-standalone-base/src/org/jetbrains/kotlin/analysis/api/standalone/base/project/structure/StandaloneProjectFactory.kt
+++ b/analysis/analysis-api-standalone/analysis-api-standalone-base/src/org/jetbrains/kotlin/analysis/api/standalone/base/project/structure/StandaloneProjectFactory.kt
@@ -8,6 +8,7 @@
import com.intellij.codeInsight.ExternalAnnotationsManager
import com.intellij.codeInsight.InferredAnnotationsManager
import com.intellij.core.CoreJavaFileManager
+import com.intellij.ide.highlighter.JavaFileType
import com.intellij.mock.MockProject
import com.intellij.openapi.Disposable
import com.intellij.openapi.components.ServiceManager
@@ -102,16 +103,19 @@
addAll(allSourceFileRoots)
}
+ val (roots, singleJavaFileRoots) =
+ sourceAndLibraryRoots.partition { (file) -> file.isDirectory || file.extension != JavaFileType.DEFAULT_EXTENSION }
+
val javaFileManager = project.getService(JavaFileManager::class.java) as KotlinCliJavaFileManagerImpl
val javaModuleFinder = CliJavaModuleFinder(jdkHome?.toFile(), null, javaFileManager, project, null)
javaFileManager.initialize(
- JvmDependenciesIndexImpl(sourceAndLibraryRoots),
+ JvmDependenciesIndexImpl(roots),
listOf(
createPackagePartsProvider(project, libraryRoots, languageVersionSettings)
.invoke(ProjectScope.getLibrariesScope(project))
),
- SingleJavaFileRootsIndex(emptyList()),
+ SingleJavaFileRootsIndex(singleJavaFileRoots),
true
)
@@ -120,7 +124,7 @@
CliJavaModuleResolver(JavaModuleGraph(javaModuleFinder), emptyList(), javaModuleFinder.systemModules.toList(), project)
)
- val finderFactory = CliVirtualFileFinderFactory(JvmDependenciesIndexImpl(sourceAndLibraryRoots), false)
+ val finderFactory = CliVirtualFileFinderFactory(JvmDependenciesIndexImpl(roots), false)
project.registerService(MetadataFinderFactory::class.java, finderFactory)
project.registerService(VirtualFileFinderFactory::class.java, finderFactory)