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 {
|
||||
dokkaPlugin(project(":plugins:dokka-samples-transformer-plugin"))
|
||||
dokkaPlugin(project(":plugins:dokka-stdlib-configuration-plugin"))
|
||||
dokkaPlugin(project(":plugins:dokka-version-filter-plugin"))
|
||||
dokkaPlugin("org.jetbrains.dokka:versioning-plugin:$dokka_version")
|
||||
}
|
||||
@@ -83,7 +82,7 @@ fun createStdLibVersionedDocTask(version: String, isLatest: Boolean) =
|
||||
val moduleDirName = "kotlin-stdlib"
|
||||
with(pluginsMapConfiguration) {
|
||||
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" }" }""")
|
||||
}
|
||||
if (isLatest) {
|
||||
|
||||
@@ -1,3 +1,3 @@
|
||||
org.gradle.jvmargs=-Xmx6G
|
||||
dokka_version=1.8.20-dev-213
|
||||
dokka_version=1.9.10-dev-230
|
||||
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")
|
||||
|
||||
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"
|
||||
compileOnly "org.jetbrains.dokka:analysis-kotlin-descriptors:$dokka_version"
|
||||
}
|
||||
|
||||
kotlin {
|
||||
|
||||
+12
-5
@@ -1,3 +1,5 @@
|
||||
@file:OptIn(InternalDokkaApi::class)
|
||||
|
||||
package org.jetbrains.dokka.kotlinlang
|
||||
|
||||
import com.intellij.psi.PsiDocumentManager
|
||||
@@ -6,19 +8,24 @@ import com.intellij.psi.PsiElementVisitor
|
||||
import com.intellij.psi.PsiWhiteSpace
|
||||
import com.intellij.psi.impl.source.tree.LeafPsiElement
|
||||
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.kotlin.psi.*
|
||||
import org.jetbrains.kotlin.psi.psiUtil.allChildren
|
||||
import org.jetbrains.kotlin.psi.psiUtil.prevLeaf
|
||||
import org.jetbrains.kotlin.psi.psiUtil.startOffset
|
||||
import org.jetbrains.kotlin.resolve.ImportPath
|
||||
import org.jetbrains.kotlin.utils.addToStdlib.safeAs
|
||||
import java.io.PrintWriter
|
||||
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() {
|
||||
val builder = StringBuilder()
|
||||
val text: String
|
||||
@@ -156,7 +163,7 @@ class KotlinWebsiteSamplesTransformer(context: DokkaContext): SamplesTransformer
|
||||
val pw = PrintWriter(sw)
|
||||
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
|
||||
}
|
||||
@@ -165,7 +172,7 @@ class KotlinWebsiteSamplesTransformer(context: DokkaContext): SamplesTransformer
|
||||
|
||||
override fun processImports(psiElement: PsiElement): String {
|
||||
val psiFile = psiElement.containingFile
|
||||
return when(val text = psiFile.safeAs<KtFile>()?.importList) {
|
||||
return when(val text = (psiFile as? KtFile)?.importList) {
|
||||
is KtImportList -> text.let {
|
||||
it.allChildren.filter {
|
||||
it !is KtImportDirective || it.importPath !in importsToIgnore
|
||||
+10
-6
@@ -1,19 +1,23 @@
|
||||
package org.jetbrains.dokka.kotlinlang
|
||||
|
||||
import org.jetbrains.dokka.CoreExtensions
|
||||
import org.jetbrains.dokka.base.DokkaBase
|
||||
import org.jetbrains.dokka.InternalDokkaApi
|
||||
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.DokkaPluginApiPreview
|
||||
import org.jetbrains.dokka.plugability.PluginApiPreviewAcknowledgement
|
||||
import org.jetbrains.dokka.plugability.querySingle
|
||||
|
||||
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")
|
||||
val kotlinWebsiteSamplesTransformer by extending {
|
||||
CoreExtensions.pageTransformer providing ::KotlinWebsiteSamplesTransformer override dokkaBase.defaultSamplesTransformer order {
|
||||
before(dokkaBase.pageMerger)
|
||||
}
|
||||
dokkaKotlinAnalysisPlugin.sampleProviderFactory providing ::KotlinWebsiteSampleProviderFactory override dokkaDescriptorAnalysisPlugin.kotlinSampleProviderFactory
|
||||
}
|
||||
|
||||
@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 {
|
||||
implementation "org.jetbrains.dokka:dokka-base:$dokka_version"
|
||||
compileOnly "org.jetbrains.dokka:dokka-core:$dokka_version"
|
||||
compileOnly "org.jetbrains.dokka:dokka-analysis:$dokka_version"
|
||||
testImplementation 'org.jetbrains.kotlin:kotlin-test'}
|
||||
|
||||
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.configuration
|
||||
import org.jetbrains.dokka.transformers.documentation.DocumentableTransformer
|
||||
import org.jetbrains.kotlin.utils.addToStdlib.ifNotEmpty
|
||||
|
||||
class VersionFilterTransformer(private val dokkaContext: DokkaContext) :
|
||||
DocumentableTransformer {
|
||||
@@ -120,4 +119,6 @@ class VersionFilterTransformer(private val dokkaContext: DokkaContext) :
|
||||
return documentation[sourceSet]?.children?.find { it is CustomTagWrapper && it.name == "Since Kotlin" }
|
||||
?.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("plugins")
|
||||
include("plugins:dokka-samples-transformer-plugin")
|
||||
include("plugins:dokka-stdlib-configuration-plugin")
|
||||
include("plugins:dokka-version-filter-plugin")
|
||||
|
||||
Reference in New Issue
Block a user