28

我刚刚安装并设置了 Doxygen 的一个实例,但开箱即用,它只会在代码中找到 TODO 标签时标记在一个块中,如:

/**
 * @todo Foo
 */

它似乎没有找到:

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

大多数处理解析的 IDE 和错误跟踪器都很好,是否有一种简单的方法可以配置 Doxygen 来查找它们并将它们列为 ToDo 项?

4

1 回答 1

45

我们可以使用许多示例和方法:

  • 对于具有有效 doxygen 命令(例如)的单行注释,\todo您将使用

    /// \todo Some (optional) text
    

    注意三个正斜杠,而不是通常的两个。请参阅 doxygen 文档的特殊文档块部分的第二个列表中的第三点。这可用于将新的待办事项添加到您的源代码中。

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

    ALIASES += FIXME="\todo"
    

    这将允许您编写\FIXME源代码,并且带有前缀的注释\FIXME将包含在最终文档的待办事项列表中。这里的问题是,您必须在别名前加上\(or @) 符号,并以三个前导正斜杠开始注释,如果您想FIXME在代码中保留 s 原样,这不是一个选项。

  • 最后,我认为您正在寻找的另一种方法是使用INPUT_FILTER配置文件选项预处理您的源文件。这个选项定义了一个命令,在 doxygen 构建文档之前应用到你的每个源文件,所以我们可以定义一个命令,用有效的 doxygen 标记替换TODO实例FIXME

     INPUT_FILTER = "sed -e 's/\/\/.*FIXME/\/\/\/ \\todo/'"
    

    这个过滤器用. // FIXME_ 这种替换仅由 doxygen 内部进行:您的源文件不会在磁盘上修改。//FIXME/// \todo

注意:最后一点的灵感来自于对问题Getting doxygen and MSVC TODO tags to work together的公认答案。但是,该答案使用了FILE_VERSION_FILTER配置选项而不是INPUT_FILTER. 我认为后者(INPUT_FILTER)在这里实际上更合适。此外,该sed答案中使用的命令对我不起作用。

于 2012-01-04T11:44:58.313 回答