forked from OSchip/llvm-project
[clang-tidy] Reshuffled paragraphs a bit, added contents.
llvm-svn: 260100
This commit is contained in:
parent
7193d9fa95
commit
c1587dcf4d
|
@ -2,11 +2,14 @@
|
||||||
Clang-Tidy
|
Clang-Tidy
|
||||||
==========
|
==========
|
||||||
|
|
||||||
|
.. contents::
|
||||||
|
|
||||||
|
See also:
|
||||||
|
|
||||||
.. toctree::
|
.. toctree::
|
||||||
:maxdepth: 1
|
:maxdepth: 1
|
||||||
|
|
||||||
checks/list
|
The list of clang-tidy checks <checks/list>
|
||||||
|
|
||||||
|
|
||||||
:program:`clang-tidy` is a clang-based C++ linter tool. Its purpose is to
|
:program:`clang-tidy` is a clang-based C++ linter tool. Its purpose is to
|
||||||
provide an extensible framework for diagnosing and fixing typical programming
|
provide an extensible framework for diagnosing and fixing typical programming
|
||||||
|
@ -229,26 +232,29 @@ checks, but its power is in the ability to easily write custom checks.
|
||||||
Checks are organized in modules, which can be linked into :program:`clang-tidy`
|
Checks are organized in modules, which can be linked into :program:`clang-tidy`
|
||||||
with minimal or no code changes in clang-tidy.
|
with minimal or no code changes in clang-tidy.
|
||||||
|
|
||||||
``add_new_check.py`` is a script to automate the process of adding a new check,
|
Checks can plug into the analysis on the preprocessor level using `PPCallbacks`_
|
||||||
it will create the check, update the CMake file and create a test.
|
or on the AST level using `AST Matchers`_. When an error is found, checks can
|
||||||
|
|
||||||
``rename_check.py`` does what the script name suggest, renames an existsing
|
|
||||||
check.
|
|
||||||
|
|
||||||
Checks can plug the analysis on the preprocessor level using `PPCallbacks`_ or
|
|
||||||
on the AST level using `AST Matchers`_. When an error is found, checks can
|
|
||||||
report them in a way similar to how Clang diagnostics work. A fix-it hint can be
|
report them in a way similar to how Clang diagnostics work. A fix-it hint can be
|
||||||
attached to a diagnostic message.
|
attached to a diagnostic message.
|
||||||
|
|
||||||
To find out what matchers you can add, we recommend using :program:`clang-query`,
|
|
||||||
it's a tool is for interactive exploration of the Clang AST using AST matchers.
|
|
||||||
|
|
||||||
The interface provided by clang-tidy makes it easy to write useful and precise
|
The interface provided by clang-tidy makes it easy to write useful and precise
|
||||||
checks in just a few lines of code. If you have an idea for a good check, the
|
checks in just a few lines of code. If you have an idea for a good check, the
|
||||||
rest of this document explains how to do this.
|
rest of this document explains how to do this.
|
||||||
|
|
||||||
|
There are a few tools particularly useful when developing clang-tidy checks:
|
||||||
|
* ``add_new_check.py`` is a script to automate the process of adding a new
|
||||||
|
check, it will create the check, update the CMake file and create a test;
|
||||||
|
* ``rename_check.py`` does what the script name suggest, renames an existsing
|
||||||
|
check;
|
||||||
|
* :program:`clang-query` is invaluable for interactive prototyping of AST
|
||||||
|
matchers and exploration of the Clang AST;
|
||||||
|
* `clang-check`_ with the ``-ast-dump`` (and optionally ``-ast-dump-filter``)
|
||||||
|
provides a convenient way to dump AST of a C++ program.
|
||||||
|
|
||||||
|
|
||||||
.. _AST Matchers: http://clang.llvm.org/docs/LibASTMatchers.html
|
.. _AST Matchers: http://clang.llvm.org/docs/LibASTMatchers.html
|
||||||
.. _PPCallbacks: http://clang.llvm.org/doxygen/classclang_1_1PPCallbacks.html
|
.. _PPCallbacks: http://clang.llvm.org/doxygen/classclang_1_1PPCallbacks.html
|
||||||
|
.. _clang-check: http://clang.llvm.org/docs/ClangCheck.html
|
||||||
|
|
||||||
|
|
||||||
Choosing the Right Place for your Check
|
Choosing the Right Place for your Check
|
||||||
|
|
Loading…
Reference in New Issue