Ich möchte doxygen verwenden, um Codedokumentation (von Funktionen) in zu generieren .c
oder .cc
Dateien mit Emacs. ich fand doxymacs
aber es scheint nicht mehr gepflegt zu werden (neueste Version 2007) und ich habe auch keine Möglichkeit gefunden, die Dokumentation einer Funktion zu aktualisieren, wenn ich den Namen eines der Parameter der Funktion ändere (“leider”, ich bin an das Große gewöhnt Roxygen
zum .R
Skripte, die alle netten Dinge tun können, sogar eine Dokumentation direkt vor einer Funktion einfügen, wenn der Punkt irgendwo in der Funktion liegt).
Ich habe das gefunden, aber es scheint nicht sehr nützlich zu sein. Es gibt jedoch ein Beispiel hier wie benutzt man yasnippets
. Hat jemand ein Yasnippet für Doxygen-Header geschrieben? Dennoch würde es die Parameter nicht aktualisieren, wenn sich der Funktionsname ändert. Gibt es einen “besseren” Weg, mit Doxygen in Emacs zu arbeiten? Ich würde annehmen, dass es ziemlich viele C/C++-Programmierer gibt, die mit Emacs arbeiten, und ich würde vermuten, dass es ein gutes Tool/Ansatz für die Code-Dokumentation geben sollte.
Aktualisieren
fand ich auch Dies. Es basiert rein auf yasnippet (habe es aber noch nicht ausprobiert).
Ich verwende Folgendes:
# -*- mode: snippet -*-
# name: cc-doxygen
# key: dox
# type: command
# contributor: Jonathan Kotta <[email protected]>
# --
(let* ((next-func-alist (doxymacs-find-next-func))
(func-name (cdr (assoc 'func next-func-alist)))
(params-list (cdr (assoc 'args next-func-alist)))
(return-name (cdr (assoc 'return next-func-alist)))
(snippet-text "")
(idx 1))
(setq snippet-text (format "/**\n * ${1:%s}\n * \n" func-name))
(setq idx 2)
(dolist (param params-list)
(unless (string= param "this")
(setq snippet-text (concat snippet-text
(format " * \\param %s ${%d:}\n" param idx)))
(setq idx (+ 1 idx))))
(when (and return-name (not (string= return-name "void")))
(setq snippet-text (concat snippet-text
(format " * \\return ${%d:%s}\n" idx return-name))))
(setq snippet-text (concat snippet-text " */"))
(yas/expand-snippet snippet-text))
1. Generieren Sie Sauerstoff aus Emacs
Welches Tool verwendest du zum Kompilieren? CMake? Autotools? Scons?
Einmal habe ich mit CMake gearbeitet und wir haben ein Ziel erstellt, um Dokumentation mit Doxygen zu generieren.
Etwas wie Dies.
Dann müssen Sie wie folgt kompilieren:
make doc
Dies deckt jedoch nur den ersten Teil Ihrer Frage ab, die Dokumentation vor jeder Funktion wird manuell erstellt. Ich werde versuchen, diese Lösung mit yasnippet zu integrieren.