Helper tools and scripts

Since the number of tools/scripts is ever growing, I've divided them into a number of categories:

Doxygen extensions

Nassi shneiderman diagrams

Eckard Klotz has started a projected called Moritz. It generates Nassi-Shneiderman diagramms of functions and methods in C/C++ sources as HTML files, which could be included in software documentation or simply viewed in a web browser.


Filters to add support for other languages

Perl

Bret Jordan has written a filter for Perl. Another simpler filter was written by Marc Adkins to allow Perl with POD comments to be processed by doxygen. There is also a revised version by Thomas Aeby.

Javascript

For those working with JavaScript it may be good to know that Jörg Schaible has written a perl script to let doxygen deal with it. Here are the pointers:

A different approach is outlined by Xie Wenjie.

Object Pascal

Darren Bowles has started a project Pas2dox which converts Object Pascal into a C++ style syntax, that Doxygen can then happily parse. The project's goal is to allow doxygen to be used for Delphi/Kylix projects.

Python

Matthias Baas has writen a filter for converting Python code into something doxygen can handle. Note Doxygen now also has native support for Python.

Visual Basic

Mathias Henze wrote an awk script that converts Visual Basic code into somthing doxygen understands. The package includes a small batch-wrapper. To use it, one has to put following line for the config-option "INPUT_FILTER":

C:/path/to/filer/tools/vbfilter.bat C:\path\to\filter\tools

Some Unix tools like sh.exe, gawk.exe and tee.exe are required to be available under the supplied path. They can be downloaded here.

An alternative filter for Visual Basic is provided by Basti Grembowietz. It requires python and comes with the following usage instructions:

The VB-Files have to be prepared the following way:
  '* <comments directly handed to doxygen>
  <vb- Function / Sub / Member>
For shorter usage also this is allowed:
  <vb-member (recommended)> '* <doxygen-comment>
For comments adressing to a class / module, '! must be used.

Giovanni De Cicco wrote an Add-in called VBDoxyAddin for VB6 developers based on the script of Mathias.

For the newer VB.NET an awk based filter was written by Vsevolod Kukol.

MatLab

Ben Heasly has written a filter for doxygen that converts MatLab scripts (including the new object oriented features) into something doxygen can understand. An alternative filter is provided by Ian Martins. There is also one by Fabrice which can be found on Matlab Central.

Pro*C

Darren Bowles has created Proc2Dox, which is a pre-processor addon for Doxygen to add support for Pro*C code.

TCL

Greg has written a TCL filter called Tcl-Dox that allows Doxygen to be used on TCL code. Note that as of doxygen version 1.7.5 TCL support is built-in.

Assembly

Bogdan Drozdowski has written a filter to convert assembly into C like code which doxygen can then parse.

Lua

Alec Chen has written a filter to make doxygen parse Lua code. Simon Dales has another lua filter to do the same.

GLSL Shader

Sebastian Schaefer has a written a filter to make doxygen parser the GLSL shader language.

Qt QML

Aurélien Gâteau has written a filter for Qt's QML files.


Increase ease of use

DoxyAssist

ChEeTaH wrote DoxyAssist. This tool can use a template Doxygen configuration file and adjust its settings for specific projects and sub projects it manages. For each (sub) project Doxygen is run separately, resulting in separate documentation sets for each sub project. It will combine these parts back for the Qt Assistant, making sure the appropriate filters are available. Qt Assistant can then be used to view the documentation as a whole, or easily limit the view to a subproject. There is special support for Drupal, for which all contributed modules are automatically discovered and added as subproject (see this demonstration).

Eclipse

Eclox is a Doxygen frontend plugin for Eclipse.

Visual studio

If you use Visual Studio .NET have a look at Steve King's set of addins. Greg Engelstad has written a perl script to parse a Visual Studio .NET solution file (.sln) and run Doxygen for each separate project contained therein.

Jason Williams has written an Addin for Visual Studio 2005 & 2008 which is able to auto-generate doxygen (or DocXml) style comments from most code elements (file, namespace, class, struct, enum, function, etc). It parses C, C++, C# and Java code to produce fully formed doxygen comments, and can update those comments if the code element is changed, and word-wrap the descriptions to keep them tidy. It uses a set of user-editable rules to provide automatic descriptions of elements, parameters and return codes, minimising the effort involved in generating doc comments.

jgallardo has also written a Addin for Visual Studio that eases browsing the documentation generated by doxygen.

An addin for Visual Studio 2005 called DoxyComment was created by Troels Gram. It is designed to assist you in inserting context sensitive comment blocks into C/C++ source files. DoxyComment also comes with an xslt template that lets you generate documentation like the MSDN library.

If you are using Microsoft's Developer Studio 6.0, an add-in called DoxBar is available that can be used to run doxygen from within Developer Studio and to search through the generated HTML help files.
Note: I do not have enough time to maintain DoxBar myself anymore, so I moved DoxBar to sourceforge. Olivier Sannier has introduced a number of improvements to DoxBar. If you too want to join the development team, please register as a user at sourceforge and mail me your user name.

Bernhard Nowara has written a profile editor, which is a doxywizard-like tool for Windows. He also created an enhanced version of DoxBar that includes his editor and some macros for Visual Studio to ease the preparation of the source code for Doxygen. These changed have been merged into more recent version of doxygen by Olivier Sannier.

