Update Dokka to 1.9.10-dev
- Use analysis plugin configuration instead of `StdLibAnalysisConfigurationPlugin` - Change SamplesTransformer plugin after Dokka refactoring
This commit is contained in:
@@ -54,7 +54,6 @@ val prepare by tasks.registering {
|
|||||||
|
|
||||||
dependencies {
|
dependencies {
|
||||||
dokkaPlugin(project(":plugins:dokka-samples-transformer-plugin"))
|
dokkaPlugin(project(":plugins:dokka-samples-transformer-plugin"))
|
||||||
dokkaPlugin(project(":plugins:dokka-stdlib-configuration-plugin"))
|
|
||||||
dokkaPlugin(project(":plugins:dokka-version-filter-plugin"))
|
dokkaPlugin(project(":plugins:dokka-version-filter-plugin"))
|
||||||
dokkaPlugin("org.jetbrains.dokka:versioning-plugin:$dokka_version")
|
dokkaPlugin("org.jetbrains.dokka:versioning-plugin:$dokka_version")
|
||||||
}
|
}
|
||||||
@@ -83,7 +82,7 @@ fun createStdLibVersionedDocTask(version: String, isLatest: Boolean) =
|
|||||||
val moduleDirName = "kotlin-stdlib"
|
val moduleDirName = "kotlin-stdlib"
|
||||||
with(pluginsMapConfiguration) {
|
with(pluginsMapConfiguration) {
|
||||||
put("org.jetbrains.dokka.base.DokkaBase" , """{ "mergeImplicitExpectActualDeclarations": "true", "templatesDir": "$templatesDir" }""")
|
put("org.jetbrains.dokka.base.DokkaBase" , """{ "mergeImplicitExpectActualDeclarations": "true", "templatesDir": "$templatesDir" }""")
|
||||||
put("org.jetbrains.dokka.kotlinlang.StdLibConfigurationPlugin", """{ "ignoreCommonBuiltIns": "true" }""")
|
put("org.jetbrains.dokka.analysis.kotlin.descriptors.compiler.CompilerDescriptorAnalysisPlugin", """{ "ignoreCommonBuiltIns": "true" }""")
|
||||||
put("org.jetbrains.dokka.versioning.VersioningPlugin" , """{ "version": "$version" }" }""")
|
put("org.jetbrains.dokka.versioning.VersioningPlugin" , """{ "version": "$version" }" }""")
|
||||||
}
|
}
|
||||||
if (isLatest) {
|
if (isLatest) {
|
||||||
|
|||||||
@@ -1,3 +1,3 @@
|
|||||||
org.gradle.jvmargs=-Xmx6G
|
org.gradle.jvmargs=-Xmx6G
|
||||||
dokka_version=1.8.20-dev-213
|
dokka_version=1.9.10-dev-230
|
||||||
systemProp.dokka.shouldDisplaySinceKotlin=true
|
systemProp.dokka.shouldDisplaySinceKotlin=true
|
||||||
+1
-2
@@ -6,9 +6,8 @@ description "Dokka Plugin to transform the samples from stdlib"
|
|||||||
final String dokka_version = property("dokka_version")
|
final String dokka_version = property("dokka_version")
|
||||||
|
|
||||||
dependencies {
|
dependencies {
|
||||||
implementation "org.jetbrains.dokka:dokka-base:$dokka_version"
|
|
||||||
compileOnly "org.jetbrains.dokka:dokka-core:$dokka_version"
|
compileOnly "org.jetbrains.dokka:dokka-core:$dokka_version"
|
||||||
compileOnly "org.jetbrains.dokka:dokka-analysis:$dokka_version"
|
compileOnly "org.jetbrains.dokka:analysis-kotlin-descriptors:$dokka_version"
|
||||||
}
|
}
|
||||||
|
|
||||||
kotlin {
|
kotlin {
|
||||||
|
|||||||
+12
-5
@@ -1,3 +1,5 @@
|
|||||||
|
@file:OptIn(InternalDokkaApi::class)
|
||||||
|
|
||||||
package org.jetbrains.dokka.kotlinlang
|
package org.jetbrains.dokka.kotlinlang
|
||||||
|
|
||||||
import com.intellij.psi.PsiDocumentManager
|
import com.intellij.psi.PsiDocumentManager
|
||||||
@@ -6,19 +8,24 @@ import com.intellij.psi.PsiElementVisitor
|
|||||||
import com.intellij.psi.PsiWhiteSpace
|
import com.intellij.psi.PsiWhiteSpace
|
||||||
import com.intellij.psi.impl.source.tree.LeafPsiElement
|
import com.intellij.psi.impl.source.tree.LeafPsiElement
|
||||||
import com.intellij.psi.util.PsiTreeUtil
|
import com.intellij.psi.util.PsiTreeUtil
|
||||||
import org.jetbrains.dokka.base.transformers.pages.samples.SamplesTransformer
|
import org.jetbrains.dokka.InternalDokkaApi
|
||||||
|
import org.jetbrains.dokka.analysis.kotlin.descriptors.compiler.impl.KotlinSampleProvider
|
||||||
|
import org.jetbrains.dokka.analysis.kotlin.internal.SampleProvider
|
||||||
|
import org.jetbrains.dokka.analysis.kotlin.internal.SampleProviderFactory
|
||||||
import org.jetbrains.dokka.plugability.DokkaContext
|
import org.jetbrains.dokka.plugability.DokkaContext
|
||||||
import org.jetbrains.kotlin.psi.*
|
import org.jetbrains.kotlin.psi.*
|
||||||
import org.jetbrains.kotlin.psi.psiUtil.allChildren
|
import org.jetbrains.kotlin.psi.psiUtil.allChildren
|
||||||
import org.jetbrains.kotlin.psi.psiUtil.prevLeaf
|
import org.jetbrains.kotlin.psi.psiUtil.prevLeaf
|
||||||
import org.jetbrains.kotlin.psi.psiUtil.startOffset
|
import org.jetbrains.kotlin.psi.psiUtil.startOffset
|
||||||
import org.jetbrains.kotlin.resolve.ImportPath
|
import org.jetbrains.kotlin.resolve.ImportPath
|
||||||
import org.jetbrains.kotlin.utils.addToStdlib.safeAs
|
|
||||||
import java.io.PrintWriter
|
import java.io.PrintWriter
|
||||||
import java.io.StringWriter
|
import java.io.StringWriter
|
||||||
|
|
||||||
class KotlinWebsiteSamplesTransformer(context: DokkaContext): SamplesTransformer(context) {
|
class KotlinWebsiteSampleProviderFactory(private val context: DokkaContext) : SampleProviderFactory {
|
||||||
|
override fun build(): SampleProvider = KotlinWebsiteSampleProvider(context)
|
||||||
|
}
|
||||||
|
|
||||||
|
class KotlinWebsiteSampleProvider(context: DokkaContext): KotlinSampleProvider(context) {
|
||||||
private class SampleBuilder : KtTreeVisitorVoid() {
|
private class SampleBuilder : KtTreeVisitorVoid() {
|
||||||
val builder = StringBuilder()
|
val builder = StringBuilder()
|
||||||
val text: String
|
val text: String
|
||||||
@@ -156,7 +163,7 @@ class KotlinWebsiteSamplesTransformer(context: DokkaContext): SamplesTransformer
|
|||||||
val pw = PrintWriter(sw)
|
val pw = PrintWriter(sw)
|
||||||
it.e.printStackTrace(pw)
|
it.e.printStackTrace(pw)
|
||||||
|
|
||||||
this@KotlinWebsiteSamplesTransformer.context.logger.error("${containingFile.name}: (${it.loc}): Exception thrown while converting \n```\n${it.text}\n```\n$sw")
|
this@KotlinWebsiteSampleProvider.context.logger.error("${containingFile.name}: (${it.loc}): Exception thrown while converting \n```\n${it.text}\n```\n$sw")
|
||||||
}
|
}
|
||||||
return sampleBuilder.text
|
return sampleBuilder.text
|
||||||
}
|
}
|
||||||
@@ -165,7 +172,7 @@ class KotlinWebsiteSamplesTransformer(context: DokkaContext): SamplesTransformer
|
|||||||
|
|
||||||
override fun processImports(psiElement: PsiElement): String {
|
override fun processImports(psiElement: PsiElement): String {
|
||||||
val psiFile = psiElement.containingFile
|
val psiFile = psiElement.containingFile
|
||||||
return when(val text = psiFile.safeAs<KtFile>()?.importList) {
|
return when(val text = (psiFile as? KtFile)?.importList) {
|
||||||
is KtImportList -> text.let {
|
is KtImportList -> text.let {
|
||||||
it.allChildren.filter {
|
it.allChildren.filter {
|
||||||
it !is KtImportDirective || it.importPath !in importsToIgnore
|
it !is KtImportDirective || it.importPath !in importsToIgnore
|
||||||
+10
-6
@@ -1,19 +1,23 @@
|
|||||||
package org.jetbrains.dokka.kotlinlang
|
package org.jetbrains.dokka.kotlinlang
|
||||||
|
|
||||||
import org.jetbrains.dokka.CoreExtensions
|
import org.jetbrains.dokka.InternalDokkaApi
|
||||||
import org.jetbrains.dokka.base.DokkaBase
|
import org.jetbrains.dokka.analysis.kotlin.descriptors.compiler.CompilerDescriptorAnalysisPlugin
|
||||||
|
import org.jetbrains.dokka.analysis.kotlin.internal.InternalKotlinAnalysisPlugin
|
||||||
import org.jetbrains.dokka.plugability.DokkaPlugin
|
import org.jetbrains.dokka.plugability.DokkaPlugin
|
||||||
import org.jetbrains.dokka.plugability.DokkaPluginApiPreview
|
import org.jetbrains.dokka.plugability.DokkaPluginApiPreview
|
||||||
import org.jetbrains.dokka.plugability.PluginApiPreviewAcknowledgement
|
import org.jetbrains.dokka.plugability.PluginApiPreviewAcknowledgement
|
||||||
|
import org.jetbrains.dokka.plugability.querySingle
|
||||||
|
|
||||||
class SamplesTransformerPlugin : DokkaPlugin() {
|
class SamplesTransformerPlugin : DokkaPlugin() {
|
||||||
private val dokkaBase by lazy { plugin<DokkaBase>() }
|
@OptIn(InternalDokkaApi::class)
|
||||||
|
private val dokkaKotlinAnalysisPlugin by lazy { plugin<InternalKotlinAnalysisPlugin>() }
|
||||||
|
@OptIn(InternalDokkaApi::class)
|
||||||
|
private val dokkaDescriptorAnalysisPlugin by lazy { plugin<CompilerDescriptorAnalysisPlugin>() }
|
||||||
|
|
||||||
|
@OptIn(InternalDokkaApi::class)
|
||||||
@Suppress("unused")
|
@Suppress("unused")
|
||||||
val kotlinWebsiteSamplesTransformer by extending {
|
val kotlinWebsiteSamplesTransformer by extending {
|
||||||
CoreExtensions.pageTransformer providing ::KotlinWebsiteSamplesTransformer override dokkaBase.defaultSamplesTransformer order {
|
dokkaKotlinAnalysisPlugin.sampleProviderFactory providing ::KotlinWebsiteSampleProviderFactory override dokkaDescriptorAnalysisPlugin.kotlinSampleProviderFactory
|
||||||
before(dokkaBase.pageMerger)
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
|
|
||||||
@DokkaPluginApiPreview
|
@DokkaPluginApiPreview
|
||||||
|
|||||||
-17
@@ -1,17 +0,0 @@
|
|||||||
plugins {
|
|
||||||
id 'org.jetbrains.kotlin.jvm'
|
|
||||||
}
|
|
||||||
description "Dokka Plugin to configure Dokka for stdlib"
|
|
||||||
|
|
||||||
final String dokka_version = property("dokka_version")
|
|
||||||
|
|
||||||
dependencies {
|
|
||||||
implementation "org.jetbrains.dokka:dokka-base:$dokka_version"
|
|
||||||
compileOnly "org.jetbrains.dokka:dokka-core:$dokka_version"
|
|
||||||
compileOnly "org.jetbrains.dokka:dokka-analysis:$dokka_version"
|
|
||||||
}
|
|
||||||
|
|
||||||
kotlin {
|
|
||||||
jvmToolchain(8)
|
|
||||||
}
|
|
||||||
|
|
||||||
-5
@@ -1,5 +0,0 @@
|
|||||||
package org.jetbrains.dokka.kotlinlang
|
|
||||||
|
|
||||||
import org.jetbrains.dokka.plugability.ConfigurableBlock
|
|
||||||
|
|
||||||
data class StdLibAnalysisConfiguration(val ignoreCommonBuiltIns: Boolean) : ConfigurableBlock
|
|
||||||
-33
@@ -1,33 +0,0 @@
|
|||||||
/*
|
|
||||||
* Copyright 2010-2023 JetBrains s.r.o. and Kotlin Programming Language contributors.
|
|
||||||
* Use of this source code is governed by the Apache 2.0 license that can be found in the license/LICENSE.txt file.
|
|
||||||
*/
|
|
||||||
|
|
||||||
package org.jetbrains.dokka.kotlinlang
|
|
||||||
|
|
||||||
import org.jetbrains.dokka.base.DokkaBase
|
|
||||||
import org.jetbrains.dokka.plugability.DokkaPlugin
|
|
||||||
import org.jetbrains.dokka.analysis.DokkaAnalysisConfiguration
|
|
||||||
import org.jetbrains.dokka.analysis.ProjectKotlinAnalysis
|
|
||||||
import org.jetbrains.dokka.plugability.DokkaPluginApiPreview
|
|
||||||
import org.jetbrains.dokka.plugability.PluginApiPreviewAcknowledgement
|
|
||||||
import org.jetbrains.dokka.plugability.configuration
|
|
||||||
|
|
||||||
class StdLibConfigurationPlugin : DokkaPlugin() {
|
|
||||||
private val dokkaBase by lazy { plugin<DokkaBase>() }
|
|
||||||
|
|
||||||
@Suppress("unused")
|
|
||||||
val stdLibKotlinAnalysis by extending {
|
|
||||||
dokkaBase.kotlinAnalysis providing { ctx ->
|
|
||||||
val ignoreCommonBuiltIns = configuration<StdLibConfigurationPlugin, StdLibAnalysisConfiguration>(ctx)?.ignoreCommonBuiltIns ?: false
|
|
||||||
ProjectKotlinAnalysis(
|
|
||||||
sourceSets = ctx.configuration.sourceSets,
|
|
||||||
logger = ctx.logger,
|
|
||||||
analysisConfiguration = DokkaAnalysisConfiguration(ignoreCommonBuiltIns = ignoreCommonBuiltIns)
|
|
||||||
)
|
|
||||||
} override dokkaBase.defaultKotlinAnalysis
|
|
||||||
}
|
|
||||||
|
|
||||||
@DokkaPluginApiPreview
|
|
||||||
override fun pluginApiPreviewAcknowledgement(): PluginApiPreviewAcknowledgement = PluginApiPreviewAcknowledgement
|
|
||||||
}
|
|
||||||
-1
@@ -1 +0,0 @@
|
|||||||
org.jetbrains.dokka.kotlinlang.StdLibConfigurationPlugin
|
|
||||||
@@ -8,7 +8,6 @@ final String dokka_version = property("dokka_version")
|
|||||||
dependencies {
|
dependencies {
|
||||||
implementation "org.jetbrains.dokka:dokka-base:$dokka_version"
|
implementation "org.jetbrains.dokka:dokka-base:$dokka_version"
|
||||||
compileOnly "org.jetbrains.dokka:dokka-core:$dokka_version"
|
compileOnly "org.jetbrains.dokka:dokka-core:$dokka_version"
|
||||||
compileOnly "org.jetbrains.dokka:dokka-analysis:$dokka_version"
|
|
||||||
testImplementation 'org.jetbrains.kotlin:kotlin-test'}
|
testImplementation 'org.jetbrains.kotlin:kotlin-test'}
|
||||||
|
|
||||||
kotlin {
|
kotlin {
|
||||||
|
|||||||
+2
-1
@@ -8,7 +8,6 @@ import org.jetbrains.dokka.model.doc.Text
|
|||||||
import org.jetbrains.dokka.plugability.DokkaContext
|
import org.jetbrains.dokka.plugability.DokkaContext
|
||||||
import org.jetbrains.dokka.plugability.configuration
|
import org.jetbrains.dokka.plugability.configuration
|
||||||
import org.jetbrains.dokka.transformers.documentation.DocumentableTransformer
|
import org.jetbrains.dokka.transformers.documentation.DocumentableTransformer
|
||||||
import org.jetbrains.kotlin.utils.addToStdlib.ifNotEmpty
|
|
||||||
|
|
||||||
class VersionFilterTransformer(private val dokkaContext: DokkaContext) :
|
class VersionFilterTransformer(private val dokkaContext: DokkaContext) :
|
||||||
DocumentableTransformer {
|
DocumentableTransformer {
|
||||||
@@ -120,4 +119,6 @@ class VersionFilterTransformer(private val dokkaContext: DokkaContext) :
|
|||||||
return documentation[sourceSet]?.children?.find { it is CustomTagWrapper && it.name == "Since Kotlin" }
|
return documentation[sourceSet]?.children?.find { it is CustomTagWrapper && it.name == "Since Kotlin" }
|
||||||
?.let { (it.children[0] as? Text)?.body?.let { txt -> SinceKotlinVersion(txt) } }
|
?.let { (it.children[0] as? Text)?.body?.let { txt -> SinceKotlinVersion(txt) } }
|
||||||
}
|
}
|
||||||
|
|
||||||
|
inline fun <T, C : Collection<T>, O> C.ifNotEmpty(body: C.() -> O?): O? = if (isNotEmpty()) this.body() else null
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -31,5 +31,4 @@ rootProject.name = "kotlin-stdlib-docs"
|
|||||||
include("kotlin_big")
|
include("kotlin_big")
|
||||||
include("plugins")
|
include("plugins")
|
||||||
include("plugins:dokka-samples-transformer-plugin")
|
include("plugins:dokka-samples-transformer-plugin")
|
||||||
include("plugins:dokka-stdlib-configuration-plugin")
|
|
||||||
include("plugins:dokka-version-filter-plugin")
|
include("plugins:dokka-version-filter-plugin")
|
||||||
|
|||||||
Reference in New Issue
Block a user