Software-update: Doxygen 1.15.0

Doxygen logo Doxygen is een opensource programma voor Windows, Linux en macOS dat veel gebruikt wordt in softwareontwikkeling. Het kijkt naar onder meer commentaar, functies, variabelen en procedures in broncode en kan daarvan dan automatisch documentatie genereren in de vorm van HTML, PDF, Word of XML. Versie 1.15.0 is uitgekomen en de changelog voor die uitgave kan hieronder worden gevonden.

Features Minor incompatibilities
  • New option MARKDOWN_STRICT which is enabled by default, and will no longer treat ' as the end of a quoted text started with ` (e.g. `word'). If you depend on the old behavior, set this option to NO.
Bug fixes
  • issue #8788 Quotes in inline code confuse Markdown parser [view]
  • issue #11241 [BUG] FORCE_LOCAL_INCLUDES doesn't work with groups [view]
  • issue #11492 `@plantumlfile` command not recognized [view]
  • issue #11515 Some markdown does not render after non-breaking spaces [view]
  • issue #11583 The search functionality does not find items any more since SHA-1 2604e3f in large projects [view]
  • issue #11587 Page outline navigation panel Glitch [view], [view], [view]
  • issue #11590 Invalid LaTeX caused by unclosed markdown codeblocks. No warnings provided [view]
  • issue #11593 Missing links for LaTex, RTF, ... with IMPLICIT_DIR_DOCS [view], [view]
  • issue #11600 Images with read-only file attributes can fail to copy [view], [view]
  • issue #11607 Broken HTML tables [view], [view], [view]
  • issue #11614 Multiple occurrences of the same macro definition in a file result are assigned the same ID [view]
  • issue #11619 Wrong Python module separator [view]
  • issue #11621 Markdown code handling `` ` `` gets confused by unterminated `` ` `` within (introduced by 1.11) [view], [view]
  • issue #11621 Markdown code handling ``` gets confused by unterminated ` within (introduced by 1.11) [view]
  • issue #11624 Classes always ordered alphabetically [view]
  • issue #11625 Autolinking does not work with USE_MDFILE_AS_MAINPAGE [view], [view]
  • issue #11631 Doxygen generates incorrect links for nested README.md files in subfolders [view]
  • issue #11634 Doxygen Latex Tables not working correctly [view]
  • issue #11644 Plain '*'-characters in ALIAS argument get removed [view]
  • issue #11647 Backslashes not properly escaped in generated search files [view]
  • issue #11652 Support @qualifier for #define [view]
  • issue #11656 Comment block begin is handled inside C++ raw string literal with double quotes [view]
  • issue #11658 Support for auto linking to #defines identifiers within markdown code spans [view]
  • issue #11660 Conditions in HTML table seem to be broken (1.13.2 -> 1.14.0) [view]
  • issue #11661 <tt> tags for markdown headings with inline code under a topic [view]
  • issue #11663 [C++] [BUG] Constructor overload with template [view]
  • issue #11668 [BUG] Emphasis with asterisks (*) does not work when at the beginning of a line of an ALIASES argument [view]
  • issue #11674 [BUG] When the (group title) is the same as a file name the link on the groups page points to the verbatim source [view]
  • issue #11676 Final period (.) is missing in the @brief if it terminates with () or a markdown code spans [view]
  • issue #11679 Incomplete outputs on Java classes with recursive generic types [view]
  • issue #11682 Release Version 1.14.0 for Linux Segfaults/Crashes [view]
  • issue #11683 duplicates in searchdata.xml "text" field [view]
  • issue #11698 Q_PROPERTY wrongly parsed when split on multiple line after READ attribute [view]
  • issue #11699 Improve Windows performance launching external processes [view]
  • issue #11708 [BUG] Variadic macro expansion doesn't work when the arguments contain comments starting with // [view]
  • issue #11714 Source is not readable warning for excluded files [view]
  • issue #11716 [BUG] In the treeview the links to the undocumented ENUMERATION CONSTANTS don't work. [view]
  • issue #11717 [BUG] In the page-nav the undocumented ENUMERATION CONSTANTS become part of the enumerated type's name [view], [view]
  • issue #11718 [BUG] Variadic macro expansion doesn't work when the arguments contain comments starting with /*!< [view]
  • issue #11721 Doxygen internal Preprocessor cannot process digit group separator in C++ [view]
  • issue #11722 Doxygen GUI frontend cannot process value with space [view]
  • issue #11725 [BUG] Single-line comments on members passed as arguments to a macro are treated as detailed description [view]
  • issue #11740 Regression: Doxygen >= 1.11.0 no longer able to produce .chm files that link to each other using TAGFILES [view]
  • issue #11742 Handling \copydoc inside table [view]
  • issue #11748 ALIASES expansion to form `@section` key causes : warning: Invalid section id ' '; ignoring section [view]
  • issue #11751 Latex documentation with many functions causes pdflatex to hit memory limit [view]
  • issue #11755 Behavior of \tableofcontents is different in V.1.14.0 and prior version [view]
  • issue #11756 Friend constructor is recognized as member function [view]
  • issue #11758 Const parameter in implementation can confuse function signature matching [view]
  • issue #11761 Missing documentation for specialization with using declaration [view]
  • issue #11772 Test 009_bug fails [view]
  • issue #11782 Groups in XML output do not reference C++ concepts [view]
  • issue #11786 Source code misaligned when using TAB_SIZE = 8 [view]
  • issue #11787 Documentation of functions that differ in their trailing return types get merged together [view]
  • issue #11798 @ref remains in html [view]
  • issue #11799 Incorrect link for template argument [view]
  • issue #11812 How to linebreak inside long titles in a HTML description list [view] and [view]
  • Fix handling of trailing return types with `delete` and `default` [view]
  • Various table related fixes and improvements [view], [view], [view], [view], [view], [view], [view], [view], [view], and [view]
  • Spurious asterisk after preprocessing when using macros [view]
  • References with an explicit global scope, e.g ::f could still link to a member f with the same name. [view]
  • Handling of backticks in bibliography [view]
  • Handling of TIMESTAMP in html footer and header [view]
  • Handling storage class specifier `thread_local` [view], [view], [view]
  • Fixed issue causing invalid HTML due to spurious </p>. [view]
  • Fixed issue rendering Objective-C protocol classes in the HTML output [view]
  • Don't load Mathjax in source browser files [view]
  • Fix array indexing issue in markdown.cpp [view]
  • Potential memory leak [view]
  • Avoid input buffer overflow [view]
  • Prevent text showing up as formula when USE_MATHJAX=YES [view]
  • Added missing structural command to "isOtherPage" list [view]
  • Code references with an explicit global scope, e.g ::f could still link to a member f with the same name. [view]
  • Consistent use of `{CMD}` [view]
  • Further improve quote handling [view]
