diff options
author | Ignat Beresnev <ignat@beresnev.me> | 2021-12-23 14:32:18 +0300 |
---|---|---|
committer | GitHub <noreply@github.com> | 2021-12-23 14:32:18 +0300 |
commit | bfd41ce2a0d43419a671961c19b7d755cffdcfc8 (patch) | |
tree | 00d1fcd75ff7c25de20c8b0621e3bfb11cd3f61a /integration-tests/maven/projects | |
parent | 5c98d42ec08ca1413f920e4f5dde28d330e8837a (diff) | |
download | dokka-bfd41ce2a0d43419a671961c19b7d755cffdcfc8.tar.gz dokka-bfd41ce2a0d43419a671961c19b7d755cffdcfc8.tar.bz2 dokka-bfd41ce2a0d43419a671961c19b7d755cffdcfc8.zip |
Introduce documentedVisibilities setting (#2270)
* Introduce `documentedVisibilities` setting
* Remove hardcoded doc generation for Visibility.PUBLIC, correct tests
* Add maven, gradle and cli integration tests for documentedVisibilities
* Fix maven plugin configuration overriding the default value
* Remove test debug prints
* Correct an inconsistency with default values and leave a comment of intentions
* Add a test for visibility of private setter
Diffstat (limited to 'integration-tests/maven/projects')
5 files changed, 49 insertions, 0 deletions
diff --git a/integration-tests/maven/projects/it-maven/pom.xml b/integration-tests/maven/projects/it-maven/pom.xml index cfc8ba66..23f6548f 100644 --- a/integration-tests/maven/projects/it-maven/pom.xml +++ b/integration-tests/maven/projects/it-maven/pom.xml @@ -117,6 +117,10 @@ <dir>${project.basedir}/src/main/java</dir> </sourceDirectories> + <documentedVisibilities> + <visibility>PUBLIC</visibility> + <visibility>PROTECTED</visibility> + </documentedVisibilities> <!-- Disable linking to online kotlin-stdlib documentation --> <noStdlibLink>false</noStdlibLink> @@ -138,6 +142,13 @@ <reportUndocumented>true</reportUndocumented> <includeNonPublic>false</includeNonPublic> </packageOptions> + + <packageOptions> + <matchingRegex>it.overriddenVisibility.*</matchingRegex> + <documentedVisibilities> + <visibility>PRIVATE</visibility> + </documentedVisibilities> + </packageOptions> </perPackageOptions> <pluginsConfiguration> <org.jetbrains.dokka.base.DokkaBase> diff --git a/integration-tests/maven/projects/it-maven/src/main/kotlin/it/basic/PublicClass.kt b/integration-tests/maven/projects/it-maven/src/main/kotlin/it/basic/PublicClass.kt index 71bc7e63..d7a72392 100644 --- a/integration-tests/maven/projects/it-maven/src/main/kotlin/it/basic/PublicClass.kt +++ b/integration-tests/maven/projects/it-maven/src/main/kotlin/it/basic/PublicClass.kt @@ -2,6 +2,9 @@ package it.basic +/** + * §PUBLIC§ (marker for asserts) + */ class PublicClass { /** * This function is public and documented @@ -24,6 +27,12 @@ class PublicClass { private fun privateUndocumentedFunction(): String = "" + /** + * This function is protected and documented + */ + protected fun protectedDocumentedFunction(): String = "" + + protected fun protectedUndocumentedFunction(): String = "" /** * This property is public and documented diff --git a/integration-tests/maven/projects/it-maven/src/main/kotlin/it/internal/InternalClass.kt b/integration-tests/maven/projects/it-maven/src/main/kotlin/it/internal/InternalClass.kt new file mode 100644 index 00000000..6173d239 --- /dev/null +++ b/integration-tests/maven/projects/it-maven/src/main/kotlin/it/internal/InternalClass.kt @@ -0,0 +1,7 @@ +package it.internal + +/** + * §INTERNAL§ (marker for asserts) + * This class is internal and should not be rendered + */ +internal class InternalClass diff --git a/integration-tests/maven/projects/it-maven/src/main/kotlin/it/overriddenVisibility/VisiblePrivateClass.kt b/integration-tests/maven/projects/it-maven/src/main/kotlin/it/overriddenVisibility/VisiblePrivateClass.kt new file mode 100644 index 00000000..230f5e0b --- /dev/null +++ b/integration-tests/maven/projects/it-maven/src/main/kotlin/it/overriddenVisibility/VisiblePrivateClass.kt @@ -0,0 +1,12 @@ +package it.overriddenVisibility + +/** + * Private classes and methods generally should not be visible, but [documentedVisibilities] + * are overriden for this specific package to include private code + * + * §PRIVATE§ (marker for asserts) + */ +private class VisiblePrivateClass { + private val privateVal: Int = 0 + private fun privateMethod() {} +}
\ No newline at end of file diff --git a/integration-tests/maven/projects/it-maven/src/main/kotlin/it/protected/ProtectedClass.kt b/integration-tests/maven/projects/it-maven/src/main/kotlin/it/protected/ProtectedClass.kt new file mode 100644 index 00000000..ad19f1a1 --- /dev/null +++ b/integration-tests/maven/projects/it-maven/src/main/kotlin/it/protected/ProtectedClass.kt @@ -0,0 +1,10 @@ +package it.protected + +/** + * Protected class should be visible because it's included in documentedVisibilities + * + * §PROTECTED§ (marker for asserts) + */ +protected class ProtectedClass { + protected fun protectedFun(): String = "protected" +} |