¿Se puede configurar fácilmente Doxygen para reconocer líneas TODO y FIXME?
(1)
Acabo de instalar y configurar una instancia de Doxygen, pero desde el principio solo encuentra etiquetas TODO en el código cuando está marcado en un bloque como:
/**
* @todo Foo
*/
No parece encontrar:
// TODO Foo
// FIXME Bar
// @todo Baz
La mayoría de los IDE y los rastreadores de errores que manejan el análisis están bien con ellos, ¿existe una manera fácil de configurar Doxygen para encontrarlos y catalogarlos como elementos pendientes?
Hay una serie de ejemplos y métodos que podemos utilizar:
Para un comentario de una línea con comandos de Doxygen válidos (por ejemplo,
/todo
), usaría/// /todo Some (optional) text
Tenga en cuenta las tres barras diagonales hacia adelante, no las dos habituales. Vea el punto tres en la segunda lista en la sección de this de Doxygen. Esto se puede usar para agregar nuevos elementos de tareas a su código fuente.
En general, se pueden definir etiquetas personalizadas (como
FIXME
) definiendo un alias en el archivo de configuración de Doxygen. Por ejemploALIASES += FIXME="/todo"
lo que le permitirá escribir
/FIXME
en su código fuente y los comentarios con el prefijo/FIXME
se incluirán en su lista de/FIXME
pendientes en la documentación final. El problema aquí es que tiene que prefijar sus alias con el símbolo/
(o@
) y comenzar el comentario con tres barras diagonales hacia adelante que, si desea dejar lasFIXME
s en su código tal como están, no es una opción.Finalmente, un método alternativo, y lo que creo que está buscando, sería preprocesar sus archivos de origen utilizando la opción de archivo de configuración
INPUT_FILTER
. Esta opción define un comando que se aplica a cada uno de sus archivos de origen antes de que Doxygen compile la documentación, por lo que podemos definir un comando que reemplace las instancias deTODO
yFIXME
con un marcado de Doxygen válido.INPUT_FILTER = "sed -e ''s/////.*FIXME/////// //todo/''"
Este filtro reemplaza todas las instancias de
// FIXME
(con cualquier cantidad (o ninguna) de espacios en blanco entre//
yFIXME
) con/// /todo
. Doxygen solo realiza esta sustitución internamente: los archivos de origen no se modifican en el disco.
Nota: este último punto se inspiró en la respuesta aceptada a la pregunta de cómo las etiquetas Doxygen TODO y MSVC TODO funcionan juntas . Sin embargo, esa respuesta utilizó la opción de configuración FILE_VERSION_FILTER
lugar de INPUT_FILTER
. Creo que este último ( INPUT_FILTER
) es en realidad más apropiado aquí. Además, el comando sed
utilizado en esa respuesta no funciona para mí.