如何将 \addtogroup 与 ALIASES 命令一起使用?

How to use \addtogroup with an ALIASES command?

我正在尝试创建一个自定义命令以便更轻松地进行组处理。思路一般...

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

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

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

...获取 doxygen 结果评论:

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

我试过 Doxygen 1.8.14。不幸的是,这不起作用。有什么想法吗?

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

有点奇怪。使用别名:

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

所以在大括号打开 ({) 之前使用双反斜杠 (\) 我让它工作了。 我也可以使用它:

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

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

注:

  1. 我用过doxygen -d commentscan看替换
  2. 将来可能会更改,因为我认为这可能是一个错误。
  3. 问题是由于 ALIASES 可以嵌套,并且在更改后新字符串被视为输入。当在扩展输出中需要文字 {}, 时,必须使用 \ 对它们进行转义,并在 en 处删除 \。命令 \{\} 会出现问题,因为这里 \ 用作 'command indicator'。最好使用 @{@} 以防需要 'block commands'。 \close 中的 \} 没有问题,因为它没有被重新评估。