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 комментарий также не отображается при инициализации.
Другие вопросы по тегам