2016-03-03 8 views
9

In Java Javadoc gibt es eine Möglichkeit, die Dokumentation einer Methode in einer Unterklasse mit {@inheritDoc} tag zu erben.Wie erben ich die KDoc-Dokumentation?

Gibt es eine Möglichkeit, das gleiche in Kotlins KDoc zu tun?

Im Grunde, was ich möchte ist folgendes zu tun:

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() { /* ... */ } 
} 
+0

Does '{}' @inheritDoc nicht? Hast Du es versucht? – CaseyB

+0

@CaseyB, ja, habe ich, und weder IntelliJ noch Dokka versteht es, sie zeigen es nur als Text. – hotkey

+2

Ich kann nichts finden, was meinen Befund dokumentiert, aber von dem, was ich sagen kann, erbt Kotlin Doc die Dokumentation beim Überschreiben einer Funktion, wenn keine Dokumentation für die Überschreibung angegeben ist. Nun, was ich frage mich ist, wie man die Basisdokumentation "erweitern"/"einschließen" ... – mfulton26

Antwort

10

Dokka immer kopiert die Dokumentation von einem Basiselement zu einer vererbten ein, wenn das geerbte Member nicht seine eigene Dokumentation hat. Es gibt keine Möglichkeit, die Basismitgliedsdokumentation mit zusätzlichem Text zu kombinieren, der im geerbten Mitglied bereitgestellt wird.

(Dokka unterstützt nicht den @inheritdoc Javadoc-Tag, weil dies unweigerlich zur Verbreitung von Kommentaren führt, der nur aus /** @inheritdoc */ was ich super nutzlos und überflüssig finden.)

+4

Aus irgendeinem Grund, wenn ich 'Strg + Q' auf eine geerbte Funktion ohne Dokumentation drücke, zeigt es keine, aber die Basisfunktion hat es angegeben, und wenn ich' Strg + B' dazu drücke und 'Strg + Q' auf einer Basisfunktion, Dokumentation wird angezeigt. Vielleicht ist das ein ide-plugin Bug. – dimsuz

+1

@yole Wenn ich die schnelle Dokumentation Verknüpfung auf einer überschriebenen Methode von einer Java-Klasse/Schnittstelle, sehe ich keine Dokumentation, während die Basisklasse/Schnittstelle einige Dokumentation hat. Das ist wirklich unbequem. Gibt es da ein offenes Thema? –

Verwandte Themen