K2 UAST: simplify PSI declaration provider
In addition to class lookup (done at cec299ac), we can use
JavaFileManager to search classes in a certain package too.
This commit is contained in:
committed by
Space Team
parent
6aab336979
commit
0dfaa91970
+1
-9
@@ -13,7 +13,6 @@ import com.intellij.openapi.util.Disposer
|
||||
import com.intellij.openapi.vfs.impl.jar.CoreJarFileSystem
|
||||
import com.intellij.psi.PsiFile
|
||||
import com.intellij.psi.search.GlobalSearchScope
|
||||
import org.jetbrains.kotlin.analysis.api.KtAnalysisApiInternals
|
||||
import org.jetbrains.kotlin.analysis.api.standalone.base.project.structure.FirStandaloneServiceRegistrar
|
||||
import org.jetbrains.kotlin.analysis.api.standalone.base.project.structure.KtStaticProjectStructureProvider
|
||||
import org.jetbrains.kotlin.analysis.api.standalone.base.project.structure.LLFirStandaloneLibrarySymbolProviderFactory
|
||||
@@ -23,7 +22,6 @@ import org.jetbrains.kotlin.analysis.low.level.api.fir.project.structure.LLFirLi
|
||||
import org.jetbrains.kotlin.analysis.project.structure.KtSourceModule
|
||||
import org.jetbrains.kotlin.analysis.project.structure.builder.KtModuleProviderBuilder
|
||||
import org.jetbrains.kotlin.analysis.project.structure.builder.buildProjectStructureProvider
|
||||
import org.jetbrains.kotlin.analysis.project.structure.impl.KtStandaloneProjectStructureProvider
|
||||
import org.jetbrains.kotlin.analysis.project.structure.impl.KtSourceModuleImpl
|
||||
import org.jetbrains.kotlin.analysis.project.structure.impl.buildKtModuleProviderByCompilerConfiguration
|
||||
import org.jetbrains.kotlin.analysis.project.structure.impl.getPsiFilesFromPaths
|
||||
@@ -108,7 +106,6 @@ public class StandaloneAnalysisAPISessionBuilder(
|
||||
extensionDescriptor.registerExtensionPoint(project)
|
||||
}
|
||||
|
||||
@OptIn(KtAnalysisApiInternals::class)
|
||||
private fun registerProjectServices(
|
||||
sourceKtFiles: List<KtFile>,
|
||||
packagePartProvider: (GlobalSearchScope) -> PackagePartProvider,
|
||||
@@ -161,15 +158,10 @@ public class StandaloneAnalysisAPISessionBuilder(
|
||||
}
|
||||
|
||||
private fun registerPsiDeclarationFromBinaryModuleProvider() {
|
||||
val standaloneProjectStructureProvider = projectStructureProvider as KtStandaloneProjectStructureProvider
|
||||
kotlinCoreProjectEnvironment.project.apply {
|
||||
registerService(
|
||||
KotlinPsiDeclarationProviderFactory::class.java,
|
||||
KotlinStaticPsiDeclarationProviderFactory(
|
||||
this,
|
||||
standaloneProjectStructureProvider.binaryModules,
|
||||
kotlinCoreProjectEnvironment.environment.jarFileSystem as CoreJarFileSystem
|
||||
)
|
||||
KotlinStaticPsiDeclarationProviderFactory::class.java
|
||||
)
|
||||
}
|
||||
}
|
||||
|
||||
+1
-15
@@ -6,18 +6,13 @@
|
||||
package org.jetbrains.kotlin.analysis.api.standalone.fir.test.configurators
|
||||
|
||||
import com.intellij.mock.MockProject
|
||||
import com.intellij.openapi.vfs.impl.jar.CoreJarFileSystem
|
||||
import org.jetbrains.kotlin.analysis.api.KtAnalysisApiInternals
|
||||
import org.jetbrains.kotlin.analysis.api.lifetime.KtLifetimeTokenProvider
|
||||
import org.jetbrains.kotlin.analysis.api.standalone.KtAlwaysAccessibleLifetimeTokenProvider
|
||||
import org.jetbrains.kotlin.analysis.api.standalone.base.project.structure.LLFirStandaloneLibrarySymbolProviderFactory
|
||||
import org.jetbrains.kotlin.analysis.low.level.api.fir.project.structure.LLFirLibrarySymbolProviderFactory
|
||||
import org.jetbrains.kotlin.analysis.project.structure.KtBinaryModule
|
||||
import org.jetbrains.kotlin.analysis.project.structure.ProjectStructureProvider
|
||||
import org.jetbrains.kotlin.analysis.providers.KotlinPsiDeclarationProviderFactory
|
||||
import org.jetbrains.kotlin.analysis.providers.impl.KotlinStaticPsiDeclarationProviderFactory
|
||||
import org.jetbrains.kotlin.analysis.test.framework.services.KtTestProjectStructureProvider
|
||||
import org.jetbrains.kotlin.analysis.test.framework.services.environmentManager
|
||||
import org.jetbrains.kotlin.analysis.test.framework.test.configurators.AnalysisApiTestServiceRegistrar
|
||||
import org.jetbrains.kotlin.test.services.TestServices
|
||||
|
||||
@@ -31,19 +26,10 @@ public object StandaloneModeTestServiceRegistrar : AnalysisApiTestServiceRegistr
|
||||
}
|
||||
|
||||
override fun registerProjectModelServices(project: MockProject, testServices: TestServices) {
|
||||
val projectStructureProvider = ProjectStructureProvider.getInstance(project)
|
||||
val binaryModules =
|
||||
(projectStructureProvider as? KtTestProjectStructureProvider)?.allKtModules?.filterIsInstance<KtBinaryModule>()
|
||||
?: emptyList()
|
||||
val projectEnvironment = testServices.environmentManager.getProjectEnvironment()
|
||||
project.apply {
|
||||
registerService(
|
||||
KotlinPsiDeclarationProviderFactory::class.java,
|
||||
KotlinStaticPsiDeclarationProviderFactory(
|
||||
this,
|
||||
binaryModules,
|
||||
projectEnvironment.environment.jarFileSystem as CoreJarFileSystem
|
||||
)
|
||||
KotlinStaticPsiDeclarationProviderFactory::class.java
|
||||
)
|
||||
}
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user