diff options
author | Dmitry Jemerov <yole@jetbrains.com> | 2015-03-19 10:41:07 +0100 |
---|---|---|
committer | Dmitry Jemerov <yole@jetbrains.com> | 2015-03-19 10:41:07 +0100 |
commit | bbb8a682e5e79a9d73d3aeaab159bb88523d1de0 (patch) | |
tree | f4692ae1bf9cbaad2971c0bd4b64082ed2381c5a /src/Java | |
parent | 2e0d47c37aefc9073f5b8fda893c200d5724fdbf (diff) | |
download | dokka-bbb8a682e5e79a9d73d3aeaab159bb88523d1de0.tar.gz dokka-bbb8a682e5e79a9d73d3aeaab159bb88523d1de0.tar.bz2 dokka-bbb8a682e5e79a9d73d3aeaab159bb88523d1de0.zip |
hide internal members from the documentation; understand @suppress tags in javadoc comments; don't show "Extension functions for external class" block if all extension functions for that class are hidden
Diffstat (limited to 'src/Java')
-rw-r--r-- | src/Java/JavaDocumentationBuilder.kt | 13 |
1 files changed, 11 insertions, 2 deletions
diff --git a/src/Java/JavaDocumentationBuilder.kt b/src/Java/JavaDocumentationBuilder.kt index 6c83fd61..6624037c 100644 --- a/src/Java/JavaDocumentationBuilder.kt +++ b/src/Java/JavaDocumentationBuilder.kt @@ -11,6 +11,9 @@ import org.jsoup.nodes.TextNode public class JavaDocumentationBuilder(private val options: DocumentationOptions, private val refGraph: NodeReferenceGraph) { fun appendFile(file: PsiJavaFile, module: DocumentationModule) { + if (file.getClasses().all { skipElement(it) }) { + return + } val packageNode = module.findOrCreatePackageNode(file.getPackageName()) packageNode.appendChildren(file.getClasses()) { build() } } @@ -236,8 +239,14 @@ public class JavaDocumentationBuilder(private val options: DocumentationOptions, } } - private fun skipElement(element: Any): Boolean = - !options.includeNonPublic && element is PsiModifierListOwner && element.hasModifierProperty(PsiModifier.PRIVATE) + private fun skipElement(element: Any) = skipElementByVisibility(element) || hasSuppressTag(element) + + private fun skipElementByVisibility(element: Any): Boolean = + !options.includeNonPublic && element is PsiModifierListOwner && + (element.hasModifierProperty(PsiModifier.PRIVATE) || element.hasModifierProperty(PsiModifier.PACKAGE_LOCAL)) + + private fun hasSuppressTag(element: Any) = + element is PsiDocCommentOwner && element.getDocComment()?.let { it.findTagByName("suppress") != null } ?: false fun DocumentationNode.appendMembers<T>(elements: Array<T>, buildFn: T.() -> DocumentationNode) = appendChildren(elements, DocumentationReference.Kind.Member, buildFn) |