diff options
author | Simon Ogorodnik <Simon.Ogorodnik@jetbrains.com> | 2017-05-16 18:26:22 +0300 |
---|---|---|
committer | Simon Ogorodnik <Simon.Ogorodnik@jetbrains.com> | 2017-05-16 19:37:32 +0300 |
commit | 177aff68f26b01c20508a51272607829c831d323 (patch) | |
tree | 44c974c95037af1f003fa09352a3e3408968b2b7 | |
parent | f9baebebf36904caea48fa45292874f53c4986ab (diff) | |
download | dokka-177aff68f26b01c20508a51272607829c831d323.tar.gz dokka-177aff68f26b01c20508a51272607829c831d323.tar.bz2 dokka-177aff68f26b01c20508a51272607829c831d323.zip |
Fix runner parameters for consistency, add default link to stdlib
-rw-r--r-- | core/src/main/kotlin/DokkaBootstrapImpl.kt | 4 | ||||
-rw-r--r-- | core/src/main/kotlin/Generation/configurationImpl.kt | 3 | ||||
-rw-r--r-- | core/src/main/kotlin/Kotlin/DocumentationBuilder.kt | 14 | ||||
-rw-r--r-- | core/src/test/kotlin/TestAPI.kt | 3 | ||||
-rw-r--r-- | core/src/test/kotlin/format/KotlinWebSiteFormatTest.kt | 2 | ||||
-rw-r--r-- | core/src/test/kotlin/format/KotlinWebSiteHtmlFormatTest.kt | 2 | ||||
-rw-r--r-- | core/src/test/kotlin/format/MarkdownFormatTest.kt | 4 | ||||
-rw-r--r-- | integration/src/main/kotlin/org/jetbrains/dokka/configuration.kt | 4 | ||||
-rw-r--r-- | runners/ant/src/main/kotlin/ant/dokka.kt | 5 | ||||
-rw-r--r-- | runners/cli/src/main/kotlin/cli/main.kt | 8 | ||||
-rw-r--r-- | runners/gradle-plugin/src/main/kotlin/main.kt | 10 | ||||
-rw-r--r-- | runners/maven-plugin/src/main/kotlin/DokkaMojo.kt | 6 |
12 files changed, 44 insertions, 21 deletions
diff --git a/core/src/main/kotlin/DokkaBootstrapImpl.kt b/core/src/main/kotlin/DokkaBootstrapImpl.kt index 5ac1c57f..593c6db1 100644 --- a/core/src/main/kotlin/DokkaBootstrapImpl.kt +++ b/core/src/main/kotlin/DokkaBootstrapImpl.kt @@ -61,7 +61,9 @@ class DokkaBootstrapImpl : DokkaBootstrap { generateIndexPages, sourceLinks, impliedPlatforms, - perPackageOptions + perPackageOptions, + externalDocumentationLinks, + noStdlibLink ) ) } diff --git a/core/src/main/kotlin/Generation/configurationImpl.kt b/core/src/main/kotlin/Generation/configurationImpl.kt index b51857e7..cdc9752d 100644 --- a/core/src/main/kotlin/Generation/configurationImpl.kt +++ b/core/src/main/kotlin/Generation/configurationImpl.kt @@ -51,4 +51,5 @@ data class DokkaConfigurationImpl(override val moduleName: String, override val sourceLinks: List<SourceLinkDefinitionImpl>, override val impliedPlatforms: List<String>, override val perPackageOptions: List<PackageOptionsImpl>, - override val externalDocumentationLinks: List<ExternalDocumentationLinkImpl>) : DokkaConfiguration
\ No newline at end of file + override val externalDocumentationLinks: List<ExternalDocumentationLinkImpl>, + override val noStdlibLink: Boolean) : DokkaConfiguration
\ No newline at end of file diff --git a/core/src/main/kotlin/Kotlin/DocumentationBuilder.kt b/core/src/main/kotlin/Kotlin/DocumentationBuilder.kt index 5049f42d..0fc87a8e 100644 --- a/core/src/main/kotlin/Kotlin/DocumentationBuilder.kt +++ b/core/src/main/kotlin/Kotlin/DocumentationBuilder.kt @@ -44,7 +44,8 @@ class DocumentationOptions(val outputDir: String, val impliedPlatforms: List<String> = emptyList(), // Sorted by pattern length perPackageOptions: List<PackageOptions> = emptyList(), - externalDocumentationLinks: List<ExternalDocumentationLink> = emptyList()) { + externalDocumentationLinks: List<ExternalDocumentationLink> = emptyList(), + noStdlibLink: Boolean) { init { if (perPackageOptions.any { it.prefix == "" }) throw IllegalArgumentException("Please do not register packageOptions with all match pattern, use global settings instead") @@ -53,10 +54,17 @@ class DocumentationOptions(val outputDir: String, val perPackageOptions = perPackageOptions.sortedByDescending { it.prefix.length } val rootPackageOptions = PackageOptionsImpl("", includeNonPublic, reportUndocumented, skipDeprecated) - fun effectivePackageOptions(pack: String): PackageOptions = perPackageOptions.firstOrNull { pack.startsWith(it.prefix + ".") } ?: rootPackageOptions + fun effectivePackageOptions(pack: String): PackageOptions = perPackageOptions.firstOrNull { pack == it.prefix || pack.startsWith(it.prefix + ".") } ?: rootPackageOptions fun effectivePackageOptions(pack: FqName): PackageOptions = effectivePackageOptions(pack.asString()) - val externalDocumentationLinks = listOf(ExternalDocumentationLink.Builder("http://docs.oracle.com/javase/$jdkVersion/docs/api/").build()) + externalDocumentationLinks + val defaultLinks = run { + val links = mutableListOf(ExternalDocumentationLink.Builder("http://docs.oracle.com/javase/$jdkVersion/docs/api/").build()) + if (!noStdlibLink) + links += ExternalDocumentationLink.Builder("https://kotlinlang.org/api/latest/jvm/stdlib/").build() + links + } + + val externalDocumentationLinks = defaultLinks + externalDocumentationLinks } private fun isExtensionForExternalClass(extensionFunctionDescriptor: DeclarationDescriptor, diff --git a/core/src/test/kotlin/TestAPI.kt b/core/src/test/kotlin/TestAPI.kt index a33c83f4..2d937679 100644 --- a/core/src/test/kotlin/TestAPI.kt +++ b/core/src/test/kotlin/TestAPI.kt @@ -32,7 +32,8 @@ fun verifyModel(vararg roots: ContentRoot, skipEmptyPackages = false, includeRootPackage = true, sourceLinks = listOf<SourceLinkDefinition>(), - generateIndexPages = false) + generateIndexPages = false, + noStdlibLink = true) appendDocumentation(documentation, *roots, withJdk = withJdk, diff --git a/core/src/test/kotlin/format/KotlinWebSiteFormatTest.kt b/core/src/test/kotlin/format/KotlinWebSiteFormatTest.kt index cc172762..f4ca2982 100644 --- a/core/src/test/kotlin/format/KotlinWebSiteFormatTest.kt +++ b/core/src/test/kotlin/format/KotlinWebSiteFormatTest.kt @@ -42,7 +42,7 @@ class KotlinWebSiteFormatTest { private fun buildMultiplePlatforms(path: String): DocumentationModule { val module = DocumentationModule("test") - val options = DocumentationOptions("", "html", generateIndexPages = false) + val options = DocumentationOptions("", "html", generateIndexPages = false, noStdlibLink = true) appendDocumentation(module, contentRootFromPath("testdata/format/website/$path/jvm.kt"), defaultPlatforms = listOf("JVM"), options = options) appendDocumentation(module, contentRootFromPath("testdata/format/website/$path/jre7.kt"), defaultPlatforms = listOf("JVM", "JRE7"), options = options) appendDocumentation(module, contentRootFromPath("testdata/format/website/$path/js.kt"), defaultPlatforms = listOf("JS"), options = options) diff --git a/core/src/test/kotlin/format/KotlinWebSiteHtmlFormatTest.kt b/core/src/test/kotlin/format/KotlinWebSiteHtmlFormatTest.kt index 6178118a..b4b133f4 100644 --- a/core/src/test/kotlin/format/KotlinWebSiteHtmlFormatTest.kt +++ b/core/src/test/kotlin/format/KotlinWebSiteHtmlFormatTest.kt @@ -57,7 +57,7 @@ class KotlinWebSiteHtmlFormatTest { private fun buildMultiplePlatforms(path: String): DocumentationModule { val module = DocumentationModule("test") - val options = DocumentationOptions("", "html", generateIndexPages = false) + val options = DocumentationOptions("", "html", generateIndexPages = false, noStdlibLink = true) appendDocumentation(module, contentRootFromPath("testdata/format/website-html/$path/jvm.kt"), defaultPlatforms = listOf("JVM"), options = options) appendDocumentation(module, contentRootFromPath("testdata/format/website-html/$path/jre7.kt"), defaultPlatforms = listOf("JVM", "JRE7"), options = options) appendDocumentation(module, contentRootFromPath("testdata/format/website-html/$path/js.kt"), defaultPlatforms = listOf("JS"), options = options) diff --git a/core/src/test/kotlin/format/MarkdownFormatTest.kt b/core/src/test/kotlin/format/MarkdownFormatTest.kt index 217bfd09..52a62656 100644 --- a/core/src/test/kotlin/format/MarkdownFormatTest.kt +++ b/core/src/test/kotlin/format/MarkdownFormatTest.kt @@ -300,7 +300,7 @@ class MarkdownFormatTest { @Test fun packagePlatformsWithExtExtensions() { val path = "multiplatform/packagePlatformsWithExtExtensions" val module = DocumentationModule("test") - val options = DocumentationOptions("", "html", generateIndexPages = false) + val options = DocumentationOptions("", "html", generateIndexPages = false, noStdlibLink = true) appendDocumentation(module, contentRootFromPath("testdata/format/$path/jvm.kt"), defaultPlatforms = listOf("JVM"), withKotlinRuntime = true, options = options) verifyMultiplatformIndex(module, path) verifyMultiplatformPackage(module, path) @@ -366,7 +366,7 @@ class MarkdownFormatTest { private fun buildMultiplePlatforms(path: String): DocumentationModule { val module = DocumentationModule("test") - val options = DocumentationOptions("", "html", generateIndexPages = false) + val options = DocumentationOptions("", "html", generateIndexPages = false, noStdlibLink = true) appendDocumentation(module, contentRootFromPath("testdata/format/$path/jvm.kt"), defaultPlatforms = listOf("JVM"), options = options) appendDocumentation(module, contentRootFromPath("testdata/format/$path/js.kt"), defaultPlatforms = listOf("JS"), options = options) return module diff --git a/integration/src/main/kotlin/org/jetbrains/dokka/configuration.kt b/integration/src/main/kotlin/org/jetbrains/dokka/configuration.kt index ca6f0bc4..61f9376e 100644 --- a/integration/src/main/kotlin/org/jetbrains/dokka/configuration.kt +++ b/integration/src/main/kotlin/org/jetbrains/dokka/configuration.kt @@ -22,6 +22,7 @@ interface DokkaConfiguration { val impliedPlatforms: List<String> val perPackageOptions: List<PackageOptions> val externalDocumentationLinks: List<DokkaConfiguration.ExternalDocumentationLink> + val noStdlibLink: Boolean interface SourceRoot { val path: String @@ -78,7 +79,8 @@ data class SerializeOnlyDokkaConfiguration(override val moduleName: String, override val sourceLinks: List<DokkaConfiguration.SourceLinkDefinition>, override val impliedPlatforms: List<String>, override val perPackageOptions: List<DokkaConfiguration.PackageOptions>, - override val externalDocumentationLinks: List<DokkaConfiguration.ExternalDocumentationLink>) : DokkaConfiguration + override val externalDocumentationLinks: List<DokkaConfiguration.ExternalDocumentationLink>, + override val noStdlibLink: Boolean) : DokkaConfiguration data class ExternalDocumentationLinkImpl internal constructor(override val url: URL, diff --git a/runners/ant/src/main/kotlin/ant/dokka.kt b/runners/ant/src/main/kotlin/ant/dokka.kt index 83d7e8ac..964c77a5 100644 --- a/runners/ant/src/main/kotlin/ant/dokka.kt +++ b/runners/ant/src/main/kotlin/ant/dokka.kt @@ -38,6 +38,8 @@ class DokkaAntTask: Task() { var impliedPlatforms: String = "" var jdkVersion: Int = 6 + var noStdlibLink: Boolean = false + var skipDeprecated: Boolean = false val compileClasspath: Path by lazy { Path(getProject()) } @@ -119,7 +121,8 @@ class DokkaAntTask: Task() { jdkVersion = jdkVersion, impliedPlatforms = impliedPlatforms.split(','), perPackageOptions = antPackageOptions, - externalDocumentationLinks = antExternalDocumentationLinks.map { it.build() } + externalDocumentationLinks = antExternalDocumentationLinks.map { it.build() }, + noStdlibLink = noStdlibLink ) ) generator.generate() diff --git a/runners/cli/src/main/kotlin/cli/main.kt b/runners/cli/src/main/kotlin/cli/main.kt index ff2107e2..9a852b5a 100644 --- a/runners/cli/src/main/kotlin/cli/main.kt +++ b/runners/cli/src/main/kotlin/cli/main.kt @@ -55,8 +55,11 @@ class DokkaArguments { @set:Argument(value = "packageOptions", description = "List of package options in format \"prefix,-deprecated,-privateApi,+warnUndocumented;...\" ") var packageOptions: String = "" - @set:Argument(value = "links", description = "") + @set:Argument(value = "links", description = "External documentation links in format url^packageListUrl^^url2...") var links: String = "" + + @set: Argument(value = "noStdlibLink", description = "Disable documentation link to stdlib") + var noStdlibLink: Boolean = false } @@ -108,7 +111,8 @@ object MainKt { impliedPlatforms = arguments.impliedPlatforms.split(','), perPackageOptions = parsePerPackageOptions(arguments.packageOptions), jdkVersion = arguments.jdkVersion, - externalDocumentationLinks = parseLinks(arguments.links) + externalDocumentationLinks = parseLinks(arguments.links), + noStdlibLink = arguments.noStdlibLink ) val generator = DokkaGenerator( diff --git a/runners/gradle-plugin/src/main/kotlin/main.kt b/runners/gradle-plugin/src/main/kotlin/main.kt index bfa8feea..afd1f762 100644 --- a/runners/gradle-plugin/src/main/kotlin/main.kt +++ b/runners/gradle-plugin/src/main/kotlin/main.kt @@ -87,6 +87,7 @@ open class DokkaTask : DefaultTask() { @Input var externalDocumentationLinks = mutableListOf<DokkaConfiguration.ExternalDocumentationLink>() + @Input var noStdlibLink: Boolean = false protected open val sdkProvider: SdkProvider? = null @@ -195,7 +196,8 @@ open class DokkaTask : DefaultTask() { linkMappings, impliedPlatforms, perPackageOptions, - externalDocumentationLinks) + externalDocumentationLinks, + noStdlibLink) bootstrapProxy.configure( @@ -217,10 +219,6 @@ open class DokkaTask : DefaultTask() { } fun collectSourceRoots(): List<SourceRoot> { - if (sourceRoots.any()) { - return sourceRoots - } - val provider = sdkProvider val sourceDirs = if (sourceDirs.any()) { logger.info("Dokka: Taking source directories provided by the user") @@ -235,7 +233,7 @@ open class DokkaTask : DefaultTask() { sourceSets?.allSource?.srcDirs } - return sourceDirs?.filter { it.exists() }?.map { SourceRoot().apply { path = it.path } } ?: emptyList() + return sourceRoots + (sourceDirs?.filter { it.exists() }?.map { SourceRoot().apply { path = it.path } } ?: emptyList()) } @InputFiles diff --git a/runners/maven-plugin/src/main/kotlin/DokkaMojo.kt b/runners/maven-plugin/src/main/kotlin/DokkaMojo.kt index cef0f2d8..fc358a90 100644 --- a/runners/maven-plugin/src/main/kotlin/DokkaMojo.kt +++ b/runners/maven-plugin/src/main/kotlin/DokkaMojo.kt @@ -99,6 +99,9 @@ abstract class AbstractDokkaMojo : AbstractMojo() { @Parameter var externalDocumentationLinks: List<ExternalDocumentationLinkBuilder> = emptyList() + @Parameter(defaultValue = "false") + var noStdlibLink: Boolean = false + protected abstract fun getOutDir(): String protected abstract fun getOutFormat(): String @@ -123,7 +126,8 @@ abstract class AbstractDokkaMojo : AbstractMojo() { reportUndocumented = reportNotDocumented, impliedPlatforms = impliedPlatforms, perPackageOptions = perPackageOptions, - externalDocumentationLinks = externalDocumentationLinks.map { it.build() } + externalDocumentationLinks = externalDocumentationLinks.map { it.build() }, + noStdlibLink = noStdlibLink ) ) |