Emacs + C/C++ + Doxygen: Alternative zu Doxymacs? Mit Yasnippet?

Lesezeit: 2 Minuten

Benutzer-Avatar
Marius Hofert

Ich möchte doxygen verwenden, um Codedokumentation (von Funktionen) in zu generieren .c oder .cc Dateien mit Emacs. ich fand doxymacsaber 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))

Benutzer-Avatar
coelhudo

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.

  • Danke fürs Helfen. Ich kompiliere die Dateien nicht selbst. Ich verwende sie innerhalb von R und R kompiliert die Dateien für mich.

    – Marius Hofert

    4. Juli 2012 um 22:44 Uhr

1098540cookie-checkEmacs + C/C++ + Doxygen: Alternative zu Doxymacs? Mit Yasnippet?

This website is using cookies to improve the user-friendliness. You agree by using the website further.

Privacy policy