在一些doxygen文档中,我想显示#define
的内容,而不是标记本身。例如,在C文件中我有
#define REPEAT_N_TIMES 10
现在在我的文档中我要显示:
行动完成了10次。
如果我使用\ref REPEAT_N_TIMES
,则会显示:
行动已完成REPEAT_N_TIMES次
有没有办法显示链接的内容,而不是链接本身,例如\ValueOf(\ref REPEAT_N_TIMES)
或\contentOf(\ref REPEAT_N_TIMES)
?
更新:我的Doxygen的配置是:
// Configuration options related to the preprocessor
ENABLE_PREPROCESSING = YES
MACRO_EXPANSION = YES
EXPAND_ONLY_PREDEF = YES
SEARCH_INCLUDES = YES
INCLUDE_PATH =
INCLUDE_FILE_PATTERNS =
PREDEFINED = WXUNUSED()=
EXPAND_AS_DEFINED =
SKIP_FUNCTION_MACROS = YES
MACRO_EXPANSION
设置似乎会更改宏的“详细信息”。但我没有看到选择宏名称或其内容的方法。使用命令\ref
似乎不是正确的方法:它指的是“某事”而不是“某事”的内容
是否有我可以使用的操作符或函数,可能类似于 C ,我可以使用\ref *something
而不是\ref something
之类的内容?
答案 0 :(得分:0)
preprocessing上的doxygen手册页似乎拥有您需要的所有信息。首先尝试将doxygen配置文件中的MACRO_EXPANSION
标志设置为YES
,然后在您的文档中包含
The action is done REPEAT_N_TIMES times.
如doxygen手册中所述,这将扩展所有宏定义(如果需要递归),这通常太多。因此,您可以使用配置文件中的EXPAND_ONLY_PREDEF
和EXPAND_AS_DEFINED
设置准确指定要扩展的宏。例如,尝试设置
EXPAND_ONLY_PREDEF =是
EXPAND_AS_DEFINED = REPEAT_N_TIMES
在配置文件中。
更新关注@ spamy的评论我对此进行了更多研究,似乎我上面提到的方法不适用于 注释块中的宏只扩展源代码中的宏。例如,请参阅doxygen sourceforge页面上的this post。根据这篇文章,在注释块中实现宏扩展的唯一方法是使用INPUT_FILTER
配置文件设置。使用像
INPUT_FILTER = sed /REPEAT_N_TIMES/10
警告:上述INPUT_FILTER
尚未经过测试。
如果您不想使用INPUT_FILTER
,那么另一个帖子的this答案可能是您最好的选择。基本上它说你可以记录宏,所以文档的读者将能够轻松找到真正的价值。因此,请在文档的其他位置添加文档到#define
,然后只添加\ref
。