我想记录一个包含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。
答案 0 :(得分:2)
我认为你要找的是@snippet
。相关手册页为here。您还需要提供doxy文件中“示例”代码的路径。
@code
更像是格式化命令。如果您只有几个简短的此类部分,您可能最好将代码复制到注释中并使用@code
对其进行格式化,但如果代码示例可能会更改,那么您可能应该使用snippet
尽管它引入了源头的混乱。