Doxygen: Numerische Enum-Werte anzeigen, ohne CSS zu ändern?
Lesezeit: 3 Minuten
nicht ich
Ich brauche eine Möglichkeit, Doxygen dazu zu bringen, den tatsächlichen Wert des Enumerationsmitglieds in der Doxygen-Ausgabe anzuzeigen. Ich habe zum Beispiel:
Es gibt keine Möglichkeit, dies direkt von Doxygen aus zu tun, an die ich denken kann. Doxygen ist kein C-Compiler. Es wird also nicht den Wert einer Aufzählung ableiten, die eine Kompilierzeitkonstante ist.
Das Nächste, was Doxygen tun kann, ist Erweitern Sie Ihre Makros selektiv da es einen C-Präprozessor hat. Wenn Sie also einer Konstante einen Wert zugewiesen haben, der durch Präprozessorerweiterung abgeleitet wurde, kann doxygen die Makros erweitern und Ihnen zeigen, was zugewiesen wird.
Aufbauend auf der Antwort von TheCodeArtist könnten Sie erwägen, ein Skript zu schreiben, das vor doxygen ausgeführt wird, Kopien Ihrer Dateien erstellt und nach diesem Muster sucht:
enum *** {
***, ///< %VAL%:
und ersetzt jedes Vorkommen von %VAL% durch den Wert, den Sie haben sollten, damit Sie nicht manuell mit den Zahlen Schritt halten müssen. Nachdem doxygen ausgeführt wurde, müssten die Originaldateien, die die %VAL%-Token enthalten, ersetzt werden. Das ist keine besonders elegante oder robuste Lösung.
Siehe meinen Kommentar mit der Frage.
– Albert
20. September 2018 um 15:51 Uhr
@albert Danke für diesen Vorschlag, danke auch für die Verlinkung der anderen Frage zu diesem Thema. Ich denke, das ist eine gute Idee für ein neues Feature. Ich habe mich in einer Situation befunden, in der ich einen Aufzählungswert mehr als ein paar Mal halb manuell berechnen musste.
– Nik
20. September 2018 um 19:34 Uhr
Der CodeKünstler
Mit doxygen können wir dokumentieren:
Der enum
Es ist Werte
A Beschreibung von jedem Wert
Das folgende Code-Snippet beschreibt ein Beispiel für alle 3 oben genannten.
/*! \enum My_Enum
* Documentation of the enum type.
*/
typedef enum My_Enum {
MY_ENUM_0, /*!< Document the value 0 */
MY_ENUM_1, /*!< Document the value 1 */
} My_Enum;
/*! \var My_Enum MY_ENUM_0
* The description of the MY_ENUM_0. Can contain its enumerated name */
/*! \var My_Enum MY_ENUM_1
* The description of the MY_ENUM_1. Can contain its enumerated name*/
Beachten Sie auch, dass die Erweiterung von Makros/Enumerationen NICHT innerhalb von Doxygen-Kommentaren erfolgt. Wenn in einem Doxygen-Kommentar welche verwendet werden, müssen sie mit erweitert werden INPUT_FILTER. Zum Beispiel:
Überprüfen Sie dies auch antworten Einzelheiten zu den verschiedenen Doxygen-Kommentarstilen:
///< <comment>
/*!< <comment> */
Dies beantwortet die Frage nicht. Der Wert von MY_ENUM_0 ist 0, wird aber im Doxygen-Dokument, das durch den Code in Ihrer Antwort generiert wird, nicht sichtbar sein.
– Etienne
9. April 2014 um 12:09 Uhr
Der Doxygen-Kommentar /*!<Document the value 0 */ wird mit angezeigt MY_ENUM_0 in der so erstellten Dokumentation Beispielantwort. Jeder solche Kommentar müsste sein value is 0, value is 1… usw. für jedes Mitglied der Aufzählung.
– TheCodeArtist
9. April 2014 um 12:20 Uhr
Da Sie selbst “0” geschrieben haben, fragt das OP, wie Doxygen die “0” erzeugen soll.
– Etienne
9. April 2014 um 12:21 Uhr
Ja, du hast recht. Beinhaltet manuellen Aufwand. Dies ist das nächste, was ich weiß, das funktioniert.
– TheCodeArtist
9. April 2014 um 12:23 Uhr
Sicher, ich wollte nicht unhöflich sein, das Problem ist, dass Enum-Werte mithilfe von Makros oder anderen Enum-Werten definiert werden können, und es dann ziemlich kompliziert werden kann, zu wissen, welchen Wert die Enum hat, und sie von Hand zu dokumentieren/aktualisieren.
– Etienne
9. April 2014 um 12:26 Uhr
14475000cookie-checkDoxygen: Numerische Enum-Werte anzeigen, ohne CSS zu ändern?yes
Kürzlich habe ich diese Frage wieder gesehen, mein Rat war, ein Problem im Doxygen Issue Tracker zu öffnen (github.com/doxygen/doxygen/issues/new)
– Albert
19. September 2018 um 17:27 Uhr
siehe stackoverflow.com/questions/52387561/…
– Albert
19. September 2018 um 17:54 Uhr