Как использовать \ addtogroup с командой ALIASES? - PullRequest
0 голосов
/ 13 сентября 2018

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

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 разбирает команду в одной строке вместо того, чтобы разрешить новую строку '^^ в предварительном шаге ...

1 Ответ

0 голосов
/ 13 сентября 2018

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

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

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

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

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

Примечание:

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