FeinSoftware has released a development tool for Microsoft Visual Studio .NET (Visual C++) called CommentMaker, which creates customizable function header that developers can adjust to most specific documentation requirements. By default it generates doxygen compatible comments.

TechPubs Tools

Glenn Maxey has released The TechPubs Tools (TPT) which wraps around any number of mini-HTML systems and creates a comprehensive HTML system complete with table of contents and an auto-generated index/concordance. TPT consists of Perl programs, UNIX shell scripts, and master template files (HTML).

Tree view applet

Those having performance problems with the TREEVIEW option, could try this script written by Glenn Maxey along with this (commercial) Java applet.

Doxygen Studio

Pascal Binggeli is working on an integrated development environment for Doxygen called DoxygenStudio. It will be for Windows only. You can already try out a preview version.

MSDN integration

For those using Windows and wanting to integrate the compressed HTML generated by doxygen into MSDN look at this MSDN integrator utility.

Configure via Perl

Richard Y. Kim has written a perl module to use/configure doxygen more easily from perl scripts.

Ant task

If you're into Ant have a look at Karthik A Kumar's Ant task object's for doxygen.

VXL doxygen scripts

The VXL project produced some code to manage documentation production for multiple doxygen runs over 10s of libraries, including dealing with all dependencies, multiple CVS repositories, maintaining directory structure, and incorporating texinfo overview documentation.

Automake/autoconf integration

Oren Ben-Kiki shows how to integrate doxygen with Automake and Autoconf.

Embed HTML

Wilfred Nilsen has written a tool (for windows) to combine multiple HTML files and embed them in a single executable. This could be used in combination with the doxygen's HTML output.

Trac plugin

If you are using Trac to track your issue then have a look at this plugin to embed doxygen documentation.

CMake integration

Stefan Majewsky has written a blog entry about integrating doxygen in a CMake based project.

DoxyGrouper

Raja Kajiev write a tool called DoxyGrouper which can help to include items into groups on directory structure basis.

qtres2dox

Markus Schwartz write a tool called qtres2dox which can generate an input file for Doxygen from .ui and .qrc files.


Editor addons

Visual Studio

Alexander Manenko wrote EnhancedCommentsCpp which is a Visual Studio Editor extension that highlights Doxygen documentation tags inside C++ comments.

VIM

If VIM is your favourite editor (it is mine!), Michael Geddes wrote a syntax highlighing script on top of C/C++/IDL/Java. Ralf Schandl also has a some macros and syntax highlighting files for you. Emilio Riva sent yet an alternative vim highlighting file.

Emacs

If you are using the Emacs editor, take a look at epydoc-el which is a lisp script to simplify writing doxygen comments.

Ryan Sammartino maintains a project called Doxymacs at sourceforge, which produced an elisp package to make using Doxygen from within {X}Emacs easier.

UltraEdit

If UltraEdit is your editor of choice, take a look at Dominik Stadler's script for information on how to enable syntax highlighting for doxygen comment blocks.

TSE Pro/32

For SemWare's TSE Pro/32 editor Howard Kapustein has provided syntax definition files for doxygen style comment blocks.

Delphi/C++ Builder

If you use Delphi or C++ Builder in combination with GExperts you can use this XML macro written by Miguel A. Richard to serve as a template for comments in your code.


Migration from other doc tools

Cocoon

If you want to convert Cocoon (or C++) style comments into Qt-style comments on the fly you might want to try the filterComments.pl script written by Paul S. Strauss. Use it in combination with doxygen's INPUT_FILTER configuration option.

AutoDuck

Martin Slater wrote a python script duck2dox that can be used to convert AutoDuck style comments to doxygen comments. Steven Blackburn has written an alternative filter written in C++. Brian Szuter has written yet another filter after trying the other filters and finding them inadequate for his needs.

Gtk-doc

Jon Foster has written a filter to convert gtk-doc comments to Doxygen.


XML/XSLT examples

Breathe

Micheal Jones has written an extension to reStructuredText and Sphinx to be able to read and render the Doxygen XML output.

C# doxmlparser

Baneu Mihai has written a wrapper around doxygen's xml parser (found in addon/doxmlparser) to make it accessible from C#.

Doxyclean

Matt Ball has written a script called doxyclean to convert doxygen's output into something that closer resembles Apple's own documentation.

Doxygen.NET

Thomas Hansen and Kariem Ali have written Doxygen.NET which provides .NET object wrappers for the XML output generated by Doxygen.

Dox

Narech Koumar has written a tool called Dox which reads the XML output produced by doxygen and turns that into formatted HTML whose style resembles that of Javadoc's.

XSLT examples

If you want to see how you can use XSLT to transform doxygen's XML output into something else (HTML/CHM in this case), have a look at Chelpanov's example. It has some limitations though:

  • C++ is not supported
  • It is slower than using Doxygen directly or writing a SAX based transformation in C from XML to HTML.
  • It support the CHM format only.
  • It works on Windows platfrom only.
  • Only some of the features of doxygen are supported.

and some additional requirements:

  • HTML Help WorkShop
  • Microsoft .Net Framework 1.1

If you have comments or suggestions please send them to Chelpanov (remove the the NO_SPAM part from the mail address).

Bo Peng wrote a small XSLT script to extract information for SWIG/Python interfaces.