2016-07-26 20 views
1

Referenz Ich habe dieses Stück Dokumentation:Wie man richtig formatiert eine Klasseninstanz

/** 
* This method creates an import job for the given @arg item 
* 
* The default implementation should be suitable for most needs, 
* it'll create an instance of @class ImportProjectJob 
* 
* @return a job that imports the project 
*/ 
virtual KJob* createImportJob(ProjectFolderItem* item); 

Allerdings ist @class nicht dazu gedacht, wie diese verwendet werden, und es gibt nichts, wie @instanceof in doxygen. Wie soll ich das formatieren?

+0

'@ arg',' @ CLASS', '@ fn' und sind gleichermaßen nicht als semantische Annotationen gemeint, sondern Doxygen zu sagen, um einen speziellen Abschnitt zu beginnen. –

Antwort

2

Wenn Doxygens automatic link generation rules, wenn einige Dokumentationstext dem Namen einer Klasse entspricht, die dokumentiert wurde, und dieser Text den InterCaps-Benennungsstil verwendet, wandelt Doxygen diesen Text automatisch in einen Link zu dieser Dokumentationsseite um. Wenn Sie also nur "ImportProjectJob" verwenden, wird Doxygen diese Klasse finden (wenn sie dokumentiert wurde) und diesen Text in einen Link umwandeln.

Aber wenn Ihre Klasse/Funktion keine Verknüpfung Intercaps verwenden zu nennen, können Sie explizit auf eine dokumentierte Einheit über @ref:

* The default implementation should be suitable for most needs, 
* it'll create an instance of @ref ImportProjectJob 

FYI: @arg zum Starten eine Liste der Funktionsparameter gemeint ist Definitionen. Etwas wie:

@arg @c AlignLeft left alignment. 
@arg @c AlignCenter center alignment. 
@arg @c AlignRight right alignment 

Was Sie suchen ist @p, die zur Referenzierung Parameternamen und dergleichen Inline-Formatierung ist.

2

Verwenden Sie einfach @ref anstelle von @class und dokumentieren Sie die Klasse, in der sie deklariert ist.

Normalerweise (wie standardmäßig, d. H. Wenn AUTOLINK_SUPPORT ist YES), ist es nicht einmal notwendig, explizit darauf Bezug zu nehmen. Doxygen wird es automatisch verknüpfen, wenn es den Namen erkennt.

Übrigens ist Ihre Verwendung von @arg nicht wie erwartet. Verwenden Sie @p für Inline-Referenz und @param zum Dokumentieren von Methodenargumenten.


/** 
    * @brief This method creates an import job for the given @p item 
    * 
    * @details The default implementation should be suitable for most needs, 
    * it'll create an instance of ImportProjectJob 
    * 
    * @param item this is a folder item 
    * 
    * @return a job that imports the project 
    */ 
virtual KJob* createImportJob(ProjectFolderItem* item); 

und das ist, wo ImportProjectJob erklärt:

/** 
    * @brief short desc of the class 
    * 
    * @details A long description 
    */ 
class ImportProjectJob : public KJob 
{};