Doxygen не собирает все \ todo в глобальном списке todo
У меня проблема с доксигеном. Не все мои \todo собраны в глобальном списке todo, но большинство из них. Я сделал простой C-пример с одним исходным файлом и файлом заголовка, а также с файлом конфигурации, где я разместил задачи везде, где хочу, чтобы doxygen собирал их в глобальный список задач.
В моем глобальном списке задач отсутствуют показанные задачи в приведенном ниже фрагменте кода, что означает тот, который находится внутри тела моей публичной функции (test_todo12 в myFunc), а также те, которые находятся в файле cfg (test_todo16 и test_todo17), оба реализованы, как показано ниже.
test.h:
/**
* Definition of test structure.
*/
typedef struct def_struct_
{
int32_t first; /**< First element.*/
int32_t second; /**< Second element. */
int32_t third; /**< third element. */
} def_struct_t;
/**************************************************************************************************/
/**
* \brief My func description.
*
* \param[ in ] test_param Input parameter to myFunc.
*
* \return bool
* \retval false false on non success.
* \retval true true on success.
*
**************************************************************************************************/
bool myFunc( uint32_t test_param );
test.c:
#include <stdint.h>
#include <stdbool.h>
#include "test.h"
#include "test.cfg"
bool myFunc( uint32_t test_param )
{
uint32_t testVar = test_param ;
//! This function does nothing. \todo test_todo12
testVar++;
return true;
}
test.cfg:
/** test cfg
* \todo test_todo16
*/
static def_struct_t test_cfg[2] =
{
.first = 123 //! \todo test_todo17
}
Я использую doxygen версии 1.8.14
Различия в моем файле конфигурации doxygen по сравнению с настройками по умолчанию следующие (после попытки множества разных комбинаций):
OPTIMIZE_OUTPUT_FOR_C = YES
TOC_INCLUDE_HEADINGS = 1
TYPEDEF_HIDES_STRUCT = YES
EXTRACT_PRIVATE = YES
EXTRACT_STATIC = YES
INTERNAL_DOCS = YES
HIDE_SCOPE_NAMES = YES
WARN_NO_PARAMDOC = YES
RECURSIVE = YES
EXCLUDE_PATTERNS = */README.md
EXAMPLE_RECURSIVE = YES
SOURCE_BROWSER = YES
GENERATE_TREEVIEW = YES
USE_MATHJAX = YES
GENERATE_LATEX = NO
CLASS_DIAGRAMS = NO
HAVE_DOT = YES
UML_LOOK = YES
DOT_PATH = "C:\Program Files (x86)\Graphviz2.38\lib\release\lib"
DOTFILE_DIRS = "C:\Program Files (x86)\Graphviz2.38\lib\release\lib" \ "C:\Program Files (x86)\Graphviz2.38\bin"
PLANTUML_JAR_PATH = C:\tools\plantUML
and added *.cfg \ to FILE_PATTERNS
Ссылка на полный компилируемый код и конфигурацию doxygen (минимальный пример для демонстрации этой проблемы): Ссылка на код
Когда я перехожу к публичной функции myFunc, я вижу задачу, она просто отсутствует в глобальном списке задач.
Файл cfg, похоже, вообще не включен в документацию doxygen, хотя он включен в файл C, и поэтому должен рассматриваться как часть этого файла? Или действительно необходимо сделать что-то дополнительное / специальное для включения этих файлов cfg? Если да, то кто-нибудь знает, что мне не хватает?
Я надеюсь, что кто-нибудь поможет мне решить мою проблему, может быть, задача в теле публичной функции - это даже ошибка?
С уважением, Джеспер
1 ответ
Похоже, здесь есть ряд проблем.
- расширение cfg не известно doxygen и только добавляет его в
FILE_PATTERNS
недостаточно, также необходимо сообщить doxygen о языке, на котором он написан, поэтомуEXTENSION_MAPPING = cfg=C
. - переменная в
test.cfg
отсутствует точка с запятой (;
) в конце. последняя строка должна читаться};
- комментарий внутри инициализации не рассматривается doxygen как что-то документирующее (также в текущей версии 1.8.16 это не рассматривается). Проблема будет в том, где это место, для
\todo
Было бы ясно, что он может попасть на страницу ToDo, но должен ли он также приземлиться с самой переменной? и как насчет других комментариев (инициализации теперь являются переменными). В качестве примечания при использованииSTRIP_CODE_COMMENTS=NO
комментарий также не отображается при инициализации.