From 2aabdea6113da6cb50edf18afb146b7120071e68 Mon Sep 17 00:00:00 2001 From: Ignat Beresnev Date: Wed, 27 Apr 2022 16:13:13 +0300 Subject: Fix empty parentheses for no-arg enum entry (#2470) * Fix empty parentheses for no-arg enum entry Fixes #2355 * Move parentheses punctuation inside `list` call * Revert formatting * Correct expected ordering of enum entries in tests --- .../kotlin/signatures/KotlinSignatureProvider.kt | 4 +-- plugins/base/src/test/kotlin/enums/EnumsTest.kt | 1 - .../src/test/kotlin/signatures/SignatureTest.kt | 37 ++++++++++++++++++++++ 3 files changed, 39 insertions(+), 3 deletions(-) (limited to 'plugins/base/src') diff --git a/plugins/base/src/main/kotlin/signatures/KotlinSignatureProvider.kt b/plugins/base/src/main/kotlin/signatures/KotlinSignatureProvider.kt index 3c9daa29..612f9ace 100644 --- a/plugins/base/src/main/kotlin/signatures/KotlinSignatureProvider.kt +++ b/plugins/base/src/main/kotlin/signatures/KotlinSignatureProvider.kt @@ -80,13 +80,13 @@ class KotlinSignatureProvider(ctcc: CommentsToContentConverter, logger: DokkaLog link(e.name, e.dri, styles = emptySet()) e.extra[ConstructorValues]?.let { constructorValues -> constructorValues.values[it]?.let { values -> - punctuation("(") list( elements = values, + prefix = "(", + suffix = ")", separator = ", ", separatorStyles = mainStyles + TokenStyle.Punctuation, ) { highlightValue(it) } - punctuation(")") } } } diff --git a/plugins/base/src/test/kotlin/enums/EnumsTest.kt b/plugins/base/src/test/kotlin/enums/EnumsTest.kt index 778125e2..ee4de696 100644 --- a/plugins/base/src/test/kotlin/enums/EnumsTest.kt +++ b/plugins/base/src/test/kotlin/enums/EnumsTest.kt @@ -400,7 +400,6 @@ class EnumsTest : BaseAbstractTest() { group { group { link { +"E1" } - +"()" } } group { diff --git a/plugins/base/src/test/kotlin/signatures/SignatureTest.kt b/plugins/base/src/test/kotlin/signatures/SignatureTest.kt index 6f4de32b..c290846e 100644 --- a/plugins/base/src/test/kotlin/signatures/SignatureTest.kt +++ b/plugins/base/src/test/kotlin/signatures/SignatureTest.kt @@ -857,4 +857,41 @@ class SignatureTest : BaseAbstractTest() { } } } + + @Test + fun `should have no empty parentheses for no-arg enum entry`() { + val writerPlugin = TestOutputWriterPlugin() + + testInline( + """ + |/src/main/kotlin/common/EnumClass.kt + |package example + | + |enum class EnumClass(param: String = "Default") { + | EMPTY, + | WITH_ARG("arg") + |} + """.trimMargin(), + configuration, + pluginOverrides = listOf(writerPlugin) + ) { + renderingStage = { _, _ -> + val enumEntrySignatures = writerPlugin.writer.renderedContent("root/example/-enum-class/index.html") + .select("div.table[data-togglable=Entries]") + .single() + .signature() + .select("div.block") + + enumEntrySignatures[0].match( + A("EMPTY"), + ignoreSpanWithTokenStyle = true + ) + + enumEntrySignatures[1].match( + A("WITH_ARG"), "(\"arg\")", + ignoreSpanWithTokenStyle = true + ) + } + } + } } -- cgit