2012-03-20 1 views
1

В основном я хочу продолжить поток обычного текста после раздела внимания. Если я оставлю новую строку, doxygen не свяжет текст перед новой строкой как документацию элемента. Есть ли общий способ закончить произвольный раздел, такой как @attention, не помещая весь раздел (т. Е. @attention) в другой блок и завершая его.Doxygen - как закончить блок внимания без новой строки

Редактировать

Например, при

///this is a function 
///@attention attention text 

///should be outside attention text 
void testFunc() {}; 

выход Doxygen выглядит следующим образом:

ничтожной testFunc()

должны быть вне тексту внимание

это функция

Внимание:
внимание текст

т.е. порядок текста изменяется.

Update

Другая подобная проблема: в начале файла у меня есть:

///@author Somebody 
/// 

#define MY_MACRO printf 

Автор получает связанный с макросом, а не весь файл. Если я добавлю пустую строку комментариев после @author, я получаю тот же результат.

Как правило, существует универсальный способ завершения блока в doxygen, когда нет явного закрывающего макроса, такого как @endcode.

+0

Можете ли вы разместить код примера?Я не думаю, что ваше утверждение «Если я оставлю новую строку, doxygen не будет связывать текст перед новой строкой, поскольку документ элемента» - это то, как все должно работать, поэтому некоторый код поможет справиться с проблемой. – Chris

+0

Хорошо, обновил вопрос –

+0

В ответ на ваш обновленный вопрос: нет общего способа завершения блока, если он явно не упоминается в руководстве doxygen (например, '\ endcode'). Обычно диапазон команд приведен в документации, обычно обозначаемой с помощью скобок разных типов. Команда ['author] (http://www.stack.nl/~dimitri/doxygen/commands.html#cmdauthor)« заканчивается, когда встречается пустая строка или какая-либо другая команда секционирования ». – Chris

ответ

2

Попробуйте это:

///this is a function 
///@attention attention text 
/// 
///should be outside attention text 
void testFunc() {}; 

Вместо того, чтобы оставлять пустые строки в документации блока держать их все вместе. Команда внимания заканчивается пустой строкой, но эта пустая строка, как ожидается, будет частью блока документации (то есть пустая строка означает /// сама по себе).

В качестве альтернативы, вы можете использовать /** */ стиль комментариев, а потом написать

/** this is a function 
    @attention attention text 

    should be outside attention text 
*/ 
void testFunc() {}; 
+0

Ах! Я думал, что попробовал это, но, видимо, я этого не сделал. Это работает, спасибо. Я добавил обобщение на мой вопрос (потому что у меня есть аналогичная проблема с @author), не могли бы вы посмотреть, пожалуйста? –

2

Автор получает связанный с макросом, а не весь файл.

Если вы хотите, это связано с файлом, то вы должны связать его с файла. Это означает использование спецификатора @file в том же блоке, что и @author (и перед ним, очевидно).

+0

Спасибо, это решило –

Смежные вопросы