Doxygen — различия между версиями

Материал из SRNS
Перейти к: навигация, поиск
(Комментирование исходного текста)
Строка 1320: Строка 1320:
 
Для документирования какого-либо элемента программы, соответствующий комментарий располагают перед этим элементом в тексте программы. Например:
 
Для документирования какого-либо элемента программы, соответствующий комментарий располагают перед этим элементом в тексте программы. Например:
  
    //! Конструктор класса
+
//! Оценка вектора состояния СС за дисперсией квадратурных компонент
    Test();
+
int x_stdn2_est;
  
 
Существует множество вариантов оформления комментариев:<br>
 
Существует множество вариантов оформления комментариев:<br>
1. Возможно использовать комментарии в стиле системы JavaDoc, применяемой при документировании исходных текстов на языке Java:
+
 
 +
* Возможно использовать комментарии в стиле системы JavaDoc, применяемой при документировании исходных текстов на языке Java:
  
 
  /**
 
  /**
  * ... текст ...
+
  * Оценка вектора состояния СС за дисперсией квадратурных компонент
 
  */
 
  */
  2. Второй вариант:
+
  int x_stdn2_est;
 +
 
 +
или так
 +
 
 
  /*!
 
  /*!
  * ... текст ...
+
  * Оценка вектора состояния СС за дисперсией квадратурных компонент
 
  */
 
  */
 +
int x_stdn2_est;
 
   
 
   
как и для предыдущего случая, знаки "*" не обязательны для промежуточных строк:
+
как и для предыдущего случая, знаки "*" не обязательны для промежуточных строк:
 +
 
 
  /*!
 
  /*!
  ... текст ...
+
Оценка вектора состояния СС за дисперсией квадратурных компонент
 
  */
 
  */
 +
int x_stdn2_est;
 
   
 
   
3. еще один вариант - использование дополнительных знаков "/" или "!" в каждой строке
+
* Еще один вариант - использование дополнительных знаков "/" или "!" в каждой строке (QT-Style):
 +
 
 
  ///
 
  ///
  /// ... текст ...
+
  /// Оценка вектора состояния СС за дисперсией квадратурных компонент
 
  ///
 
  ///
   
+
  int x_stdn2_est;
 +
 
 
  или
 
  или
 
   
 
   
 
  //!
 
  //!
  //!... текст ...
+
  //! Оценка вектора состояния СС за дисперсией квадратурных компонент
 
  //!
 
  //!
 +
int x_stdn2_est;
  
  
 
По умолчанию любой многострочный комментарий является подробным. Для объявления кратких комментариев можно так же использовать несколько методов:<br>
 
По умолчанию любой многострочный комментарий является подробным. Для объявления кратких комментариев можно так же использовать несколько методов:<br>
  
  1. Использование команды \brief в блоке комментария:
+
  * Использование команды \brief в блоке комментария:
 +
 
 
  /*! \brief краткий комментарий.
 
  /*! \brief краткий комментарий.
 
  *        краткий комментарий.
 
  *        краткий комментарий.
Строка 1359: Строка 1370:
 
  *  после пустой строки начинается подробный комментарий.
 
  *  после пустой строки начинается подробный комментарий.
 
  */
 
  */
 +
int x_stdn2_est;
 
   
 
   
 
  2.Для однострочных комментариев:
 
  2.Для однострочных комментариев:
 +
 
  /// краткое описание.
 
  /// краткое описание.
 
  /** Полное описание. */
 
  /** Полное описание. */
  или
+
  int x_stdn2_est;
//! краткое описание.
+
 
   
 
   
 +
или
 +
 +
//! краткое описание.
 
  //! многострочное
 
  //! многострочное
 
  //! подробное описание.
 
  //! подробное описание.
 
+
int x_stdn2_est;
  
 
Иногда желательно расположить комментарий после, либо на одной строке с описываемым элементом. Для такого случая так же существуют несколько возможных способов:<br>
 
Иногда желательно расположить комментарий после, либо на одной строке с описываемым элементом. Для такого случая так же существуют несколько возможных способов:<br>
  
  1.    int var; /*!< Подробный комментарий */
+
  1.    int x_stdn2_est;; /*!< Подробный комментарий */
  2.    int var; /**< Подробный комментарий */
+
  2.    int x_stdn2_est;; /**< Подробный комментарий */
  3.    int var; //!< Подробный комментарий
+
  3.    int x_stdn2_est;; //!< Подробный комментарий
 
  4.            //!<
 
  4.            //!<
  5.    int var; ///< Подробный комментарий
+
  5.    int x_stdn2_est;; ///< Подробный комментарий
 
           ///<
 
           ///<
  6.    int var; //!< Краткий комментарий
+
  6.    int x_stdn2_est;; //!< Краткий комментарий
  7.    int var; ///< Краткий комментарий
+
  7.    int x_stdn2_est;; ///< Краткий комментарий
  
  
Строка 1403: Строка 1418:
 
  \interface - документирование IDL интерфейса
 
  \interface - документирование IDL интерфейса
 
  \package - документирование пакета на языке Java
 
  \package - документирование пакета на языке Java
 
  
 
== Востребованные команды ==
 
== Востребованные команды ==

Версия 21:04, 19 апреля 2011

Doxygen — это кроссплатформенная система документирования исходных текстов, которая поддерживает C++, Си, Objective-C, Python, Java, IDL, PHP, C#, Фортран, VHDL и, частично, D.

Doxygen генерирует документацию на основе набора исходных текстов и также может быть настроен для извлечения структуры программы из недокументированных исходных кодов. Возможно составление графов зависимостей программных объектов, диаграмм классов и исходных кодов с гиперссылками.

