ament_clang_tidy
==================
Checks the code style of C / C++ source files using `Clang-Tidy
`_.
Files with the following extensions are considered:
``.c``, ``.cc``, ``.cpp``, ``.cxx``, ``.h``, ``.hh``, ``.hpp``, ``.hxx``.
How to run the check from the command line?
-------------------------------------------
*Prerequisites*: ``clang-tidy-6.0``, ``clang-tools-6.0``, and ``python-yaml`` packages should
have already been installed. ``compile_commands.json`` files should have already been generated
(e.g.: workspace built with ``colcon build --mixin compile-commands``).
.. code:: sh
ament_clang_tidy [-h] [--config path] [--explain-config]
[--export-fixes EXPORT_FIXES] [--fix-errors]
[--header-filter HEADER_FILTER] [--quiet]
[--system-headers] [--jobs N]
[--packages-select [PKG_NAME [PKG_NAME ...]]]
[--xunit-file XUNIT_FILE]
[paths [paths ...]]
If ```` is a directory, it will be recursively searched for
"compile_commands.json" files (this is usually the ``build`` directory of a
``colcon`` workspace). If ```` is a file, it will be treated as a
"compile_commands.json" file.
The ``--config`` allows you to set the path to the .clang-tidy file to use.
The ``--explain-config`` option will explain the origin of the enabled
configuration checks.
The ``--header-filter`` option will accept a regex and display errors from
the specified non-system header files. To display errors from all non-system
header, use ``--header-filter='.*'``.
The ``--quiet`` option will suppress printing statistics about ignored
warnings and warnings treated as errors.
The ``--export-fixes`` option will generate a DAT file of the recorded
fixes when supplied with a file name.
When using the option ``--fix-errors`` the proposed changes are
applied in place.
The ``--system-headers`` option will display errors from all system header
files.
The ``--jobs`` option will control the number of clang-tidy jobs to run in
parallel.
The ``--packages-select`` option will filter the "compile_commands.json" files
to just those generated by specific ROS packages.
The ``--xunit-file`` option will generate a xunit compliant XML file when
supplied with a file name.
How to run the check from within a CMake ament package as part of the tests?
----------------------------------------------------------------------------
The CMake integration is provided by the package `ament_cmake_clang_tidy
`_.