diff options
author | Andrey Tyrin <andrei.tyrin@jetbrains.com> | 2022-10-31 13:42:32 +0100 |
---|---|---|
committer | GitHub <noreply@github.com> | 2022-10-31 13:42:32 +0100 |
commit | c0aece910e9b012a45ef577136a3f986c52df23e (patch) | |
tree | 37ac99a37569283185b4a6858cc3be80cc44ad7b /plugins/base/src/main | |
parent | d1b24984fdf6d2f383697b557086c62c94e4eee0 (diff) | |
download | dokka-c0aece910e9b012a45ef577136a3f986c52df23e.tar.gz dokka-c0aece910e9b012a45ef577136a3f986c52df23e.tar.bz2 dokka-c0aece910e9b012a45ef577136a3f986c52df23e.zip |
Add constructor keyword (#2691)
Diffstat (limited to 'plugins/base/src/main')
-rw-r--r-- | plugins/base/src/main/kotlin/signatures/KotlinSignatureProvider.kt | 38 | ||||
-rw-r--r-- | plugins/base/src/main/kotlin/translators/documentables/DefaultPageCreator.kt | 2 |
2 files changed, 22 insertions, 18 deletions
diff --git a/plugins/base/src/main/kotlin/signatures/KotlinSignatureProvider.kt b/plugins/base/src/main/kotlin/signatures/KotlinSignatureProvider.kt index 1da8e3d1..22f67445 100644 --- a/plugins/base/src/main/kotlin/signatures/KotlinSignatureProvider.kt +++ b/plugins/base/src/main/kotlin/signatures/KotlinSignatureProvider.kt @@ -309,24 +309,28 @@ class KotlinSignatureProvider(ctcc: CommentsToContentConverter, logger: DokkaLog annotationsBlock(f) f.visibility[sourceSet]?.takeIf { it !in ignoredVisibilities }?.name?.let { keyword("$it ") } if (f.isExpectActual) keyword(if (sourceSet == f.expectPresentInSet) "expect " else "actual ") - f.modifier[sourceSet]?.takeIf { it !in ignoredModifiers }?.let { - if (it is JavaModifier.Empty) KotlinModifier.Open else it - }?.name?.let { keyword("$it ") } - f.modifiers()[sourceSet]?.toSignatureString()?.let { keyword(it) } - keyword("fun ") - val usedGenerics = if (f.isConstructor) f.generics.filter { f uses it } else f.generics - list(usedGenerics, prefix = "<", suffix = "> ", - separatorStyles = mainStyles + TokenStyle.Punctuation, - surroundingCharactersStyle = mainStyles + TokenStyle.Operator) { - annotationsInline(it) - +buildSignature(it) - } - f.receiver?.also { - signatureForProjection(it.type) - punctuation(".") + if (f.isConstructor) { + keyword("constructor") + } else { + f.modifier[sourceSet]?.takeIf { it !in ignoredModifiers }?.let { + if (it is JavaModifier.Empty) KotlinModifier.Open else it + }?.name?.let { keyword("$it ") } + f.modifiers()[sourceSet]?.toSignatureString()?.let { keyword(it) } + keyword("fun ") + list( + f.generics, prefix = "<", suffix = "> ", + separatorStyles = mainStyles + TokenStyle.Punctuation, + surroundingCharactersStyle = mainStyles + TokenStyle.Operator + ) { + annotationsInline(it) + +buildSignature(it) + } + f.receiver?.also { + signatureForProjection(it.type) + punctuation(".") + } + link(f.name, f.dri, styles = mainStyles + TokenStyle.Function + f.stylesIfDeprecated(sourceSet)) } - link(f.name, f.dri, styles = mainStyles + TokenStyle.Function + f.stylesIfDeprecated(sourceSet)) - // for a function, opening and closing parentheses must be present // anyway, even if it has no parameters, resulting in `fun test(): R` punctuation("(") diff --git a/plugins/base/src/main/kotlin/translators/documentables/DefaultPageCreator.kt b/plugins/base/src/main/kotlin/translators/documentables/DefaultPageCreator.kt index 12fbb33c..ff60170c 100644 --- a/plugins/base/src/main/kotlin/translators/documentables/DefaultPageCreator.kt +++ b/plugins/base/src/main/kotlin/translators/documentables/DefaultPageCreator.kt @@ -377,7 +377,7 @@ open class DefaultPageCreator( "Constructors", 2, ContentKind.Constructors, - constructorsToDocumented.groupBy { it.parameters.map { it.dri } } + constructorsToDocumented.groupBy { it.name } .map { (_, v) -> v.first().name to v }, @Suppress("UNCHECKED_CAST") (csWithConstructor as List<Documentable>).sourceSets, |