From 2ebfb98fb887c7697be3ed28dc357094036780bc Mon Sep 17 00:00:00 2001 From: Ilya Ryzhenkov Date: Mon, 13 Oct 2014 00:19:18 +0400 Subject: Fix generation, add memory. --- src/Kotlin/DocumentationBuilder.kt | 21 +++++++++------------ 1 file changed, 9 insertions(+), 12 deletions(-) (limited to 'src/Kotlin') diff --git a/src/Kotlin/DocumentationBuilder.kt b/src/Kotlin/DocumentationBuilder.kt index adb2b4c6..5230d882 100644 --- a/src/Kotlin/DocumentationBuilder.kt +++ b/src/Kotlin/DocumentationBuilder.kt @@ -121,19 +121,16 @@ class DocumentationBuilder(val context: BindingContext, val options: Documentati descriptors.forEach { descriptor -> appendChild(descriptor, kind) } } - fun DocumentationNode.appendFile(sourceFile : JetFile) { - val fragment = context.getPackageFragment(sourceFile)!! - val packageNode = packages.getOrPut(fragment.fqName) { - val packageNode = DocumentationNode(fragment.fqName.asString(), Content.Empty, Kind.Package) - append(packageNode, DocumentationReference.Kind.Member) - packageNode + fun DocumentationNode.appendFragments(fragments: Collection) { + val descriptors = hashMapOf>() + for ((name, parts) in fragments.groupBy { it.fqName }) { + descriptors.put(name.asString(), parts.flatMap { it.getMemberScope().getAllDescriptors() }) } - packageNode.appendChildren(fragment.getMemberScope().getAllDescriptors(), DocumentationReference.Kind.Member) - } - - fun DocumentationNode.appendFiles(sourceFiles : List) { - for (sourceFile in sourceFiles) { - appendFile(sourceFile) + for ((packageName, declarations) in descriptors) { + println(" package $packageName: ${declarations.count()} nodes") + val packageNode = DocumentationNode(packageName, Content.Empty, Kind.Package) + packageNode.appendChildren(declarations, DocumentationReference.Kind.Member) + append(packageNode, DocumentationReference.Kind.Member) } } -- cgit