in extractor/src/main/scala/org/jetbrains/sbt/extractors/RepositoryExtractor.scala [27:52]
private def allModulesWithDocs: Seq[ModuleReportAdapter] = projects.flatMap(moduleWithDoc)
private def moduleWithDoc(projectRef: ProjectRef): Seq[ModuleReportAdapter] = {
val modulesWithoutDocs = getModulesForProject(projectRef, updateReports)
val modulesWithDocs = updateClassifiersReports.map { updateClassifiersReportsFn =>
def onlySourcesAndDocs(artifacts: Seq[(Artifact, File)]): Seq[(Artifact, File)] =
artifacts.collect { case (a, f) if a.`type` == Artifact.DocType || a.`type` == Artifact.SourceType => (a, f) }
val docModules = getModulesForProject(projectRef, updateClassifiersReportsFn)
val docModulesByModuleId = docModules
.groupBy(_.moduleId)
.map { case (moduleId, reports) =>
moduleId -> reports.flatMap(r => onlySourcesAndDocs(r.artifacts))
}
modulesWithoutDocs.map { report =>
val matchingDocs = docModulesByModuleId.getOrElse(report.moduleId, Seq.empty)
ModuleReportAdapter(report.moduleId, report.artifacts ++ matchingDocs)
}
}
modulesWithDocs.getOrElse(modulesWithoutDocs)
}