aboutsummaryrefslogtreecommitdiff
path: root/core/src/main/kotlin/Kotlin/DocumentationBuilder.kt
diff options
context:
space:
mode:
authorSimon Ogorodnik <Simon.Ogorodnik@jetbrains.com>2018-10-03 04:53:49 +0300
committerSimon Ogorodnik <Simon.Ogorodnik@jetbrains.com>2018-10-03 04:53:49 +0300
commitc795ce373c20b9279d7de9e23202e0eab0eb1409 (patch)
tree05ab2519c56637eb3a8c9c1290be442b3f08bac8 /core/src/main/kotlin/Kotlin/DocumentationBuilder.kt
parent3824b7d2a93711e98dd28e4a6371449d17f9483a (diff)
downloaddokka-c795ce373c20b9279d7de9e23202e0eab0eb1409.tar.gz
dokka-c795ce373c20b9279d7de9e23202e0eab0eb1409.tar.bz2
dokka-c795ce373c20b9279d7de9e23202e0eab0eb1409.zip
Show inline modifier only if fun has lambda, otherwise it is impl detail
Diffstat (limited to 'core/src/main/kotlin/Kotlin/DocumentationBuilder.kt')
-rw-r--r--core/src/main/kotlin/Kotlin/DocumentationBuilder.kt11
1 files changed, 10 insertions, 1 deletions
diff --git a/core/src/main/kotlin/Kotlin/DocumentationBuilder.kt b/core/src/main/kotlin/Kotlin/DocumentationBuilder.kt
index 580ffb05..d300cf4d 100644
--- a/core/src/main/kotlin/Kotlin/DocumentationBuilder.kt
+++ b/core/src/main/kotlin/Kotlin/DocumentationBuilder.kt
@@ -7,6 +7,7 @@ import com.intellij.psi.PsiJavaFile
import org.jetbrains.dokka.DokkaConfiguration.PassConfiguration
import org.jetbrains.dokka.Kotlin.DescriptorDocumentationParser
import org.jetbrains.kotlin.builtins.KotlinBuiltIns
+import org.jetbrains.kotlin.coroutines.hasFunctionOrSuspendFunctionType
import org.jetbrains.kotlin.descriptors.*
import org.jetbrains.kotlin.descriptors.annotations.Annotated
import org.jetbrains.kotlin.descriptors.annotations.AnnotationDescriptor
@@ -81,7 +82,7 @@ class DocumentationBuilder
val knownModifiers = setOf(
KtTokens.PUBLIC_KEYWORD, KtTokens.PROTECTED_KEYWORD, KtTokens.INTERNAL_KEYWORD, KtTokens.PRIVATE_KEYWORD,
KtTokens.OPEN_KEYWORD, KtTokens.FINAL_KEYWORD, KtTokens.ABSTRACT_KEYWORD, KtTokens.SEALED_KEYWORD,
- KtTokens.OVERRIDE_KEYWORD)
+ KtTokens.OVERRIDE_KEYWORD, KtTokens.INLINE_KEYWORD)
fun link(node: DocumentationNode, descriptor: DeclarationDescriptor, kind: RefKind) {
refGraph.link(node, descriptor.signature(), kind)
@@ -139,6 +140,13 @@ class DocumentationBuilder
appendTextNode(modifier, NodeKind.Modifier)
}
+ fun DocumentationNode.appendInline(descriptor: DeclarationDescriptor, psi: KtModifierListOwner) {
+ if (!psi.hasModifier(KtTokens.INLINE_KEYWORD)) return
+ if (descriptor is FunctionDescriptor
+ && descriptor.valueParameters.none { it.hasFunctionOrSuspendFunctionType }) return
+ appendTextNode(KtTokens.INLINE_KEYWORD.value, NodeKind.Modifier)
+ }
+
fun DocumentationNode.appendVisibility(descriptor: DeclarationDescriptorWithVisibility) {
val modifier = descriptor.visibility.normalize().displayName
appendTextNode(modifier, NodeKind.Modifier)
@@ -283,6 +291,7 @@ class DocumentationBuilder
fun DocumentationNode.appendModifiers(descriptor: DeclarationDescriptor) {
val psi = (descriptor as DeclarationDescriptorWithSource).source.getPsi() as? KtModifierListOwner ?: return
+ appendInline(descriptor, psi)
KtTokens.MODIFIER_KEYWORDS_ARRAY.filter { it !in knownModifiers }.forEach {
if (psi.hasModifier(it)) {
appendTextNode(it.value, NodeKind.Modifier)