Fortran 如何使用doxygen内联源代码

Fortran 如何使用doxygen内联源代码,fortran,doxygen,Fortran,Doxygen,我想记录一个Fortran模块,其中包含带有doxygen的函数 我的问题是,我找不到在函数文档中包含函数体的方法。只有指向位置的链接,但没有实际的源代码 目前,我的源代码如下所示: !> @brief Get a starting time. !> @details Get an object with time information. !> @return returns the time with high precision FUNCTION

我想记录一个Fortran模块,其中包含带有doxygen的函数

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

目前,我的源代码如下所示:

!> @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
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
我的doxygen配置(源代码部分)如下所示:

!> @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
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]
不幸的是,块id命令(前面带有
!!
的命令)出现在文档和/或完整的源代码中用Fortran做这件事的正确方法是什么?

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


第二次编辑:我找到了一个隐藏块id的解决方法。我将它们包装在一个
@internal
命令中

!> @internal [get_start_time]

3rd EDIT:我现在使用@Michael的建议将块id作为HTML注释包含在内

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


4th EDIT:我发布了一篇关于别名的后续文章。

我想你要找的是
@snippet
。相关手册页面如下所示。您还需要在doxy文件中提供“示例”代码的路径


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

感谢这第一种方法。不幸的是,我对块标记有一些问题,它们仍然出现在完整的源代码或文档部分……我自己还没有使用过Fortran,但是看看手册,你不需要使用
!>用于代码段标记行-至少对于第二行。似乎不需要
@internal
。删除
@internal
并使用
!>获取
!>[get\u start\u time]
,我在文档中看到了文本“[get\u start\u time]”(两次),这是不好的。
@internal
隐藏了这些事件。嗯,不太好,我同意。恐怕我现在没有建议了。不要使用
!>。。。只需使用普通注释,doxygen仍会找到it@Michael你说得对,多西根会找到的。但是这样,注释就会出现在完整的源代码列表中,因为它们不会被选项
STRIP\u code\u comments
剥离。