我刚刚安装并设置了Doxygen实例,但开箱即用时,它只会在代码中找到代码中的TODO代码:
/**
* @todo Foo
*/
似乎没有找到:
// TODO Foo
// FIXME Bar
// @todo Baz
处理解析的大多数IDE和bug跟踪器都很好用,有没有一种简单的方法可以配置Doxygen来找到它们并将它们列为ToDo项目?
答案 0 :(得分:40)
我们可以使用许多示例和方法:
对于带有效doxygen命令的单行注释(例如\todo
),您将使用
/// \todo Some (optional) text
注意三个正斜杠,而不是通常的两个斜杠。请参阅doxygen文档的special documentation blocks部分中第二个列表中的第三点。这可用于在源代码中添加新的待办事项。
通常可以通过在Doxygen配置文件中定义别名来定义自定义标记(如FIXME
)。例如
ALIASES += FIXME="\todo"
允许您在源代码中编写\FIXME
,前缀为\FIXME
的注释将包含在最终文档中的待办事项列表中。这里的问题是你必须在别名前添加\
(或@
)符号,并以三个前导斜杠开头,如果你想离开FIXME
s在您的代码中,不是一个选项。
最后,另一种方法,以及我认为您正在寻找的方法,是使用INPUT_FILTER
配置文件选项预处理源文件。此选项定义在doxygen构建文档之前应用于每个源文件的命令,因此我们可以定义一个命令,用有效的doxygen标记替换TODO
和FIXME
的实例。
INPUT_FILTER = "sed -e 's/\/\/.*FIXME/\/\/\/ \\todo/'"
此过滤器会将// FIXME
(//
和FIXME
之间的任何数量(或没有)空格的所有实例替换为/// \todo
。此替换仅在doxygen内部进行:您的源文件未在磁盘上修改。
注意:最后一点的灵感来自对Getting doxygen and MSVC TODO tags to work together问题的接受答案。但是,该答案使用FILE_VERSION_FILTER
配置选项而不是INPUT_FILTER
。我认为后者(INPUT_FILTER
)实际上更合适。此外,该答案中使用的sed
命令对我不起作用。