如何继承 KDoc 文档?

Posted

技术标签:

【中文标题】如何继承 KDoc 文档?【英文标题】:How do I inherit KDoc documentation? 【发布时间】:2016-06-17 00:54:44 【问题描述】:

在 Java 的 Javadoc 中,有一种方法可以使用 @inheritDoc tag 在子类中继承方法的文档。

有没有办法在 Kotlin 的 KDoc 中做同样的事情?

基本上,我想做的是:

abstract class Base 
    /**
     * Some KDoc documentation here.
     */
    abstract fun foo()


class Derived: Base() 
    /**
     * Here is all the documentation from Base#foo's KDoc inherited.
     *
     * And here goes something more in addition.
     */
    override fun foo()  /* ... */ 

【问题讨论】:

@inheritDoc 不起作用吗?你试过了吗? @CaseyB,是的,我做到了,IntelliJ 和 dokka 都不理解,他们只是将其显示为文本。 我找不到任何记录我的发现的内容,但据我所知,如果在覆盖上未指定任何文档,则 Kotlin Doc 在覆盖函数时会继承文档。现在我想知道的是如何“扩展”/“包含”基本文档...... @mfulton26,好的,现在我看到 dokka 默认插入父文档。如果您能找到自定义它们的方法,那就太好了,但对我来说,仅继承它们就足够了。 @hotkey 我确实查看了github.com/Kotlin/dokka,但没有发现任何有用的东西。您可以创建 GitHub 问题或 Kotlin YouTrack 问题来查询此类问题。 【参考方案1】:

如果继承的成员没有自己的文档,Dokka 总是将文档从基础成员复制到继承的成员。无法将基本成员文档与继承成员中提供的附加文本结合起来。

(Dokka 不支持 @inheritdoc Javadoc 标签,因为这不可避免地会导致只包含 /** @inheritdoc */ 的 cmets 激增,我觉得这非常无用和多余。)

【讨论】:

然而,由于某种原因,当我在没有文档的继承函数上点击 Ctrl + Q 时,它没有显示任何内容,但是基本函数确实指定了它,当我 Ctrl + B 到它时在基本函数上点击Ctrl + Q,将显示文档。也许这是一些 ide-plugin 错误。 @yole 当我在 java 类/接口的覆盖方法上点击快速文档快捷方式时,我看不到任何文档,而基类/接口有一些文档。这真的很不方便。是否有未解决的问题? @LouisCAD 好像有。见youtrack.jetbrains.com/issue/KT-25035

以上是关于如何继承 KDoc 文档?的主要内容,如果未能解决你的问题,请参考以下文章

如何在 Kotlin 文档 Dokka/Kdoc 中转义符号?

Kotlin KDoc:文档?

KDoc:插入代码片段

将 KDoc 文档从一种方法复制到另一种方法

如何让 SVG 图像从 HTML 文档继承颜色?

设置标题锚点时如何防止标题标签继承超链接样式