Improved user feedback and documentation
  • Update docs to point user to the correct version of winflexbison [view]
  • Fix spelling and grammar [view], [view], [view], [view], [view], [view], [view], [view], [view], [view], [view], [view], [view], [view], [view], and [view]
  • Spelling correction [view], [view], [view]
  • Consistency language version table between HTML and LaTeX [view]
  • Inconsistencies in language maintainers email addresses [view]
  • Incorrect warning regarding type and start of backtick type of block [view]
  • Limit warnings about unmatched */ to code blocks [view]
Refactoring and cleanup
  • qt: Default to Qt 6 instead of Qt 5 [view]
  • refactor(aliases): simplify findEndOfCommand for clarity [view]
  • refactor(alphaindextablecell): remove classDef, letter, row and column methods [view]
  • refactor(anchor): simplify addPrefixIfNeeded [view]
  • refactor(cite): simplify latexBibFiles and find [view]
  • refactor(clangparser): replace old-style nested namespaces with C++17 shorthand [view]
  • refactor(classdef): simplify insertUsedFile [view]
  • refactor(debuglex): simplify print method [view]
  • refactor(definition): simplify toDefinition and toDefinitionMutable functions [view]
  • refactor(dotrunner): simplify checkPngResult function [view]
  • refactor(doxygen): simplify haveEqualFileNames function [view]
  • refactor(doxyindexer): replace if-else statements with map lookup [view]
  • refactor(doxyindexer): update includes [view]
  • refactor(doxyparse): improve ignoreStaticExternalCall function readability [view]
  • refactor(doxyparse): remove unnecessary include [view]
  • refactor(doxyparse): replace system("rm -rf") with std::filesystem::remove_all [view]
  • refactor(doxyparse): simplify sanitizeString function [view]
  • refactor(doxysearch): modernize dirExists function [view], [view]
  • refactor(doxysearch): remove unnecessary includes [view]
  • refactor(doxysearch): replace field macros with constexpr Xapian::valueno constants [view]
  • refactor(doxysearch): replace HEX2DEC macro with function [view]
  • refactor: remove dead code [view], [view], [view], [view], [view], [view], and [view]
  • refactor(pagedef): simplify overloaded toPageDef functions [view]
  • refactor(util): add missing braces [view]
  • refactor(util): simplify writeString and writeBreak methods [view]
  • Refactoring: add constexpr/noexcept to types.h [view]
  • Refactoring: code formatting and fix coverity warnings [view]
  • Refactoring: Let alias command parsing use the new reg::Ex features [view]
  • Refactoring: pack optional params of generateDoc/validatingParseDoc into a class [view]
  • Refactoring: reducing unneeded string conversions [view]
  • Refactoring: remove old getDefs routine (dead code) [view]
  • [libmd5] Smaller code cleanups [view]
  • [mscgen] Declared some variables as pointer to const [view]
  • [mscgen] Fix copy & past bug, probably max quality was ment [view]
  • [mscgen] Make variables more local [view]
  • fix(cite): remove unnecessary semicolon [view]
  • fix(classdef): warning [cppcoreguidelines-pro-type-cstyle-cast] [view]
  • fix(datetime): warning [performance-unnecessary-copy-initialization] [view]
  • fix(debug): warning [bugprone-narrowing-conversions] [view]
  • fix(definition): remove lname variable [view]
  • fix(definition): warning [performance-unnecessary-copy-initialization] [view], [view]
  • fix(docnode): warning [clang-analyzer-deadcode.DeadStores] [view]
  • fix(dotdirdeps): warning [performance-move-const-arg] [view]
  • fix(dotnode): remove p variable [view]
  • fix(dotnode): warning [performance-unnecessary-copy-initialization] [view]
  • fix(doxygen): warning [clang-analyzer-deadcode.DeadStores] [view]
  • fix(doxygen): warning [performance-unnecessary-copy-initialization] [view]
  • fix(doxyindexer): handle negative tellg method return value [view]
  • fix(doxysearch): remove duplicate definition [view]
  • fix(doxysearch): remove inner callback, keep outer [view]
  • fix(doxysearch): use int instead of char to handle -1 properly [view]
  • fix(doxywizard): fix compiler warning [-Wdeprecated-declarations] [view], [view]
  • fix(doxywizard): fix compiler warning [-Wdeprecated-enum-enum-conversion] [view]
  • fix(doxywizard): restore AA_EnableHighDpiScaling for Qt < 6 [view]
  • fix(translator): change comment alignment [view]
  • fix(translator): change inherited class [view], [view]
  • fix(translator): correct aligning [view]
  • fix(translator): correct typo [view]
  • fix(translator): remove redundant double quote [view]
  • fix(translator): replace latin symbol to cyrillic [view]
  • fix(wizard): fix compiler warning [-Wdeprecated-enum-enum-conversion] [view]
  • perf(cite): add missing constexpr and noexcept [view]
  • perf(dir): avoid unnecessary string copy in isEmpty by using const reference [view]
  • perf(doxyindexer): avoid repeated std::regex construction [view]
  • perf(doxyindexer): avoid repeated std::string constructions for argv [view]
