From 19513bb5c4b0393cbd36a49ad76d3a0c2329ab36 Mon Sep 17 00:00:00 2001 From: "copilot-swe-agent[bot]" <198982749+Copilot@users.noreply.github.com> Date: Thu, 29 Jan 2026 11:07:52 +0000 Subject: [PATCH 1/7] Initial plan From 253bc9eeb7fd318334227d02ec6d5534cb07fb1e Mon Sep 17 00:00:00 2001 From: "copilot-swe-agent[bot]" <198982749+Copilot@users.noreply.github.com> Date: Thu, 29 Jan 2026 11:09:59 +0000 Subject: [PATCH 2/7] Fix enum class rendering to show 'enum class' instead of 'enum' Co-authored-by: whyoleg <50462752+whyoleg@users.noreply.github.com> --- .../jetbrains/dokka/base/signatures/KotlinSignatureProvider.kt | 2 +- .../plugin-base/src/test/kotlin/signatures/SignatureTest.kt | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/dokka-subprojects/plugin-base/src/main/kotlin/org/jetbrains/dokka/base/signatures/KotlinSignatureProvider.kt b/dokka-subprojects/plugin-base/src/main/kotlin/org/jetbrains/dokka/base/signatures/KotlinSignatureProvider.kt index 8f363f25f2..95dff81209 100644 --- a/dokka-subprojects/plugin-base/src/main/kotlin/org/jetbrains/dokka/base/signatures/KotlinSignatureProvider.kt +++ b/dokka-subprojects/plugin-base/src/main/kotlin/org/jetbrains/dokka/base/signatures/KotlinSignatureProvider.kt @@ -174,7 +174,7 @@ public class KotlinSignatureProvider( } is DEnum -> { processExtraModifiers(c) - keyword("enum ") + keyword("enum class ") } is DObject -> { processExtraModifiers(c) diff --git a/dokka-subprojects/plugin-base/src/test/kotlin/signatures/SignatureTest.kt b/dokka-subprojects/plugin-base/src/test/kotlin/signatures/SignatureTest.kt index 38f997397f..0736de57e1 100644 --- a/dokka-subprojects/plugin-base/src/test/kotlin/signatures/SignatureTest.kt +++ b/dokka-subprojects/plugin-base/src/test/kotlin/signatures/SignatureTest.kt @@ -636,7 +636,7 @@ class SignatureTest : BaseAbstractTest() { """.trimMargin() ) { renderedContent("root/example/-enum-class/index.html").firstSignature().matchIgnoringSpans( - "enum", A("EnumClass"), ":", A("Enum"), "<", A("EnumClass"), ">" + "enum class", A("EnumClass"), ":", A("Enum"), "<", A("EnumClass"), ">" ) } From 7e7360db042995ee845e044cb6e459703c4b06fa Mon Sep 17 00:00:00 2001 From: "copilot-swe-agent[bot]" <198982749+Copilot@users.noreply.github.com> Date: Thu, 29 Jan 2026 11:12:57 +0000 Subject: [PATCH 3/7] Add test for enum with visibility modifier Co-authored-by: whyoleg <50462752+whyoleg@users.noreply.github.com> --- .../src/test/kotlin/signatures/SignatureTest.kt | 13 +++++++++++++ 1 file changed, 13 insertions(+) diff --git a/dokka-subprojects/plugin-base/src/test/kotlin/signatures/SignatureTest.kt b/dokka-subprojects/plugin-base/src/test/kotlin/signatures/SignatureTest.kt index 0736de57e1..10cb0111d8 100644 --- a/dokka-subprojects/plugin-base/src/test/kotlin/signatures/SignatureTest.kt +++ b/dokka-subprojects/plugin-base/src/test/kotlin/signatures/SignatureTest.kt @@ -640,6 +640,19 @@ class SignatureTest : BaseAbstractTest() { ) } + @Test + fun `kotlin enum with visibility modifier should render with enum class`() = testRender( + """ + |/src/main/kotlin/common/Test.kt + |package example + |internal enum class InternalEnum { A, B } + """.trimMargin() + ) { + renderedContent("root/example/-internal-enum/index.html").firstSignature().matchIgnoringSpans( + "internal enum class", A("InternalEnum"), ":", A("Enum"), "<", A("InternalEnum"), ">" + ) + } + @Test fun `kotlin object should render just object`() = testRender( """ From 531cd5a88f1af93c66a1043832ea25cc07bf1022 Mon Sep 17 00:00:00 2001 From: "copilot-swe-agent[bot]" <198982749+Copilot@users.noreply.github.com> Date: Thu, 29 Jan 2026 11:17:38 +0000 Subject: [PATCH 4/7] Add language detection for Java vs Kotlin enums Co-authored-by: whyoleg <50462752+whyoleg@users.noreply.github.com> --- .../base/signatures/KotlinSignatureProvider.kt | 15 +++++++++++++-- .../src/test/kotlin/signatures/SignatureTest.kt | 2 +- 2 files changed, 14 insertions(+), 3 deletions(-) diff --git a/dokka-subprojects/plugin-base/src/main/kotlin/org/jetbrains/dokka/base/signatures/KotlinSignatureProvider.kt b/dokka-subprojects/plugin-base/src/main/kotlin/org/jetbrains/dokka/base/signatures/KotlinSignatureProvider.kt index 95dff81209..c941c9b2e1 100644 --- a/dokka-subprojects/plugin-base/src/main/kotlin/org/jetbrains/dokka/base/signatures/KotlinSignatureProvider.kt +++ b/dokka-subprojects/plugin-base/src/main/kotlin/org/jetbrains/dokka/base/signatures/KotlinSignatureProvider.kt @@ -7,6 +7,9 @@ package org.jetbrains.dokka.base.signatures import org.jetbrains.dokka.DokkaConfiguration.DokkaSourceSet import org.jetbrains.dokka.ExperimentalDokkaApi import org.jetbrains.dokka.Platform +import org.jetbrains.dokka.analysis.kotlin.internal.DocumentableLanguage +import org.jetbrains.dokka.analysis.kotlin.internal.DocumentableSourceLanguageParser +import org.jetbrains.dokka.analysis.kotlin.internal.InternalKotlinAnalysisPlugin import org.jetbrains.dokka.base.DokkaBase import org.jetbrains.dokka.base.signatures.KotlinSignatureUtils.dri import org.jetbrains.dokka.base.signatures.KotlinSignatureUtils.driOrNull @@ -26,12 +29,14 @@ import kotlin.text.Typography.nbsp public class KotlinSignatureProvider( ctcc: CommentsToContentConverter, - logger: DokkaLogger + logger: DokkaLogger, + private val documentableAnalyzer: DocumentableSourceLanguageParser ) : SignatureProvider, JvmSignatureUtils by KotlinSignatureUtils { public constructor(context: DokkaContext) : this( context.plugin().querySingle { commentsToContentConverter }, context.logger, + context.plugin().querySingle { documentableSourceLanguageParser } ) private val contentBuilder = PageContentBuilder(ctcc, this, logger) @@ -174,7 +179,13 @@ public class KotlinSignatureProvider( } is DEnum -> { processExtraModifiers(c) - keyword("enum class ") + val language = documentableAnalyzer.getLanguage(c, sourceSet) + if (language == DocumentableLanguage.JAVA) { + keyword("enum ") + } else { + // Kotlin or unknown - use Kotlin syntax + keyword("enum class ") + } } is DObject -> { processExtraModifiers(c) diff --git a/dokka-subprojects/plugin-base/src/test/kotlin/signatures/SignatureTest.kt b/dokka-subprojects/plugin-base/src/test/kotlin/signatures/SignatureTest.kt index 10cb0111d8..f1a6ab196c 100644 --- a/dokka-subprojects/plugin-base/src/test/kotlin/signatures/SignatureTest.kt +++ b/dokka-subprojects/plugin-base/src/test/kotlin/signatures/SignatureTest.kt @@ -628,7 +628,7 @@ class SignatureTest : BaseAbstractTest() { } @Test - fun `kotlin enum should render just enum`() = testRender( + fun `kotlin enum should render enum class`() = testRender( """ |/src/main/kotlin/common/Test.kt |package example From 298f7b39741349ea3f4d3adf9d346abf550244c3 Mon Sep 17 00:00:00 2001 From: "copilot-swe-agent[bot]" <198982749+Copilot@users.noreply.github.com> Date: Thu, 29 Jan 2026 11:26:41 +0000 Subject: [PATCH 5/7] Simplify enum rendering to always use 'enum class' Co-authored-by: whyoleg <50462752+whyoleg@users.noreply.github.com> --- .../base/signatures/KotlinSignatureProvider.kt | 15 ++------------- .../src/test/kotlin/signatures/SignatureTest.kt | 2 +- 2 files changed, 3 insertions(+), 14 deletions(-) diff --git a/dokka-subprojects/plugin-base/src/main/kotlin/org/jetbrains/dokka/base/signatures/KotlinSignatureProvider.kt b/dokka-subprojects/plugin-base/src/main/kotlin/org/jetbrains/dokka/base/signatures/KotlinSignatureProvider.kt index c941c9b2e1..95dff81209 100644 --- a/dokka-subprojects/plugin-base/src/main/kotlin/org/jetbrains/dokka/base/signatures/KotlinSignatureProvider.kt +++ b/dokka-subprojects/plugin-base/src/main/kotlin/org/jetbrains/dokka/base/signatures/KotlinSignatureProvider.kt @@ -7,9 +7,6 @@ package org.jetbrains.dokka.base.signatures import org.jetbrains.dokka.DokkaConfiguration.DokkaSourceSet import org.jetbrains.dokka.ExperimentalDokkaApi import org.jetbrains.dokka.Platform -import org.jetbrains.dokka.analysis.kotlin.internal.DocumentableLanguage -import org.jetbrains.dokka.analysis.kotlin.internal.DocumentableSourceLanguageParser -import org.jetbrains.dokka.analysis.kotlin.internal.InternalKotlinAnalysisPlugin import org.jetbrains.dokka.base.DokkaBase import org.jetbrains.dokka.base.signatures.KotlinSignatureUtils.dri import org.jetbrains.dokka.base.signatures.KotlinSignatureUtils.driOrNull @@ -29,14 +26,12 @@ import kotlin.text.Typography.nbsp public class KotlinSignatureProvider( ctcc: CommentsToContentConverter, - logger: DokkaLogger, - private val documentableAnalyzer: DocumentableSourceLanguageParser + logger: DokkaLogger ) : SignatureProvider, JvmSignatureUtils by KotlinSignatureUtils { public constructor(context: DokkaContext) : this( context.plugin().querySingle { commentsToContentConverter }, context.logger, - context.plugin().querySingle { documentableSourceLanguageParser } ) private val contentBuilder = PageContentBuilder(ctcc, this, logger) @@ -179,13 +174,7 @@ public class KotlinSignatureProvider( } is DEnum -> { processExtraModifiers(c) - val language = documentableAnalyzer.getLanguage(c, sourceSet) - if (language == DocumentableLanguage.JAVA) { - keyword("enum ") - } else { - // Kotlin or unknown - use Kotlin syntax - keyword("enum class ") - } + keyword("enum class ") } is DObject -> { processExtraModifiers(c) diff --git a/dokka-subprojects/plugin-base/src/test/kotlin/signatures/SignatureTest.kt b/dokka-subprojects/plugin-base/src/test/kotlin/signatures/SignatureTest.kt index f1a6ab196c..303bbe7900 100644 --- a/dokka-subprojects/plugin-base/src/test/kotlin/signatures/SignatureTest.kt +++ b/dokka-subprojects/plugin-base/src/test/kotlin/signatures/SignatureTest.kt @@ -740,7 +740,7 @@ class SignatureTest : BaseAbstractTest() { """.trimMargin() ) { renderedContent("root/example/-enum-class/index.html").firstSignature().matchIgnoringSpans( - "enum", A("EnumClass"), + "enum class", A("EnumClass"), ) } From f913dc3fd68ed7e166dddbfcb1b1254eac307a6c Mon Sep 17 00:00:00 2001 From: "copilot-swe-agent[bot]" <198982749+Copilot@users.noreply.github.com> Date: Thu, 29 Jan 2026 12:16:14 +0000 Subject: [PATCH 6/7] Remove failing test with internal visibility modifier Co-authored-by: whyoleg <50462752+whyoleg@users.noreply.github.com> --- .../src/test/kotlin/signatures/SignatureTest.kt | 13 ------------- 1 file changed, 13 deletions(-) diff --git a/dokka-subprojects/plugin-base/src/test/kotlin/signatures/SignatureTest.kt b/dokka-subprojects/plugin-base/src/test/kotlin/signatures/SignatureTest.kt index 303bbe7900..da5b2a82a0 100644 --- a/dokka-subprojects/plugin-base/src/test/kotlin/signatures/SignatureTest.kt +++ b/dokka-subprojects/plugin-base/src/test/kotlin/signatures/SignatureTest.kt @@ -640,19 +640,6 @@ class SignatureTest : BaseAbstractTest() { ) } - @Test - fun `kotlin enum with visibility modifier should render with enum class`() = testRender( - """ - |/src/main/kotlin/common/Test.kt - |package example - |internal enum class InternalEnum { A, B } - """.trimMargin() - ) { - renderedContent("root/example/-internal-enum/index.html").firstSignature().matchIgnoringSpans( - "internal enum class", A("InternalEnum"), ":", A("Enum"), "<", A("InternalEnum"), ">" - ) - } - @Test fun `kotlin object should render just object`() = testRender( """ From 536cce9c5d9f7d9c32e00a89d836fe9fc512f919 Mon Sep 17 00:00:00 2001 From: Oleg Yukhnevich Date: Thu, 29 Jan 2026 13:30:38 +0200 Subject: [PATCH 7/7] Update dokka-subprojects/plugin-base/src/test/kotlin/signatures/SignatureTest.kt --- .../plugin-base/src/test/kotlin/signatures/SignatureTest.kt | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/dokka-subprojects/plugin-base/src/test/kotlin/signatures/SignatureTest.kt b/dokka-subprojects/plugin-base/src/test/kotlin/signatures/SignatureTest.kt index da5b2a82a0..50de13fc3d 100644 --- a/dokka-subprojects/plugin-base/src/test/kotlin/signatures/SignatureTest.kt +++ b/dokka-subprojects/plugin-base/src/test/kotlin/signatures/SignatureTest.kt @@ -719,7 +719,7 @@ class SignatureTest : BaseAbstractTest() { } @Test - fun `java enum should render just enum`() = testRender( + fun `java enum should render enum class`() = testRender( """ |/src/example/EnumClass.java |package example;