Emacs + C/C++ + Doxygen: ¿Alternativa a doxymacs? ¿Con Yasnippet?

Me gustaría usar doxygen para generar documentación de código (de funciones) en .c or .cc archivos con Emacs. encontré doxymacs, pero parece que ya no se mantiene (última versión 2007) y tampoco encontré la forma de actualizar la documentación de una función si cambio el nombre de uno de los parámetros de la función ("lamentablemente", soy acostumbrado a lo grande Roxygen por .R scripts que pueden hacer todas las cosas buenas, incluso insertar una documentación justo antes de una función cuando el punto está en algún lugar de la función).

Encontré este, pero no parece muy útil. Sin embargo, hay un ejemplo aquí cómo utilizar yasnippets. ¿Alguien ha escrito un yasnippet para los encabezados de doxygen? Aún así, no actualizaría los parámetros si cambia el nombre de la función. ¿Hay alguna forma "mejor" de trabajar con doxygen en Emacs? Asumiría que hay bastantes programadores de C/C++ que trabajan con Emacs y supongo que debería haber una buena herramienta/enfoque para la documentación del código.

Noticias

Yo tambien encontre este. Se basa puramente en yasnippet (aunque aún no lo he probado).

preguntado el 04 de julio de 12 a las 08:07

2 Respuestas

Yo uso lo siguiente:

# -*- mode: snippet -*-
# name: cc-doxygen
# key: dox
# type: command
# contributor: Jonathan Kotta <jpkotta@gmail.com>
# --
(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))

Respondido 04 Jul 12, 20:07

Estimado Jonathan, gracias por ayudar. Eso se ve bien. En la cima de permalink.gmane.org/gmane.emacs.yasnippet.devel/555 hay una versión que no requiere doxymacs. Aunque no lo he probado. - Marius Hofert

1. Genera doxygen desde Emacs

¿Qué tipo de herramienta estás usando para compilar? Chacer? Autoherramientas? ¿Scons?

Una vez trabajé con CMake y creamos un objetivo para generar documentación con doxygen.

Algo como este.

Entonces tendrás que compilar así:

make doc

Pero esto solo cubre la primera parte de su pregunta, la documentación antes de cada función se realizará manualmente. Intentaré integrar esta solución con yasnippet.

Respondido 04 Jul 12, 21:07

Gracias por ayudar. Yo no compilo los archivos yo mismo. Los uso dentro de R y R compila los archivos para mí. - Marius Hofert

No es la respuesta que estás buscando? Examinar otras preguntas etiquetadas or haz tu propia pregunta.