Development improvements
  • style: add optional .clang-format configuration [view], [view]
  • Some Fixes for MinGW-w64 [view]
  • build(CMake): turn on link-time optimizations [view]
  • Explicitly search fmt in the use_sys_fmt=ON case [view]

Doxygen

Versienummer 1.15.0
Releasestatus Final
Besturingssystemen Linux, macOS, Windows 10, Windows 11
Website Doxygen
Download https://www.doxygen.nl/download.html
Licentietype GPL

Door Bart van Klaveren

Downloads en Best Buy Guide

24-10-2025 • 10:30

6

Submitter: tszcheetah

Bron: Doxygen

Update-historie

Reacties (6)

Sorteer op:

Weergave:

Interessant, heeft iemand hier ervaring mee?

C++ lijkt first class citizen, heeft iemand dit wel eens gebruikt voor iets anders? Bijvoorbeeld Python.
Doxygen genereert in principe alleen een overzicht van je functies/methods en datatatypes. Hoe meer doxygen comments je toevoegd aan je code hoe meer je in het overzicht ziet. Het is dus vooral een API-beschrijving en niet echte overkoepelende documentatie met uitleg en voorbeelden. Maar het helpt wel. Wat ik vooral nuttig vind als ontwikkelaar is de call tree en include tree die je kunt aanzetten. Daar kun je de flow van je code en de dependencies uit halen.
hangt er vanaf hoeveel je toevoegt. Ik maak regelmatig gebruik van .dox bestanden waar extra pagina's aan doxygen worden toegevoegd, bijvoorbeeld een code standaard, architectuur beschrijving en andere "gebruikers begeleiding". Gebruikers zijn dan vooral collega's op werk, of een toekomstige versie van mijzelf voor hobbyprojekten.
Ja is best wel handig, MITS de code goed gedocumenteerd is. Op eigen code, maar ook als je code van andere krijgt. Laat ook makkelijk function flow zien, wat roept wat aan.
Ik heb het in het verleden ook nog wel eens gebruikt voor C# en zelfs PHP code. Maar Python is ook een optie.

Als je extra documentatie wil toevoegen aan dezelfde output kun je ook nog custom pages maken (met Markdown support) waaraan je bijv. voorbeelden toevoegt.
Werelds! De code is de documentatie, deze tool maakt het leesbaar voor gewone stervelingen.
Nu de code kloppers nog aanleren om de code reëel van commentaar te voorzien voor de documentatie.


Om te kunnen reageren moet je ingelogd zijn