Lines Matching +full:clang +full:- +full:tools
5 Clang Tools are standalone command line (and potentially GUI) tools
7 Clang as their compiler. These tools provide developer-oriented
11 Only a couple of the most basic and fundamental tools are kept in the
12 primary Clang Subversion project. The rest of the tools are kept in a
13 side-project so that developers who don't want or need to build them
14 don't. If you want to get access to the extra Clang Tools repository,
15 simply check it out into the tools tree of your Clang checkout and
17 LLVM/Clang checkout:
19 - With Subversion:
21 - ``cd llvm/tools/clang/tools``
22 - ``svn co http://llvm.org/svn/llvm-project/clang-tools-extra/trunk extra``
24 - Or with Git:
26 - ``cd llvm/tools/clang/tools``
27 - ``git clone http://llvm.org/git/clang-tools-extra.git extra``
29 This document describes a high-level overview of the organization of
30 Clang Tools within the project as well as giving an introduction to some
31 of the more important tools. However, it should be noted that this
32 document is currently focused on Clang and Clang Tool developers, not on
33 end users of these tools.
35 Clang Tools Organization
38 Clang Tools are CLI or GUI programs that are intended to be directly
40 Clang developers, although they are hopefully useful to C++ developers
41 who happen to work on Clang, and we try to actively dogfood their
43 infrastructure for building a standalone tool based on Clang, core
44 shared logic used by many different tools in the form of refactoring and
45 rewriting libraries, and the tools themselves.
47 The underlying infrastructure for Clang Tools is the
50 common refactoring and rewriting toolkit-style library is also part of
53 A few Clang Tools are developed along side the core Clang libraries as
55 the tools are developed in a side repository to provide easy separation
58 find good APIs for libraries as they are lifted out of a few tools and
59 into the core Clang library set.
61 Regardless of which repository Clang Tools' code resides in, the
62 development process and practices for all Clang Tools are exactly those
63 of Clang itself. They are entirely within the Clang *project*,
66 Core Clang Tools
69 The core set of Clang tools that are within the main repository are
70 tools that very specifically complement, and allow use and testing of
71 *Clang* specific functionality.
73 ``clang-check``
74 ---------------
77 Clang tool with the basic Clang diagnostics by syntax checking specific files
78 in a fast, command line interface. It can also accept flags to re-display the
80 an IDE or editor. Furthermore, it can be used in fixit-mode to directly apply
81 fixit-hints offered by clang. See :doc:`HowToSetupToolingForLLVM` for
82 instructions on how to setup and used `clang-check`.
84 ``clang-format``
85 ----------------
87 Clang-format is both a :doc:`library <LibFormat>` and a :doc:`stand-alone tool
89 according to configurable style guides. To do so, clang-format uses Clang's
91 the whitespace around those tokens. The goal is for clang-format to serve both
93 refactoring tools, e.g. to do a reformatting of all the lines changed during a
97 Extra Clang Tools
100 As various categories of Clang Tools are added to the extra repository,
102 and features of the tools for other tool developers; each tool should
103 provide its own user-focused documentation.
105 ``clang-tidy``
106 --------------
108 `clang-tidy <http://clang.llvm.org/extra/clang-tidy/>`_ is a clang-based C++
109 linter tool. It provides an extensible framework for building compiler-based
110 static analyses detecting and fixing bug-prone patterns, performance,
114 Ideas for new Tools
117 * C++ cast conversion tool. Will convert C-style casts (``(type) value``) to
120 * Non-member ``begin()`` and ``end()`` conversion tool. Will convert
127 .. code-block:: c++
139 .. code-block:: c++
155 <http://www.open-std.org/jtc1/sc22/wg21/docs/papers/2012/n3421.htm>`_).
158 .. code-block:: c++
164 .. code-block:: c++