Связка Visual Assist + doxygen
Автор: Phoenics
Привет всем!
Я хотел поделится используемой мною связкой Visual Assist + doxygen которую я нахожу чрезвычайно удобной, т.к. это очень популярные инструменты для разработки и документирования кода, а вместе они могут быть вдвойне полезнее.
Как известно doxygen позволяет на основе комментариев генерировать документацию. При этом он поддерживает большое количество различных тегов. Например что бы задокумментировать объявление класса необходимо написать примерно такой комментарий:
//! \class LinkName //! \ingroup Core_OtherGroup //! \author Stolnikov S.V. aka Phoenics //! \brief Класс линковщик имён. Класс преобразует строки //! в уникальные соответствующие этим строкам числа. //! //! \details Класс предназначен для создания связей 1:1 //! между уникальными строками и числами. //! На вход GetNumber следует подать линкуемую //! строку, и на выходе получить связаное с этой строкой //! целочисленное беззнаковое число. //! Возвращаемые линковсщиком числа являются //! целочисленными беззнаковыми упорядоченными, поэтому их можно //! использовать для индексации в массивах. class LinkName { ... }
При помощи автозамены Visual Assist-а добавление таких комментариев можно сделать очень быстрым, удобным и не держать в голове необходимые теги. Для этого необходимо отредактировать файл C:\Program Files\Visual Assist X\Autotext\Cpp.tpl (Если Visual Assist установлен в директории C:\Program Files\Visual Assist X), и добавить туда такие строки:
a::#doxy_meth: //! \brief Method description //! \param[in,out] param_name1 param_desc1 //! \param[in,out] param_name2 param_desc2 //! \return return_desc a::#doxy_struct: //! \struct //! \ingroup SomeGroup //! \author Stolnikov S.V. aka Phoenics //! \date $YEAR$/$MONTH$/$DAY$ //! \brief Put brief there //! //! \details Put details there a::#doxy_memb: //! \var //! //! \brief Put brief there a::#doxy_class: //! \class //! \ingroup SomeGroup //! \author Stolnikov S.V. aka Phoenics //! \date $YEAR$/$MONTH$/$DAY$ //! \brief Put brief there //! //! \details Put details there a::#doxy_enum: //! \enum //! \ingroup SomeGroup //! \author Stolnikov S.V. aka Phoenics //! \date $YEAR$/$MONTH$/$DAY$ //! \brief Put brief there //! //! \details Put details there a::#doxy_interface: //! \interface //! \ingroup SomeGroup //! \author Stolnikov S.V. aka Phoenics //! \date $YEAR$/$MONTH$/$DAY$ //! \brief Put brief there //! //! \details Put details there
Теперь вбив в нужном месте кода строку #doxy_interface вы получите предложение заменить её на:
//! \interface //! \ingroup SomeGroup //! \author Stolnikov S.V. aka Phoenics //! \date $YEAR$/$MONTH$/$DAY$ //! \brief Put brief there //! //! \details Put details there
Останется только вбить название класса и описание в соответствующие поля.
При этом в теге \date будет автоматически проставлена текущая дата.
P.S. #doxy_meth - для комментирования методов.
#doxy_struct - для комментирования структур.
#doxy_memb - для комментирования членов классов.
#doxy_class - для комментирования классов.
#doxy_enum - для комментирования перечислений
#doxy_interface - для комментирования интерфейсов.
9 июня 2009