aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorSimon Ogorodnik <Simon.Ogorodnik@jetbrains.com>2017-05-16 18:26:22 +0300
committerSimon Ogorodnik <Simon.Ogorodnik@jetbrains.com>2017-05-16 19:37:32 +0300
commit177aff68f26b01c20508a51272607829c831d323 (patch)
tree44c974c95037af1f003fa09352a3e3408968b2b7
parentf9baebebf36904caea48fa45292874f53c4986ab (diff)
downloaddokka-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.kt4
-rw-r--r--core/src/main/kotlin/Generation/configurationImpl.kt3
-rw-r--r--core/src/main/kotlin/Kotlin/DocumentationBuilder.kt14
-rw-r--r--core/src/test/kotlin/TestAPI.kt3
-rw-r--r--core/src/test/kotlin/format/KotlinWebSiteFormatTest.kt2
-rw-r--r--core/src/test/kotlin/format/KotlinWebSiteHtmlFormatTest.kt2
-rw-r--r--core/src/test/kotlin/format/MarkdownFormatTest.kt4
-rw-r--r--integration/src/main/kotlin/org/jetbrains/dokka/configuration.kt4
-rw-r--r--runners/ant/src/main/kotlin/ant/dokka.kt5
-rw-r--r--runners/cli/src/main/kotlin/cli/main.kt8
-rw-r--r--runners/gradle-plugin/src/main/kotlin/main.kt10
-rw-r--r--runners/maven-plugin/src/main/kotlin/DokkaMojo.kt6
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
)
)