AA: expose library modules in the project structure

This commit is contained in:
Jinseong Jeon
2022-03-15 16:20:03 -07:00
committed by Ilya Kirillov
parent dcc349da0d
commit cbef3faae7
9 changed files with 136 additions and 12 deletions
@@ -11,10 +11,14 @@ import org.jetbrains.kotlin.analysis.project.structure.ProjectStructureProvider
import org.jetbrains.kotlin.psi.KtFile
import org.jetbrains.kotlin.test.services.TestServices
class KotlinProjectStructureProviderTestImpl(testServices: TestServices) : ProjectStructureProvider() {
class KotlinProjectStructureProviderTestImpl(private val testServices: TestServices) : ProjectStructureProvider() {
private val moduleInfoProvider = testServices.projectModuleProvider
override fun getKtModuleForKtElement(element: PsiElement): KtModule {
val containingFile = element.containingFile as KtFile
return moduleInfoProvider.getModuleInfoByKtFile(containingFile) as KtModule
}
override fun getKtLibraryModules(): Collection<TestKtLibraryModule> {
return moduleInfoProvider.getLibraryModules()
}
}
@@ -26,6 +26,10 @@ class TestKtModuleProvider(
fun getModule(moduleName: String): TestKtModule =
cache.getValue(moduleName)
fun getLibraryModules(): Collection<TestKtLibraryModule> {
return cache.values.filterIsInstance<TestKtLibraryModule>()
}
}
val TestServices.projectModuleProvider: TestKtModuleProvider by TestServices.testServiceAccessor()