From abdc2cf85efce7428c00f965f3599528d30f9249 Mon Sep 17 00:00:00 2001 From: Jinseong Jeon Date: Mon, 13 Jun 2022 22:37:59 -0700 Subject: [PATCH] AA: populate SingleJavaFileRootsIndex properly --- .../base/project/structure/StandaloneProjectFactory.kt | 10 +++++++--- 1 file changed, 7 insertions(+), 3 deletions(-) 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 2cb475d9e9e..19dcd0d8150 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 @@ package org.jetbrains.kotlin.analysis.api.standalone.base.project.structure 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 @@ -100,16 +101,19 @@ object StandaloneProjectFactory { 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 ) @@ -118,7 +122,7 @@ object StandaloneProjectFactory { 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)