AA: introduce static project structure provider by compiler configuration
Also add standalone mode utils to configure Application/Project environments
This commit is contained in:
committed by
Ilya Kirillov
parent
d219de0f88
commit
26e923e3ae
@@ -1,4 +1,3 @@
|
||||
|
||||
plugins {
|
||||
kotlin("jvm")
|
||||
id("jps-compatible")
|
||||
|
||||
+1
-4
@@ -8,11 +8,8 @@ package org.jetbrains.kotlin.analysis.api.fir
|
||||
import com.intellij.mock.MockApplication
|
||||
import com.intellij.mock.MockProject
|
||||
import com.intellij.openapi.Disposable
|
||||
import org.jetbrains.kotlin.analysis.api.InvalidWayOfUsingAnalysisSession
|
||||
import org.jetbrains.kotlin.analysis.api.KtAnalysisSessionProvider
|
||||
import org.jetbrains.kotlin.analysis.api.impl.barebone.test.FrontendApiTestConfiguratorService
|
||||
import org.jetbrains.kotlin.analysis.api.impl.base.references.HLApiReferenceProviderService
|
||||
import org.jetbrains.kotlin.analysis.low.level.api.fir.compiler.based.registerTestServices
|
||||
import org.jetbrains.kotlin.analysis.low.level.api.fir.test.base.FirLowLevelFrontendApiTestConfiguratorService
|
||||
import org.jetbrains.kotlin.idea.references.KotlinFirReferenceContributor
|
||||
import org.jetbrains.kotlin.idea.references.KotlinReferenceProviderContributor
|
||||
@@ -48,4 +45,4 @@ object FirFrontendApiTestConfiguratorService : FrontendApiTestConfiguratorServic
|
||||
override fun doOutOfBlockModification(file: KtFile) {
|
||||
FirLowLevelFrontendApiTestConfiguratorService.doOutOfBlockModification(file)
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
+2
-2
@@ -10,8 +10,8 @@ import com.intellij.openapi.project.Project
|
||||
import com.intellij.psi.PsiManager
|
||||
import org.jetbrains.kotlin.analysis.api.impl.barebone.test.TestKtLibraryModule
|
||||
import org.jetbrains.kotlin.analysis.api.impl.barebone.test.projectModuleProvider
|
||||
import org.jetbrains.kotlin.analysis.api.impl.base.test.utils.libraries.TestLibraryUtils
|
||||
import org.jetbrains.kotlin.analysis.api.impl.base.test.utils.libraries.compiledLibraryProvider
|
||||
import org.jetbrains.kotlin.analysis.api.impl.base.util.LibraryUtils
|
||||
import org.jetbrains.kotlin.analysis.decompiler.psi.file.KtClsFile
|
||||
import org.jetbrains.kotlin.analysis.low.level.api.fir.compiler.based.registerTestServices
|
||||
import org.jetbrains.kotlin.test.model.TestModule
|
||||
@@ -38,7 +38,7 @@ class LibraryModuleRegistrarPreAnalysisHandler(
|
||||
private fun getDecompiledVirtualFilesFromLibrary(module: TestModule, project: Project): List<KtClsFile> {
|
||||
val library = testServices.compiledLibraryProvider.getCompiledLibrary(module).jar
|
||||
|
||||
val virtualFiles = TestLibraryUtils.getAllVirtualFilesFromJar(library)
|
||||
val virtualFiles = LibraryUtils.getAllVirtualFilesFromJar(library)
|
||||
return virtualFiles.mapNotNull { virtualFile ->
|
||||
PsiManager.getInstance(project).findFile(virtualFile) as? KtClsFile
|
||||
}
|
||||
|
||||
+4
-5
@@ -11,8 +11,8 @@ import com.intellij.psi.PsiManager
|
||||
import com.intellij.psi.search.GlobalSearchScope
|
||||
import org.jetbrains.kotlin.analysis.api.impl.barebone.test.TestKtLibrarySourceModule
|
||||
import org.jetbrains.kotlin.analysis.api.impl.barebone.test.projectModuleProvider
|
||||
import org.jetbrains.kotlin.analysis.api.impl.base.test.utils.libraries.TestLibraryUtils
|
||||
import org.jetbrains.kotlin.analysis.api.impl.base.test.utils.libraries.compiledLibraryProvider
|
||||
import org.jetbrains.kotlin.analysis.api.impl.base.util.LibraryUtils
|
||||
import org.jetbrains.kotlin.analysis.low.level.api.fir.compiler.based.registerTestServices
|
||||
import org.jetbrains.kotlin.analysis.project.structure.KtLibraryModule
|
||||
import org.jetbrains.kotlin.analysis.project.structure.KtLibrarySourceModule
|
||||
@@ -28,7 +28,6 @@ import org.jetbrains.kotlin.test.services.TestServices
|
||||
import org.jetbrains.kotlin.test.services.compilerConfigurationProvider
|
||||
import java.nio.file.Path
|
||||
|
||||
|
||||
class LibrarySourceModuleRegistrarPreAnalysisHandler(
|
||||
testServices: TestServices
|
||||
) : PreAnalysisHandler(testServices) {
|
||||
@@ -41,7 +40,7 @@ class LibrarySourceModuleRegistrarPreAnalysisHandler(
|
||||
|
||||
val libraryKtModule = KtTestLibraryModule(project, testModule, libraryJar)
|
||||
|
||||
val librarySourceKtFiles = TestLibraryUtils
|
||||
val librarySourceKtFiles = LibraryUtils
|
||||
.getAllVirtualFilesFromJar(librarySourcesJar)
|
||||
.mapNotNull { PsiManager.getInstance(project).findFile(it) as? KtFile }
|
||||
|
||||
@@ -69,7 +68,7 @@ private class KtTestLibraryModule(
|
||||
override val directFriendDependencies: List<KtModule> get() = emptyList()
|
||||
|
||||
override val contentScope: GlobalSearchScope by lazy {
|
||||
GlobalSearchScope.filesScope(project, TestLibraryUtils.getAllVirtualFilesFromJar(jar))
|
||||
GlobalSearchScope.filesScope(project, LibraryUtils.getAllVirtualFilesFromJar(jar))
|
||||
}
|
||||
|
||||
override fun getBinaryRoots(): Collection<Path> = listOf(jar)
|
||||
@@ -79,4 +78,4 @@ private class KtTestLibraryModule(
|
||||
|
||||
override val platform: TargetPlatform get() = testModule.targetPlatform
|
||||
override val analyzerServices: PlatformDependentAnalyzerServices get() = testModule.targetPlatform.getAnalyzerServices()
|
||||
}
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user