Supported Languages

Natural Docs supports 21 programming languages. You can add more just by editing a configuration file.

| Documents | Inhertance Diagrams | Includes Javadoc and XML Comments
--- | --- | --- | ---
ActionScript | Commented Code | Commented Classes | -
Ada | Commented Code | - | -
Assembly | Commented Code | - | -
C | Commented Code | - | -
C++ | Commented Code | Commented Classes | -
C# | All Code | All Classes | Yes1
ColdFusion | Commented Code | - | -
Fortran free-format only | Commented Code | - | -
Java | Commented Code | Commented Classes | -
JavaScript | Commented Code | - | -
Lua | Commented Code | - | -
Makefiles | Commented Code | - | -
Pascal/Delphi | Commented Code | - | -
Perl | Commented Code | - | -
PHP | Commented Code | Commented Classes | -
PL/SQL | Commented Code | - | -
Python | Commented Code | Commented Classes | -
R | Commented Code | - | -
Ruby | Commented Code | Commented Classes2 | -
Tcl | Commented Code | - | -
Text Files | Commented Code | - | -
Visual Basic | Commented Code | - | -
Any languages you define | Commented Code | Maybe3 | -
1 Most tags are supported. See notes on Javadoc and XML compatibility. 2 Only classes, not modules with mixins. 3 Commented classes in languages that have a C++ or Java-like inheritance syntax.

Language Support

Some languages like C# have full support, which means Natural Docs can read and interpret its code. This allows it to document all classes, functions, and other code elements even if you didn't write comments for them. It also means it can incorporate any pre-existing Javadoc or Microsoft XML comments into your documentation, and there's some other benefits as well.

Full language support requires a custom parser to be written for each language. Natural Docs 2.0 is a new codebase so right now only C# has one. More will be coming in future releases.

All other languages have basic support, which means Natural Docs can only find the things you comment in its native format. You need to write a Natural Docs comment for every class or function you want to appear in the documentation. On the plus side, this system allows you to easily add more languages just by editing a configuration file.

You can read more about full and basic language support here.