Doxygen имеет встроенную поддержку генерации документации в формате HTML, LaTeX, man, RTF и XML. Также вывод может быть легко сконвертирован в CHM, PostScript, PDF.

Для html-представления документации, размещаемого на web-серверах, существует удобный способ организации поиска (при помощи создаваемого Doxygen'ом PHP-модуля) и ссылок на внешнюю документацию.

Doxygen - консольная программа в духе классической Unix. Она работает подобно компилятору, анализируя исходные тексты и создавая документацию. [ Пример.]

Содержание

Что требуется установить для полноценной работы

Doxygen

Основная программа

Graphiz

Graphviz – это свободно распространяемый пакет утилит для визуализации данных. Нам он нужен для того, чтобы Doxygen мог показать в документации отношения наследования, графы вызовов и прочую информацию в виде наглядных изображений.

LaTeX

При установленном пакете того или иного LaTeX-дистрибутива, Doxygen конвертирует TeX-разметку в комментариях в изображения, а затем вставляет их в итоговый отчет. Также генерирует TeX-файлы, а затем PDF.

Doxywizard

Параметры создания документации читаются из конфигурационного файла, имеющего простой текстовый формат (см. ниже). Для упрощения манипуляций с конфигурационным файлом (а он содержит довольно много настроек), существует несколько утилит с графическим интерфейсом. Одна из них, doxywizard, поставляется вместе с Doxygen.


Комментирование исходного текста

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

  • краткий (brief)
  • и полный (detailed).

Краткие комментарии обычно описывают предназначение комментируемого элемента, а полные содержат информацию по его использованию и функционированию и чаще всего являются многострочными.
К каждому элементу программы не может быть привязано более одного краткого и полного комментария.
Для документирования какого-либо элемента программы, соответствующий комментарий располагают перед этим элементом в тексте программы. Например:

//! Оценка вектора состояния СС за дисперсией квадратурных компонент
int x_stdn2_est;

Существует множество вариантов оформления комментариев:

  • Возможно использовать комментарии в стиле системы JavaDoc, применяемой при документировании исходных текстов на языке Java:
/**
* Оценка вектора состояния СС за дисперсией квадратурных компонент
*/
int x_stdn2_est;

или так

/*!
* Оценка вектора состояния СС за дисперсией квадратурных компонент
*/
int x_stdn2_est;

как и для предыдущего случая, знаки "*" не обязательны для промежуточных строк:

/*!
Оценка вектора состояния СС за дисперсией квадратурных компонент
*/
int x_stdn2_est;

  • Еще один вариант - использование дополнительных знаков "/" или "!" в каждой строке (QT-Style):
///
/// Оценка вектора состояния СС за дисперсией квадратурных компонент
///
int x_stdn2_est;
или

//!
//! Оценка вектора состояния СС за дисперсией квадратурных компонент
//!
int x_stdn2_est;


По умолчанию любой многострочный комментарий является подробным. Для объявления кратких комментариев можно так же использовать несколько методов:

* Использование команды \brief в блоке комментария:
/*! \brief краткий комментарий.
*         краткий комментарий.
*
*  после пустой строки начинается подробный комментарий.
*/
int x_stdn2_est;

2.Для однострочных комментариев:
/// краткое описание.
/** Полное описание. */
int x_stdn2_est;

или

//! краткое описание.
//! многострочное
//! подробное описание.
int x_stdn2_est;

Иногда желательно расположить комментарий после, либо на одной строке с описываемым элементом. Для такого случая так же существуют несколько возможных способов:

1.    int x_stdn2_est;; /*!< Подробный комментарий */
2.    int x_stdn2_est;; /**< Подробный комментарий */
3.    int x_stdn2_est;; //!< Подробный комментарий
4.             //!<
5.    int x_stdn2_est;; ///< Подробный комментарий
         ///<
6.    int x_stdn2_est;; //!< Краткий комментарий
7.    int x_stdn2_est;; ///< Краткий комментарий


Обычно предполагается, что документирующие комментарии находятся рядом с документируемым элементом. Однако, Doxygen позволяет поместить комментарий практически в любой части файла, связав его с каким-либо элементом. В этом случае необходимо указывать в блоке комментария ряд специальных команд.
Например так будет выглядеть описание класса Test, размещенное в любом месте файла:

/*! \class Test
    \brief Тестовый класс.
 
    Полное описание класса.
*/

Кроме команды \class, можно использовать множество других:

\struct - документирует структуру
\union - документирует объединение
\enum - документирует перечисление
\fn - документирует функцию
\var - документирует переменную
\def - документирует макрос подстановки #define
\file - документирует файл
\namespace - документирует пространство имен.
\typedef - документирование объявления типа
\interface - документирование IDL интерфейса
\package - документирование пакета на языке Java

Востребованные команды

Документирование структур, переменных и т.д.

Документирование функции

Вставка TeX-формул

Для вставки TeX-формулы используются команды \f$ ... \f$ и \f[ ... \f] , которые обрамляют TeX-разметку:


Выражение в тексте:

/** Всё гениальное просто: \f$ E = mc^2 \f$ */


Выражение по центру, с новой строки:

/** Воспользуемся дискриминатором
\f[
u_{d,k} = - atan{frac{Q_k}{I_k}},
\f]
его характеристики хорошо изучены, работа наглядна.
*/


Для расширенного синтаксиса нужно дополнить опцию в Doxyfile'e:

EXTRA_PACKAGES         = amssymb,amsfonts,amsmath,mathtext

Ссылки

Персональные инструменты
Пространства имён

Варианты
Действия
SRNS Wiki
Рабочие журналы
Приватный файлсервер
QNAP Сервер
Инструменты