From 610b5520b02ce8275462793e176406d1fb37861c Mon Sep 17 00:00:00 2001 From: Vadim Mishenev Date: Wed, 22 Nov 2023 17:14:14 +0300 Subject: Do not find javadoc for non-JVM source set (#3346) * Add test * Do not find javadoc for non-JVM source set * [K2] Add javadoc parser for external documentable Provider --- .../symbols/services/SymbolExternalDocumentablesProvider.kt | 13 ++++++++++++- .../translators/DefaultSymbolToDocumentableTranslator.kt | 5 ++++- 2 files changed, 16 insertions(+), 2 deletions(-) (limited to 'dokka-subprojects/analysis-kotlin-symbols/src') diff --git a/dokka-subprojects/analysis-kotlin-symbols/src/main/kotlin/org/jetbrains/dokka/analysis/kotlin/symbols/services/SymbolExternalDocumentablesProvider.kt b/dokka-subprojects/analysis-kotlin-symbols/src/main/kotlin/org/jetbrains/dokka/analysis/kotlin/symbols/services/SymbolExternalDocumentablesProvider.kt index 1473a7da..f68de715 100644 --- a/dokka-subprojects/analysis-kotlin-symbols/src/main/kotlin/org/jetbrains/dokka/analysis/kotlin/symbols/services/SymbolExternalDocumentablesProvider.kt +++ b/dokka-subprojects/analysis-kotlin-symbols/src/main/kotlin/org/jetbrains/dokka/analysis/kotlin/symbols/services/SymbolExternalDocumentablesProvider.kt @@ -5,6 +5,9 @@ package org.jetbrains.dokka.analysis.kotlin.symbols.services import org.jetbrains.dokka.DokkaConfiguration.DokkaSourceSet +import org.jetbrains.dokka.Platform +import org.jetbrains.dokka.analysis.java.JavaAnalysisPlugin +import org.jetbrains.dokka.analysis.java.parsers.JavadocParser import org.jetbrains.dokka.analysis.kotlin.symbols.plugin.SymbolsAnalysisPlugin import org.jetbrains.dokka.analysis.kotlin.symbols.translators.DokkaSymbolVisitor import org.jetbrains.dokka.analysis.kotlin.symbols.translators.getClassIdFromDRI @@ -17,6 +20,7 @@ import org.jetbrains.dokka.plugability.querySingle import org.jetbrains.kotlin.analysis.api.analyze import org.jetbrains.kotlin.analysis.api.symbols.KtNamedClassOrObjectSymbol import org.jetbrains.dokka.analysis.kotlin.internal.ExternalDocumentablesProvider +import org.jetbrains.dokka.plugability.query internal class SymbolExternalDocumentablesProvider(val context: DokkaContext) : ExternalDocumentablesProvider { private val kotlinAnalysis = context.plugin().querySingle { kotlinAnalysis } @@ -26,7 +30,14 @@ internal class SymbolExternalDocumentablesProvider(val context: DokkaContext) : return analyze(kotlinAnalysis.getModule(sourceSet)) { val symbol = getClassOrObjectSymbolByClassId(classId) as? KtNamedClassOrObjectSymbol?: return@analyze null - val translator = DokkaSymbolVisitor(sourceSet, sourceSet.displayName, kotlinAnalysis, logger = context.logger) + val javadocParser = + if (sourceSet.analysisPlatform == Platform.jvm) + JavadocParser( + docCommentParsers = context.plugin().query { docCommentParsers }, + docCommentFinder = context.plugin().docCommentFinder + ) + else null + val translator = DokkaSymbolVisitor(sourceSet, sourceSet.displayName, kotlinAnalysis, logger = context.logger, javadocParser) val parentDRI = symbol.getContainingSymbol()?.let { getDRIFromSymbol(it) } ?: /* top level */ DRI(dri.packageName) with(translator) { diff --git a/dokka-subprojects/analysis-kotlin-symbols/src/main/kotlin/org/jetbrains/dokka/analysis/kotlin/symbols/translators/DefaultSymbolToDocumentableTranslator.kt b/dokka-subprojects/analysis-kotlin-symbols/src/main/kotlin/org/jetbrains/dokka/analysis/kotlin/symbols/translators/DefaultSymbolToDocumentableTranslator.kt index 298d0182..9a17f831 100644 --- a/dokka-subprojects/analysis-kotlin-symbols/src/main/kotlin/org/jetbrains/dokka/analysis/kotlin/symbols/translators/DefaultSymbolToDocumentableTranslator.kt +++ b/dokka-subprojects/analysis-kotlin-symbols/src/main/kotlin/org/jetbrains/dokka/analysis/kotlin/symbols/translators/DefaultSymbolToDocumentableTranslator.kt @@ -8,6 +8,7 @@ package org.jetbrains.dokka.analysis.kotlin.symbols.translators import org.jetbrains.dokka.analysis.kotlin.symbols.plugin.* import com.intellij.psi.util.PsiLiteralUtil import org.jetbrains.dokka.DokkaConfiguration +import org.jetbrains.dokka.Platform import org.jetbrains.dokka.analysis.java.JavaAnalysisPlugin import org.jetbrains.dokka.analysis.java.parsers.JavadocParser import org.jetbrains.dokka.analysis.kotlin.symbols.kdoc.getGeneratedKDocDocumentationFrom @@ -65,7 +66,7 @@ internal class DefaultSymbolToDocumentableTranslator(context: DokkaContext) : As moduleName = context.configuration.moduleName, analysisContext = analysisContext, logger = context.logger, - javadocParser = javadocParser + javadocParser = if(sourceSet.analysisPlatform == Platform.jvm) javadocParser else null ).visitModule() } } @@ -79,6 +80,8 @@ internal fun T.wrapWithVariance(variance: org.jetbrains.kotlin.types /** * Maps [KtSymbol] to Documentable model [Documentable] + * + * @param javadocParser can be null for non JVM platform */ internal class DokkaSymbolVisitor( private val sourceSet: DokkaConfiguration.DokkaSourceSet, -- cgit