From 00a266fd88e9a22d6aae231802d78a58c4cbb519 Mon Sep 17 00:00:00 2001 From: Yan Zhulanow Date: Tue, 13 Dec 2022 23:59:11 +0900 Subject: [PATCH] [AAPI] Introduce PsiFile in KtNotUnderContentRootModule Indices are not available in the IDE for files outside content roots, and the newly introduced 'PsiFile' can be used for searching classifiers instead. --- .../analysis/project/structure/impl/KtModuleProviderImpl.kt | 2 +- .../structure/impl/KtNotUnderContentRootModuleImpl.kt | 4 ++-- .../jetbrains/kotlin/analysis/project/structure/KtModule.kt | 6 +++++- 3 files changed, 8 insertions(+), 4 deletions(-) diff --git a/analysis/analysis-api-standalone/src/org/jetbrains/kotlin/analysis/project/structure/impl/KtModuleProviderImpl.kt b/analysis/analysis-api-standalone/src/org/jetbrains/kotlin/analysis/project/structure/impl/KtModuleProviderImpl.kt index 6aa0ee841ae..9a48dba8d26 100644 --- a/analysis/analysis-api-standalone/src/org/jetbrains/kotlin/analysis/project/structure/impl/KtModuleProviderImpl.kt +++ b/analysis/analysis-api-standalone/src/org/jetbrains/kotlin/analysis/project/structure/impl/KtModuleProviderImpl.kt @@ -45,7 +45,7 @@ internal class KtModuleProviderImpl( ?: return notUnderContentRootModuleCache.getOrPut(containingFileAsPsiFile) { KtNotUnderContentRootModuleImpl( moduleDescription = "Standalone-not-under-content-root-module-for-$containingFileAsPsiFile", - psiFile = containingFileAsPsiFile, + file = containingFileAsPsiFile, project = project, ) } diff --git a/analysis/analysis-api-standalone/src/org/jetbrains/kotlin/analysis/project/structure/impl/KtNotUnderContentRootModuleImpl.kt b/analysis/analysis-api-standalone/src/org/jetbrains/kotlin/analysis/project/structure/impl/KtNotUnderContentRootModuleImpl.kt index 84431112cff..3ba0f959629 100644 --- a/analysis/analysis-api-standalone/src/org/jetbrains/kotlin/analysis/project/structure/impl/KtNotUnderContentRootModuleImpl.kt +++ b/analysis/analysis-api-standalone/src/org/jetbrains/kotlin/analysis/project/structure/impl/KtNotUnderContentRootModuleImpl.kt @@ -19,12 +19,12 @@ internal class KtNotUnderContentRootModuleImpl( override val directRefinementDependencies: List = emptyList(), override val directFriendDependencies: List = emptyList(), override val platform: TargetPlatform = JvmPlatforms.defaultJvmPlatform, - psiFile: PsiFile? = null, + override val file: PsiFile? = null, override val moduleDescription: String, override val project: Project, ) : KtNotUnderContentRootModule, KtModuleWithPlatform { override val analyzerServices: PlatformDependentAnalyzerServices = super.analyzerServices override val contentScope: GlobalSearchScope = - if (psiFile != null) GlobalSearchScope.fileScope(psiFile) else GlobalSearchScope.EMPTY_SCOPE + if (file != null) GlobalSearchScope.fileScope(file) else GlobalSearchScope.EMPTY_SCOPE } diff --git a/analysis/project-structure/src/org/jetbrains/kotlin/analysis/project/structure/KtModule.kt b/analysis/project-structure/src/org/jetbrains/kotlin/analysis/project/structure/KtModule.kt index 9bd809067f7..acf62c1bb22 100644 --- a/analysis/project-structure/src/org/jetbrains/kotlin/analysis/project/structure/KtModule.kt +++ b/analysis/project-structure/src/org/jetbrains/kotlin/analysis/project/structure/KtModule.kt @@ -6,6 +6,7 @@ package org.jetbrains.kotlin.analysis.project.structure import com.intellij.openapi.project.Project +import com.intellij.psi.PsiFile import com.intellij.psi.search.GlobalSearchScope import org.jetbrains.kotlin.config.LanguageVersionSettings import org.jetbrains.kotlin.platform.TargetPlatform @@ -170,4 +171,7 @@ public class KtBuiltinsModule( /** * A set of sources which lives outside project content root. E.g, testdata files or source files of some other project. */ -public interface KtNotUnderContentRootModule : KtModule +public interface KtNotUnderContentRootModule : KtModule { + public val file: PsiFile? + get() = null +}