0

我正在尝试创建一个自定义命令以便于组处理。这个想法一般...

ALIASES += opengroup{1}="^^* \addtogroup \1_GROUP ^^ * \{ ^^"
ALIASES += close="\}"

...在代码文件中用作...

/** \opengroup{LEVEL_1} */
// ...code statements...
/** \close */ // opengroup

...获得 doxygen 结果评论:

/**
* \addtogroup LEVEL_1_GROUP
* \{
*/
// ...code statements...
/** \} */ // opengroup

我尝试使用 Doxygen 1.8.14。不幸的是,这不起作用。有任何想法吗?

编辑: 我认为根本问题是 \addtogroup 命令及其语法。我希望通过插入“^^”来强制换行来清除这一点,但在我看来,doxygen 是在一行中解析命令,而不是在前一步中解析“^^”新行...

4

1 回答 1

0

有点奇怪。使用别名:

ALIASES += opengroup{1}="^^* \addtogroup \1_GROUP ^^ * \\{ ^^"

\\所以在大括号打开()之前有一个双反斜杠( ),{我让它工作了。我也得到它的工作:

ALIASES += opengroup{1}="^^* \addtogroup \1_GROUP ^^ * @{ ^^"

所以看起来额外的反斜杠在一个意想不到的地方被吃掉了。\and@应该是同义词,但 as也是\一个转义字符,所以它通常很棘手。

笔记:

  1. 我曾经doxygen -d commentscan看到替换
  2. 将来可能会改变,因为我认为这可能是一个错误。
  3. 问题是由于ALIASES可以嵌套的事实引起的,并且在更改后新字符串被视为输入。当需要文字{时,},在扩展输出中,必须用 a 转义它们,\然后\在 en 处删除。这里的问题出现在命令上\{\}因为这里\用作“命令指示器”。最好使用@{@}以防需要“阻止命令”。\}in\close没有问题,因为它没有被重新评估。
于 2018-09-13T13:31:50.947 回答