From f861b3738a75a5acc112d98b760bd1ada1023882 Mon Sep 17 00:00:00 2001 From: Filip ZybaƂa Date: Wed, 13 May 2020 16:05:42 +0200 Subject: Added support for includeNonPublic option in top-level and package-level. Added tests for it. --- .../documentables/DocumentableVisibilityFilter.kt | 19 +++++++++++++++---- 1 file changed, 15 insertions(+), 4 deletions(-) (limited to 'plugins/base/src/main/kotlin') diff --git a/plugins/base/src/main/kotlin/transformers/documentables/DocumentableVisibilityFilter.kt b/plugins/base/src/main/kotlin/transformers/documentables/DocumentableVisibilityFilter.kt index d3fc65fb..66c917c5 100644 --- a/plugins/base/src/main/kotlin/transformers/documentables/DocumentableVisibilityFilter.kt +++ b/plugins/base/src/main/kotlin/transformers/documentables/DocumentableVisibilityFilter.kt @@ -14,17 +14,25 @@ internal class DocumentableVisibilityFilter(val context: DokkaContext) : PreMerg val packageOptions = context.configuration.passesConfigurations.first { original.sourceSets.contains(context.sourceSet(it)) } .perPackageOptions + val passOptions = context.configuration.passesConfigurations.first { + original.platformData.contains(it.platformData) + } - DocumentableFilter(packageOptions).processModule(original) + DocumentableFilter(packageOptions, passOptions).processModule(original) } - private class DocumentableFilter(val packageOptions: List) { + private class DocumentableFilter( + val packageOptions: List, + val globalOptions: DokkaConfiguration.PassConfiguration + ) { fun Visibility.isAllowedInPackage(packageName: String?) = when (this) { is JavaVisibility.Public, is JavaVisibility.Default, is KotlinVisibility.Public -> true - else -> packageName != null && packageOptions.firstOrNull { packageName.startsWith(it.prefix) }?.includeNonPublic == true + else -> packageName != null + && packageOptions.firstOrNull { packageName.startsWith(it.prefix) }?.includeNonPublic + ?: globalOptions.includeNonPublic } fun processModule(original: DModule) = @@ -58,7 +66,10 @@ internal class DocumentableVisibilityFilter(val context: DokkaContext) : PreMerg } when { !modified -> it - functions.isEmpty() && properties.isEmpty() && classlikes.isEmpty() -> null + functions.isEmpty() && properties.isEmpty() && classlikes.isEmpty() -> { + packagesListChanged = true + null + } else -> { packagesListChanged = true DPackage( -- cgit