in plugin/src/main/kotlin/com/jetbrains/packagesearch/plugin/ui/model/packageslist/PackageListBuilder.kt [76:110]
fun addFromBaseModule(base: PackageSearchModule.Base) {
val id = PackageListItem.Header.Id.Declared.Base(base.identity)
val dependenciesToShow = base.declaredDependencies
.filter { it.matchesSearchQuery() }
val state = getStateForOrOpen(id)
if (dependenciesToShow.isNotEmpty() || isCompact) {
addHeader(
title = base.name,
id = id,
state = state,
additionalContent = when (id) {
in headerLoadingStates -> PackageListItem.Header.AdditionalContent.Loading
else -> dependenciesToShow.getUpdatesAvailableAdditionalContent()
}
)
}
if (state == PackageListItem.Header.State.OPEN) {
dependenciesToShow
.filter { it.matchesSearchQuery() }
.forEach { dependency ->
addDeclaredPackage(
title = dependency.displayName,
subtitle = dependency.coordinates,
id = PackageListItem.Package.Declared.Id.Base(base.identity, dependency.id),
icon = dependency.icon,
latestVersion = dependency.getLatestVersion(onlyStable)?.versionName,
selectedScope = dependency.declaredScope,
availableScopes = base.availableScopes,
declaredVersion = dependency.declaredVersion?.versionName,
availableVersions = dependency.getAvailableVersionStrings(),
allowMissingScope = !base.dependencyMustHaveAScope,
)
}
}
}