Как использовать \addtogroup с командой ALIASES?

Я пытаюсь создать собственную команду для облегчения работы с группой. Идея в общем...

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

... использовать в файле кода как...

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

... чтобы получить комментарий к результату:

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

Я пробовал с Doxygen 1.8.14. К сожалению, это не работает. Есть идеи?

Изменить: Я думаю, что основной проблемой является команда \addtogroup с ее синтаксисом. Я надеялся очистить это, вставив "^^" для принудительного ввода новой строки, но мне кажется, что doxygen разбирает команду в одной строке вместо того, чтобы разрешить новую строку "^^" на предварительном этапе...

1 ответ

Решение

Немного странно С псевдонимом:

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

так с двойной обратной косой чертой (\\) до открытия фигурной скобки ({Я получил это работает. Я также работаю с:

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

так что похоже, что дополнительный обратный слеш едят в неожиданном месте. \ а также @ должны быть синонимами, но как \ это также побег, так что это довольно сложно.

Замечания:

  1. я использовал doxygen -d commentscan чтобы увидеть замену
  2. Может измениться в будущем, так как я думаю, что это может быть ошибкой.
  3. Проблема вызвана тем, что ALIASES может быть вложенным, и после изменения новая строка рассматривается как входная. Когда нужен буквальный {, } или же , в расширенном выводе нужно избежать их с \ и \ удаляется на ан. Проблема здесь возникает с командами \{ а также \} как здесь \ служит "индикатором команды". Лучше всего использовать @{ а также @} в случае, если нужны "блочные команды". \} в \close не имеет проблемы, так как не переоценивается.
Другие вопросы по тегам