Doxygen не генерирует документацию для внутренних функций C#

Я разработал функцию реестра "класс" для Ketarin, и я использую Doxygen для Windows, чтобы документировать ее.

Когда я создаю документацию (используя Doxywizard), следуя инструкциям на: http://www.tech-coder.com/2016/12/generate-html-documentation-using.html

Это только две первые функции и больше ничего. Я попытался установить флажки в столбце "Сборка" на вкладке "Эксперт", но безрезультатно.

Код (включая документацию, в которой показаны только две функции) можно найти на GitHub по адресу https://github.com/coldscientist/RegClassCS

Например, внутренний метод, показанный ниже, обычно отображается в документах:

/// <summary>
/// Creates a new subkey or opens an existing subkey for write access.
/// </summary>
/// <param name="rootName">The HKEY to open.</param>
/// <param name="keyName">The name or path of the subkey to create or open. This string is not case-sensitive.</param>
/// <returns>The newly created subkey, or false if the operation failed. If a zero-length string is specified for subkey, the current RegistryKey object is returned.</returns>
Func<string, string, bool> RegCreateKey = new Func<string, string, bool>( (rootName, keyName) =>
    {
        try
        {
            Ketarin.Forms.LogDialog.Log("RegCreateKey(" + rootName + ", " + keyName + ")");

            Microsoft.Win32.RegistryKey localKey = RegOpenSubKey(rootName);
            // localKey = localKey.OpenSubKey(keyName, writable: true);

            using (localKey)
            {
                RegCreateKey:
                if (localKey != null)
                {
                    localKey.CreateSubKey( keyName );
                }
                else
                {
                    // Abort("Key " + rootName + @"\" + keyName + " not found.");

                    goto RegCreateKey;
                }
            }
        }
        catch (Exception ex)
        {
            // Abort(ex.ToString());
            return false;
        }

        return true;
    });

Но следующий метод (ниже этого) не задокументирован:

/// <summary>
/// Deletes a subkey and any child subkeys recursively. No warning will be provided.
/// </summary>
/// <param name="rootName">The HKEY to open.</param>
/// <param name="subKeyName">The subkey to delete. This string is not case-sensitive.</param>
/// <returns>Returns false if the operation failed.</returns>
Func<string, string, bool> RegDeleteKey = new Func<string, string, bool>( (rootName, subKeyName) =>
    {
        try
        {
            Ketarin.Forms.LogDialog.Log("RegDeleteKey(" + rootName + ", " + subKeyName + ")");

            string keyName = subKeyName.Substring(0, subKeyName.LastIndexOf(@"\"));
            string subTreeName = subKeyName.Substring(subKeyName.LastIndexOf(@"\")+1);

            Microsoft.Win32.RegistryKey localKey = RegOpenSubKey(rootName);
            localKey = localKey.OpenSubKey(keyName, writable: true);

            using (localKey)
            {
                if (localKey != null)
                {
                    localKey.DeleteSubKeyTree(subTreeName);
                }
            }
        }
        catch (Exception ex)
        {
            return false;
            // Abort(ex.ToString());
        }

        return true;
    });

Я подозреваю, что это связано с тем, как я его кодировал (код компилируется нормально). Возможно, отсутствует запятая или какой-то формат кода, из-за которого Doxygen пропускает сам себя.

Вот вывод Doxygen, если он помогает:

Searching for include files...
Searching for example files...
Searching for images...
Searching for dot files...
Searching for msc files...
Searching for dia files...
Searching for files to exclude
Searching INPUT for files to process...
Searching for files in directory S:/Applications/Scripts/RegClassCS
Searching for files in directory S:/Applications/Scripts/RegClassCS/doc
Reading and parsing tag files
Parsing files
Reading S:/Applications/Scripts/RegClassCS/README.md...
Preprocessing S:/Applications/Scripts/RegClassCS/RegClass.cs...
Parsing file S:/Applications/Scripts/RegClassCS/RegClass.cs...
Building group list...
Building directory list...
Building namespace list...
Building file list...
Building class list...
Associating documentation with classes...
Computing nesting relations for classes...
Building example list...
Searching for enumerations...
Searching for documented typedefs...
Searching for members imported via using declarations...
Searching for included using directives...
Searching for documented variables...
Building interface member list...
Building member list...
Searching for friends...
Searching for documented defines...
Computing class inheritance relations...
Computing class usage relations...
Flushing cached template relations that have become invalid...
Computing class relations...
Add enum values to enums...
Searching for member function documentation...
Creating members for template instances...
Building page list...
Search for main page...
Computing page relations...
Determining the scope of groups...
Sorting lists...
Freeing entry tree
Determining which enums are documented
Computing member relations...
Building full member lists recursively...
Adding members to member groups.
Computing member references...
Inheriting documentation...
Generating disk names...
Adding source references...
Adding xrefitems...
Sorting member lists...
Computing dependencies between directories...
Generating citations page...
Counting data structures...
Resolving user defined references...
Finding anchors and sections in the documentation...
Transferring function references...
Combining using relations...
Adding members to index pages...
Generating style sheet...
Generating search indices...
Generating example documentation...
Generating file sources...
Generating file documentation...
Generating docs for file README.md...
Generating docs for file RegClass.cs...
Generating page documentation...
Generating docs for page md_README...
Generating group documentation...
Generating class documentation...
Generating namespace index...
Generating graph info page...
Generating directory documentation...
Generating index page...
Generating page index...
Generating module index...
Generating namespace index...
Generating namespace member index...
Generating annotated compound index...
Generating alphabetical compound index...
Generating hierarchical class index...
Generating member index...
Generating file index...
Generating file member index...
Generating example index...
finalizing index lists...
writing tag file...
lookup cache used 2/65536 hits=2 misses=2
finished...
S:/Applications/Scripts/RegClassCS/README.md:3: warning: Unexpected html tag  found within  context
*** Doxygen has finished

1 ответ

Я сдаюсь и перехожу на Natural Docs. Но я замечаю, что после внутренних функций, которые ранее не печатались Doxygen, он обнаружил внутренние методы, которых нет в моем коде (но, очевидно, он получен внутренними методами args - см. RegSetValue ниже). Если я удаляю "RegCreateKey", метод ниже ("строка") тоже удаляется (очевидно). Возможно, в Doxygen происходит то же самое, но вместо продолжения он прекращает обработку файла (я в этом не уверен). Я просто публикую это, чтобы помочь другим людям и Doxygen (возможно) проверить это на будущее.

На Natural Docs я могу скрыть эти нежелательные внутренние методы (которых на самом деле не существует), используя arg -do при создании документов, поэтому он показывает только документированные внутренние методы.

Другие вопросы по тегам