Supported Languages

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

DocumentsInhertance
Diagrams
Includes Javadoc
and XML Comments
ActionScriptCommented CodeCommented Classes-
AdaCommented Code--
AssemblyCommented Code--
CCommented Code--
C++Commented CodeCommented Classes-
C#All CodeAll ClassesYes1
ColdFusionCommented Code--
Fortran
free-format only
Commented Code--
JavaCommented CodeCommented Classes-
JavaScriptCommented Code--
LuaCommented Code--
MakefilesCommented Code--
MSBuild FilesCommented Code--
Pascal/DelphiCommented Code--
PerlCommented Code--
PHPCommented CodeCommented Classes-
PL/SQLCommented Code--
PowerBuilderCommented Code--
PowerShellCommented Code--
PythonCommented CodeCommented Classes-
RCommented Code--
RubyCommented CodeCommented Classes2-
SystemVerilogCommented CodeCommented Classes-
TclCommented Code--
Text FilesCommented Code--
Visual BasicCommented Code--
Any languages
you define
Commented CodeMaybe3-
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.