KDoc / Dokka:忽略子类中的继承方法

Posted

技术标签:

【中文标题】KDoc / Dokka:忽略子类中的继承方法【英文标题】:KDoc / Dokka: Ignore inherited methods in subclass 【发布时间】:2020-12-13 21:54:45 【问题描述】:

我正在使用 KDoc/Dokka 为 android 库生成文档。

我有一个自定义视图,它扩展了LinearLayout

问题在于LinearLayout 包含数百个公共方法。 Dokka 为所有这些方法生成空文档,即使我没有在自己的代码中使用或覆盖它们。

这完全掩盖了我自己的任何方法,并使文档几乎毫无用处。

如何防止 dokka 为继承的方法生成文档?

【问题讨论】:

【参考方案1】:

目前不支持此功能,可能我们会添加一些标志来打开/关闭它。

你可以关注这个问题:https://github.com/Kotlin/dokka/issues/1501

【讨论】:

【参考方案2】:

根据@andrzej-ratajczak 的回答,可以使用以下内容

pluginsMapConfiguration.set(
  ["org.jetbrains.dokka.base.DokkaBase": """ "separateInheritedMembers": true"""]
)

这里是我自己的模块示例

dokkahtml 
    moduleName = "$project.name"

    dokkaSourceSets 
        configureEach 
            // Suppress a package
            perPackageOption 
                // will match all packages and sub-packages
                matchingRegex.set(".*\\.internal.*")
                suppress.set(true)
            

            // separate inherited members to avoid polluting our public API
            // https://github.com/Kotlin/dokka/issues/1501
            pluginsMapConfiguration.set(
                    ["org.jetbrains.dokka.base.DokkaBase": """ "separateInheritedMembers": true"""]
            )

        
    

【讨论】:

以上是关于KDoc / Dokka:忽略子类中的继承方法的主要内容,如果未能解决你的问题,请参考以下文章

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

使用Dokka为Kotlin代码生成KDoc

jackson使用了@JsonIgnoreType的类被继承了之后子类会被忽略,怎么让子类不被忽略?

继承,在 C++ 中创建子类时可以删除/忽略父类的属性吗?

类中的继承

如何装饰子类中的继承方法?