AA: use package part info (if available) when searching for PSI from binary module

This commit is contained in:
Jinseong Jeon
2022-08-04 22:42:33 -07:00
committed by Nikolay Krasko
parent d0a8eb5c54
commit b173b1fe24
4 changed files with 77 additions and 6 deletions
@@ -9,10 +9,13 @@ import com.intellij.core.CoreApplicationEnvironment
import com.intellij.mock.MockProject
import com.intellij.openapi.application.Application
import com.intellij.openapi.project.Project
import com.intellij.psi.search.GlobalSearchScope
import org.jetbrains.kotlin.cli.jvm.compiler.KotlinCoreProjectEnvironment
import org.jetbrains.kotlin.load.kotlin.PackagePartProvider
public class StandaloneAnalysisAPISession internal constructor(
kotlinCoreProjectEnvironment: KotlinCoreProjectEnvironment,
public val createPackagePartProvider: (GlobalSearchScope) -> PackagePartProvider,
) {
// TODO: better to limit exposure? Current usages are: addExtension, jarFileSystem
public val coreApplicationEnvironment: CoreApplicationEnvironment = kotlinCoreProjectEnvironment.environment
@@ -195,16 +195,19 @@ public class StandaloneAnalysisAPISessionBuilder(
val project = kotlinCoreProjectEnvironment.project
val ktFiles = allSourceFiles.filterIsInstance<KtFile>()
val libraryRoots = StandaloneProjectFactory.getAllBinaryRoots(modules, kotlinCoreProjectEnvironment)
registerProjectServices(
ktFiles,
val createPackagePartProvider =
StandaloneProjectFactory.createPackagePartsProvider(
project,
libraryRoots,
)
registerProjectServices(
ktFiles,
createPackagePartProvider,
)
return StandaloneAnalysisAPISession(
kotlinCoreProjectEnvironment,
createPackagePartProvider,
)
}
}