clang-tags is a C / C++ source code indexing tool. Unlike many other indexing
clang-tags relies on the clang compiler (via
the libclang interface) to analyse and index the source code base.
Its main features are:
- generating compilation databases in a build-system-agnostic way,
- indexing a C/C++ project source files,
- finding the definition location of an identifier in a source file,
- finding all uses of a definition in the project sources.
The quick start guide
is a good place to get a quick look at
clang-tags various features.
Please see the user manual for a
complete description of
clang-tags features and a usage documentation.
The installation guide
should provide all information to build and install
The quick start guide
should get you started in a few minutes. It is also a good starting point to get
a quick overview of the features
To go a step further, all details are in the user manual.
- Bear: a tool to generate compilation databases.
- clang-ctags: a similar project
- rtags: another C/C++ code indexer based on
rtagsis much more advanced and featureful than
clang-tags, its only (minor) drawback being its long list of dependencies.
- clangd (proposal / design document): a Clang-based IDE-like service (still in design phase AFAIK).
- libclang API documentation
- Eli Bendersky's blog post on C++ parsing using libclang's Python bindings
- Doug Gregor's presentation on libclang
- Manuel Klimek's presentation on clang-based IDE-like tools
If you make improvements to this code or have suggestions, please do not hesitate to fork the repository or submit bug reports on github. The repository's URL is:
A doxygen-generated documentation targeted at developers is available
here. Please do not hesitate to
consult it, should you need help implementing in
clang-tags the killer feature
- Cameron White largely improved SQLite performances
Copyright (C) 2013 François Févotte.
This program is free software: you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation, either version 3 of the License, or (at your option) any later version.
This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details.
You should have received a copy of the GNU General Public License along with this program. If not, see http://www.gnu.org/licenses/.