===================
Clang-Doc
===================

.. contents::

.. toctree::
   :maxdepth: 1

:program:`clang-doc` is a tool for generating C and C++ documenation from 
source code and comments. 

The tool is in a very early development stage, so you might encounter bugs and
crashes. Submitting reports with information about how to reproduce the issue
to `the LLVM bugtracker <https://bugs.llvm.org/>`_ will definitely help the
project. If you have any ideas or suggestions, please to put a feature request
there.

Use
===

:program:`clang-doc` is a `LibTooling
<https://clang.llvm.org/docs/LibTooling.html>`_-based tool, and so requires a
compile command database for your project (for an example of how to do this 
see `How To Setup Tooling For LLVM
<https://clang.llvm.org/docs/HowToSetupToolingForLLVM.html>`_).

By default, the tool will run on all files listed in the given compile commands
database:

.. code-block:: console

  $ clang-doc /path/to/compile_commands.json

The tool can also be used on a single file or multiple files if a build path is
passed with the ``-p`` flag.

.. code-block:: console

  $ clang-doc /path/to/file.cpp -p /path/to/build

Output
======

:program:`clang-doc` produces a directory of documentation. One file is produced
for each namespace and record in the project source code, containing all
documentation (including contained functions, methods, and enums) for that item.

The top-level directory is configurable through the ``output`` flag:

.. code-block:: console

  $ clang-doc -output=output/directory/ compile_commands.json

Configuration
=============

Configuration for :program:`clang-doc` is currently limited to command-line options.
In the future, it may develop the ability to use a configuration file, but no such
efforts are currently in progress.

Options
-------

:program:`clang-doc` offers the following options:

.. code-block:: console

  $ clang-doc --help
  USAGE: clang-doc [options] <source0> [... <sourceN>]

  OPTIONS:

  Generic Options:

    -help                      - Display available options (-help-hidden for more)
    -help-list                 - Display list of available options (-help-list-hidden for more)
    -version                   - Display the version of this program

  clang-doc options:

    --doxygen                   - Use only doxygen-style comments to generate docs.
    --extra-arg=<string>        - Additional argument to append to the compiler command line
    --extra-arg-before=<string> - Additional argument to prepend to the compiler command line
    --format=<value>            - Format for outputted docs.
      =yaml                     -   Documentation in YAML format.
      =md                       -   Documentation in MD format.
      =html                     -   Documentation in HTML format.
    --ignore-map-errors         - Continue if files are not mapped correctly.
    --output=<string>           - Directory for outputting generated files.
    -p=<string>                 - Build path
    --project-name=<string>     - Name of project.
    --public                    - Document only public declarations.
    --repository=<string>       -
                                  URL of repository that hosts code.
                                  Used for links to definition locations.
    --source-root=<string>      -
                                  Directory where processed files are stored.
                                  Links to definition locations will only be
                                  generated if the file is in this dir.
    --stylesheets=<string>      - CSS stylesheets to extend the default styles.

The following flags shoud only be used if ``format`` is set to ``html``:
- ``repository``
- ``source-root``
- ``stylesheets``
