如何使用doxygen内联源代码

时间:2014-01-24 14:24:42

标签: fortran doxygen

我想记录一个包含doxygen函数的Fortran模块。

我的问题是,我无法找到将函数体包含在函数文档中的方法。只有一个指向该位置的链接,但不包含实际的源代码。

目前,我的源代码看起来像像这样:

!> @brief      Get a starting time.
!> @details    Get an object with time information.
!> @return     returns the time with high precision
FUNCTION get_start_time() RESULT(stime)
  TYPE (time) :: stime

  CALL SYSTEM_CLOCK(stime%count, stime%rate, stime%max)
END FUNCTION

我的doxygen配置(SOURCES部分)如下所示:

SOURCE_BROWSER         = YES
INLINE_SOURCES         = YES
STRIP_CODE_COMMENTS    = YES
REFERENCED_BY_RELATION = YES
REFERENCES_RELATION    = YES
REFERENCES_LINK_SOURCE = YES
SOURCE_TOOLTIPS        = YES
USE_HTAGS              = NO
VERBATIM_HEADERS       = YES

我还尝试使用@code@endcode标记来标记来源,但这也不起作用。

我该怎么做才能将源代码直接发送到文档?


第一次编辑:我尝试了@ cheeseminer的解决方案。所以上面的代码现在看起来像

!> @brief      Get a starting time.
!> @details    Get an object with time information.
!> @return     returns the time with high precision
!> @par        Code
!> @snippet    folder/file.F90 get_start_time
!! [get_start_time]
FUNCTION get_start_time() RESULT(stime)
  TYPE (time) :: stime

  CALL SYSTEM_CLOCK(stime%count, stime%rate, stime%max)
END FUNCTION
!! [get_start_time]

不幸的是,block-id命令(前面带有!!的命令)出现在文档和/或完整的源代码中。 在Fortran中执行此操作的正确方法是什么?

还是有更好的方法可以解决我最初的问题吗?


第二次编辑:我找到了隐藏block-id的解决方法。我用@internal命令将它们包装起来。

!> @internal [get_start_time]

第三次编辑:我现在正在使用@ Michael的建议将block-id包含为HTML-Comment。

!> <!-- [get_start_time] -->

第四次编辑:我发布了有关别名的后续question

1 个答案:

答案 0 :(得分:2)

我认为你要找的是@snippet。相关手册页为here。您还需要提供doxy文件中“示例”代码的路径。

@code更像是格式化命令。如果您只有几个简短的此类部分,您可能最好将代码复制到注释中并使用@code对其进行格式化,但如果代码示例可能会更改,那么您可能应该使用snippet尽管它引入了源头的混乱。