clang-tags
is a C / C++ source code indexing tool. Unlike many other indexing
tools, 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 clang-tags
.
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 clang-tags
provides.
To go a step further, all details are in the user manual.
- Bear: a tool to generate compilation databases.
- clang-ctags: a similar project
using
libclang
to generatectags
/etags
index files. - rtags: another C/C++ code indexer based on
libclang
.rtags
is much more advanced and featureful thanclang-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:
https://github.com/ffevotte/clang-tags.el.git
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
you need.
- 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 https://www.gnu.org/licenses/.