Minor: move utils to more appropriate place
This commit is contained in:
committed by
Pavel V. Talanov
parent
e67f449476
commit
05e6c4e0a2
@@ -5,10 +5,7 @@
|
|||||||
|
|
||||||
package org.jetbrains.kotlin.idea.caches.project
|
package org.jetbrains.kotlin.idea.caches.project
|
||||||
|
|
||||||
import com.intellij.facet.FacetManager
|
|
||||||
import com.intellij.facet.FacetTypeRegistry
|
|
||||||
import com.intellij.openapi.diagnostic.Logger
|
import com.intellij.openapi.diagnostic.Logger
|
||||||
import com.intellij.openapi.externalSystem.service.project.IdeModelsProviderImpl
|
|
||||||
import com.intellij.openapi.module.Module
|
import com.intellij.openapi.module.Module
|
||||||
import com.intellij.openapi.module.impl.scopes.LibraryScopeBase
|
import com.intellij.openapi.module.impl.scopes.LibraryScopeBase
|
||||||
import com.intellij.openapi.project.Project
|
import com.intellij.openapi.project.Project
|
||||||
@@ -34,8 +31,6 @@ import org.jetbrains.kotlin.descriptors.ModuleDescriptor
|
|||||||
import org.jetbrains.kotlin.idea.configuration.BuildSystemType
|
import org.jetbrains.kotlin.idea.configuration.BuildSystemType
|
||||||
import org.jetbrains.kotlin.idea.configuration.getBuildSystemType
|
import org.jetbrains.kotlin.idea.configuration.getBuildSystemType
|
||||||
import org.jetbrains.kotlin.idea.core.isInTestSourceContentKotlinAware
|
import org.jetbrains.kotlin.idea.core.isInTestSourceContentKotlinAware
|
||||||
import org.jetbrains.kotlin.idea.facet.KotlinFacetType
|
|
||||||
import org.jetbrains.kotlin.idea.facet.KotlinFacetType.Companion.ID
|
|
||||||
import org.jetbrains.kotlin.idea.framework.getLibraryPlatform
|
import org.jetbrains.kotlin.idea.framework.getLibraryPlatform
|
||||||
import org.jetbrains.kotlin.idea.project.KotlinModuleModificationTracker
|
import org.jetbrains.kotlin.idea.project.KotlinModuleModificationTracker
|
||||||
import org.jetbrains.kotlin.idea.project.TargetPlatformDetector
|
import org.jetbrains.kotlin.idea.project.TargetPlatformDetector
|
||||||
@@ -121,24 +116,6 @@ private fun ideaModelDependencies(
|
|||||||
return result.filterNot { it is LibraryInfo && it.platform != platform }
|
return result.filterNot { it is LibraryInfo && it.platform != platform }
|
||||||
}
|
}
|
||||||
|
|
||||||
fun Module.findImplementedModuleNames(): List<String> {
|
|
||||||
val facet = FacetManager.getInstance(this).findFacet(
|
|
||||||
KotlinFacetType.TYPE_ID,
|
|
||||||
FacetTypeRegistry.getInstance().findFacetType(ID)!!.defaultFacetName
|
|
||||||
)
|
|
||||||
return facet?.configuration?.settings?.implementedModuleNames ?: emptyList()
|
|
||||||
}
|
|
||||||
|
|
||||||
fun Module.findImplementedModules() = this.cached<List<Module>>(
|
|
||||||
CachedValueProvider {
|
|
||||||
val modelsProvider = IdeModelsProviderImpl(project)
|
|
||||||
CachedValueProvider.Result(
|
|
||||||
findImplementedModuleNames().mapNotNull { modelsProvider.findIdeModule(it) },
|
|
||||||
ProjectRootModificationTracker.getInstance(project)
|
|
||||||
)
|
|
||||||
}
|
|
||||||
)
|
|
||||||
|
|
||||||
interface ModuleSourceInfo : IdeaModuleInfo, TrackableModuleInfo {
|
interface ModuleSourceInfo : IdeaModuleInfo, TrackableModuleInfo {
|
||||||
val module: Module
|
val module: Module
|
||||||
|
|
||||||
|
|||||||
+24
-1
@@ -5,6 +5,9 @@
|
|||||||
|
|
||||||
package org.jetbrains.kotlin.idea.caches.project
|
package org.jetbrains.kotlin.idea.caches.project
|
||||||
|
|
||||||
|
import com.intellij.facet.FacetManager
|
||||||
|
import com.intellij.facet.FacetTypeRegistry
|
||||||
|
import com.intellij.openapi.externalSystem.service.project.IdeModelsProviderImpl
|
||||||
import com.intellij.openapi.module.Module
|
import com.intellij.openapi.module.Module
|
||||||
import com.intellij.openapi.module.ModuleManager
|
import com.intellij.openapi.module.ModuleManager
|
||||||
import com.intellij.openapi.roots.ProjectRootModificationTracker
|
import com.intellij.openapi.roots.ProjectRootModificationTracker
|
||||||
@@ -12,6 +15,8 @@ import com.intellij.psi.util.CachedValueProvider
|
|||||||
import org.jetbrains.kotlin.analyzer.ModuleInfo
|
import org.jetbrains.kotlin.analyzer.ModuleInfo
|
||||||
import org.jetbrains.kotlin.caches.resolve.KotlinCacheService
|
import org.jetbrains.kotlin.caches.resolve.KotlinCacheService
|
||||||
import org.jetbrains.kotlin.descriptors.ModuleDescriptor
|
import org.jetbrains.kotlin.descriptors.ModuleDescriptor
|
||||||
|
import org.jetbrains.kotlin.idea.facet.KotlinFacetType
|
||||||
|
import org.jetbrains.kotlin.idea.facet.KotlinFacetType.Companion.ID
|
||||||
|
|
||||||
fun Module.findImplementingModules() =
|
fun Module.findImplementingModules() =
|
||||||
ModuleManager.getInstance(project).modules.filter { name in it.findImplementedModuleNames() }
|
ModuleManager.getInstance(project).modules.filter { name in it.findImplementedModuleNames() }
|
||||||
@@ -66,4 +71,22 @@ val ModuleDescriptor.implementedDescriptors: List<ModuleDescriptor>
|
|||||||
KotlinCacheService.getInstance(moduleSourceInfo.module.project)
|
KotlinCacheService.getInstance(moduleSourceInfo.module.project)
|
||||||
.getResolutionFacadeByModuleInfo(it, it.platform)?.moduleDescriptor
|
.getResolutionFacadeByModuleInfo(it, it.platform)?.moduleDescriptor
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
fun Module.findImplementedModuleNames(): List<String> {
|
||||||
|
val facet = FacetManager.getInstance(this).findFacet(
|
||||||
|
KotlinFacetType.TYPE_ID,
|
||||||
|
FacetTypeRegistry.getInstance().findFacetType(ID)!!.defaultFacetName
|
||||||
|
)
|
||||||
|
return facet?.configuration?.settings?.implementedModuleNames ?: emptyList()
|
||||||
|
}
|
||||||
|
|
||||||
|
fun Module.findImplementedModules() = this.cached<List<Module>>(
|
||||||
|
CachedValueProvider {
|
||||||
|
val modelsProvider = IdeModelsProviderImpl(project)
|
||||||
|
CachedValueProvider.Result(
|
||||||
|
findImplementedModuleNames().mapNotNull { modelsProvider.findIdeModule(it) },
|
||||||
|
ProjectRootModificationTracker.getInstance(project)
|
||||||
|
)
|
||||||
|
}
|
||||||
|
)
|
||||||
|
|||||||
Reference in New Issue
Block a user