AA: populate SingleJavaFileRootsIndex properly

This commit is contained in:
Jinseong Jeon
2022-06-13 22:37:59 -07:00
committed by Ilya Kirillov
parent 9ba6cf47ea
commit abdc2cf85e
@@ -8,6 +8,7 @@ package org.jetbrains.kotlin.analysis.api.standalone.base.project.structure
import com.intellij.codeInsight.ExternalAnnotationsManager import com.intellij.codeInsight.ExternalAnnotationsManager
import com.intellij.codeInsight.InferredAnnotationsManager import com.intellij.codeInsight.InferredAnnotationsManager
import com.intellij.core.CoreJavaFileManager import com.intellij.core.CoreJavaFileManager
import com.intellij.ide.highlighter.JavaFileType
import com.intellij.mock.MockProject import com.intellij.mock.MockProject
import com.intellij.openapi.Disposable import com.intellij.openapi.Disposable
import com.intellij.openapi.components.ServiceManager import com.intellij.openapi.components.ServiceManager
@@ -100,16 +101,19 @@ object StandaloneProjectFactory {
addAll(allSourceFileRoots) 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 javaFileManager = project.getService(JavaFileManager::class.java) as KotlinCliJavaFileManagerImpl
val javaModuleFinder = CliJavaModuleFinder(jdkHome?.toFile(), null, javaFileManager, project, null) val javaModuleFinder = CliJavaModuleFinder(jdkHome?.toFile(), null, javaFileManager, project, null)
javaFileManager.initialize( javaFileManager.initialize(
JvmDependenciesIndexImpl(sourceAndLibraryRoots), JvmDependenciesIndexImpl(roots),
listOf( listOf(
createPackagePartsProvider(project, libraryRoots, languageVersionSettings) createPackagePartsProvider(project, libraryRoots, languageVersionSettings)
.invoke(ProjectScope.getLibrariesScope(project)) .invoke(ProjectScope.getLibrariesScope(project))
), ),
SingleJavaFileRootsIndex(emptyList()), SingleJavaFileRootsIndex(singleJavaFileRoots),
true true
) )
@@ -118,7 +122,7 @@ object StandaloneProjectFactory {
CliJavaModuleResolver(JavaModuleGraph(javaModuleFinder), emptyList(), javaModuleFinder.systemModules.toList(), project) 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(MetadataFinderFactory::class.java, finderFactory)
project.registerService(VirtualFileFinderFactory::class.java, finderFactory) project.registerService(VirtualFileFinderFactory::class.java, finderFactory)