diff options
author | sebastian.sellmair <sebastian.sellmair@jetbrains.com> | 2020-06-05 09:07:20 +0200 |
---|---|---|
committer | Paweł Marks <Kordyjan@users.noreply.github.com> | 2020-06-10 10:52:43 +0200 |
commit | e9fd8b7bc00491b50e4822acc82e5615ab0bde3b (patch) | |
tree | 27648e766764df986a154e6c3353d634d219c0bc /core/src/main/kotlin/links | |
parent | 77c8777b7f66bddd374d68decd507547d356d602 (diff) | |
download | dokka-e9fd8b7bc00491b50e4822acc82e5615ab0bde3b.tar.gz dokka-e9fd8b7bc00491b50e4822acc82e5615ab0bde3b.tar.bz2 dokka-e9fd8b7bc00491b50e4822acc82e5615ab0bde3b.zip |
Implement `reportUndocumented` option to report undocumented code
Diffstat (limited to 'core/src/main/kotlin/links')
-rw-r--r-- | core/src/main/kotlin/links/DRI.kt | 35 |
1 files changed, 23 insertions, 12 deletions
diff --git a/core/src/main/kotlin/links/DRI.kt b/core/src/main/kotlin/links/DRI.kt index 1c823d92..9cc51fb7 100644 --- a/core/src/main/kotlin/links/DRI.kt +++ b/core/src/main/kotlin/links/DRI.kt @@ -38,12 +38,13 @@ data class DRI( } fun from(psi: PsiElement) = psi.parentsWithSelf.run { - val callable = firstIsInstanceOrNull<PsiMethod>() + val psiMethod = firstIsInstanceOrNull<PsiMethod>() + val psiField = firstIsInstanceOrNull<PsiField>() val classes = filterIsInstance<PsiClass>().toList() DRI( classes.lastOrNull()?.qualifiedName?.substringBeforeLast('.', ""), classes.toList().takeIf { it.isNotEmpty() }?.asReversed()?.mapNotNull { it.name }?.joinToString("."), - callable?.let { Callable.from(it) }, + psiMethod?.let { Callable.from(it) } ?: psiField?.let { Callable.from(it) } , DriTarget.from(psi) ) } @@ -85,12 +86,21 @@ data class Callable( valueParameters.mapNotNull { TypeReference.from(it) } ) } + fun from(psi: PsiMethod) = with(psi) { Callable( name, null, parameterList.parameters.map { param -> JavaClassReference(param.type.canonicalText) }) } + + fun from(psi: PsiField): Callable { + return Callable( + name = psi.name, + receiver = null, + params = emptyList() + ) + } } } @@ -169,11 +179,12 @@ sealed class DriTarget { companion object { fun from(descriptor: DeclarationDescriptor): DriTarget = descriptor.parentsWithSelf.run { - return when(descriptor){ + return when (descriptor) { is TypeParameterDescriptor -> PointingToGenericParameters(descriptor.index) else -> { val callable = firstIsInstanceOrNull<CallableDescriptor>() - val params = callable?.let { listOfNotNull(it.extensionReceiverParameter) + it.valueParameters }.orEmpty() + val params = + callable?.let { listOfNotNull(it.extensionReceiverParameter) + it.valueParameters }.orEmpty() val parameterDescriptor = firstIsInstanceOrNull<ParameterDescriptor>() parameterDescriptor?.let { PointingToCallableParameters(params.indexOf(it)) } @@ -183,7 +194,7 @@ sealed class DriTarget { } fun from(psi: PsiElement): DriTarget = psi.parentsWithSelf.run { - return when(psi) { + return when (psi) { is PsiTypeParameter -> PointingToGenericParameters(psi.index) else -> firstIsInstanceOrNull<PsiParameter>()?.let { val callable = firstIsInstanceOrNull<PsiMethod>() @@ -199,15 +210,15 @@ data class PointingToGenericParameters(val parameterIndex: Int) : DriTarget() { override fun toString(): String = "PointingToGenericParameters($parameterIndex)" } -object PointingToDeclaration: DriTarget() +object PointingToDeclaration : DriTarget() -data class PointingToCallableParameters(val parameterIndex: Int): DriTarget(){ +data class PointingToCallableParameters(val parameterIndex: Int) : DriTarget() { override fun toString(): String = "PointingToCallableParameters($parameterIndex)" } -fun DriTarget.nextTarget(): DriTarget = when(this){ - is PointingToGenericParameters -> PointingToGenericParameters(this.parameterIndex+1) - is PointingToCallableParameters -> PointingToCallableParameters(this.parameterIndex+1) - else -> this - } +fun DriTarget.nextTarget(): DriTarget = when (this) { + is PointingToGenericParameters -> PointingToGenericParameters(this.parameterIndex + 1) + is PointingToCallableParameters -> PointingToCallableParameters(this.parameterIndex + 1) + else -> this +} |