2011-12-16 99 views
21

我刚刚安装和使用Doxygen的设置的实例,但开箱它只是标志着像块时发现代码中TODO标签:Doxygen可以轻松配置为识别TODO和FIXME行吗?

/** 
* @todo Foo 
*/ 

它似乎并没有找到:

// TODO Foo 
// FIXME Bar 
// @todo Baz 

大多数处理解析的IDE和错误跟踪器都可以使用它们,有没有简单的方法来配置Doxygen来找到它们并将它们列为待办事项?

+3

Doxygen的评论往往是在特殊的评论块内,对吗?我认为对于单行注释,你会使用'/// @todo一些文本'(注意三个正斜杠,而不是通常的两个)。请参见[this](http://www.stack.nl/~dimitri/doxygen/docblocks.html)页面上的第二个列表中的第三点。 – Chris 2011-12-16 14:42:52

+0

谢谢,我完全错过了该页面,将检查出来。[我通常不是这样懒惰,我只是时间紧迫,但试图做到这一点,所以至少我们有/东西/ :)] – 2011-12-19 12:18:48

回答

35

有大量的实例和方法,我们可以使用:

  • 对于有效Doxygen的一个行注释命令(例如\todo),需要使用

    /// \todo Some (optional) text 
    

    注意三个前进斜杠,而不是通常的两个。请参阅Doxygen文档special documentation blocks部分第二列表中的第三点。这可以用来将新的待办事项添加到您的源代码中。

  • 通常可以通过在Doxygen配置文件中定义一个别名来定义自定义标签(如FIXME)。例如

    ALIASES += FIXME="\todo" 
    

    ,这将使你写在你的源代码\FIXME\FIXME前缀的评论将在你被列入最终的文档中的待办事项列表。这里的问题是,您必须在\(或@)符号前添加您的别名,并使用三个前导斜杠开始评论,如果您想将FIXME保留在代码中,则不能作为选项。

  • 最后,另一种方法和我认为你在寻找的是使用INPUT_FILTER配置文件选项预处理源文件。该选项定义了一个在Doxygen构建文档之前应用于每个源文件的命令,因此我们可以定义一个命令,用有效的Doxygen标记替换TODOFIXME的实例。

    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命令对我无效。

相关问题