From a99eda305c8e70d4af77c66be5ae0d579c3f984c Mon Sep 17 00:00:00 2001 From: vmishenev Date: Fri, 21 Oct 2022 15:52:05 +0300 Subject: [PATCH] Run sample analysis from `Dispatchers.Default` --- .../pages/samples/SamplesTransformer.kt | 20 +++++++++---------- 1 file changed, 10 insertions(+), 10 deletions(-) diff --git a/plugins/base/src/main/kotlin/transformers/pages/samples/SamplesTransformer.kt b/plugins/base/src/main/kotlin/transformers/pages/samples/SamplesTransformer.kt index 9c78972adf..80ee40ae8e 100644 --- a/plugins/base/src/main/kotlin/transformers/pages/samples/SamplesTransformer.kt +++ b/plugins/base/src/main/kotlin/transformers/pages/samples/SamplesTransformer.kt @@ -1,6 +1,8 @@ package org.jetbrains.dokka.base.transformers.pages.samples import com.intellij.psi.PsiElement +import kotlinx.coroutines.Dispatchers +import kotlinx.coroutines.runBlocking import org.jetbrains.dokka.DokkaConfiguration.DokkaSourceSet import org.jetbrains.dokka.Platform import org.jetbrains.dokka.analysis.AnalysisEnvironment @@ -22,19 +24,17 @@ import org.jetbrains.kotlin.idea.kdoc.resolveKDocLink import org.jetbrains.kotlin.name.FqName import org.jetbrains.kotlin.resolve.BindingContext import org.jetbrains.kotlin.resolve.DescriptorToSourceUtils -import org.jetbrains.kotlin.utils.PathUtil abstract class SamplesTransformer(val context: DokkaContext) : PageTransformer { abstract fun processBody(psiElement: PsiElement): String abstract fun processImports(psiElement: PsiElement): String - final override fun invoke(input: RootPageNode): RootPageNode { + final override fun invoke(input: RootPageNode): RootPageNode = runBlocking(Dispatchers.Default) { // to run from thread of Dispatchers.Default val analysis = setUpAnalysis(context) - val kotlinPlaygroundScript = - "" + val kotlinPlaygroundScript = "" - return input.transformContentPagesTree { page -> + input.transformContentPagesTree { page -> val samples = (page as? WithDocumentables)?.documentables?.flatMap { it.documentation.entries.flatMap { entry -> entry.value.children.filterIsInstance().map { entry.key to it } @@ -42,11 +42,11 @@ abstract class SamplesTransformer(val context: DokkaContext) : PageTransformer { } samples?.fold(page as ContentPage) { acc, (sampleSourceSet, sample) -> - acc.modified( - content = acc.content.addSample(page, sampleSourceSet, sample.name, analysis), - embeddedResources = acc.embeddedResources + kotlinPlaygroundScript - ) - } ?: page + acc.modified( + content = acc.content.addSample(page, sampleSourceSet, sample.name, analysis), + embeddedResources = acc.embeddedResources + kotlinPlaygroundScript + ) + } ?: page } }