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