Skip to content
Christian Schwarzgruber edited this page Jan 8, 2019 · 5 revisions

RTags is a client/server application that indexes C/C++ code and keeps a persistent file-based database of references, declarations, definitions, symbolnames etc. There’s also limited support for ObjC/ObjC++. It allows you to find symbols by name (including nested class and namespace scope). Most importantly we give you proper follow-symbol and find-references support. We also have neat little things like rename-symbol, integration with clang’s “fixits” (Clang Diagnostics).

While existing taggers like GNU global, cscope, etags, ctags etc do a decent job for C they often fall a little bit short for C++. With its incredible lexical complexity, parsing C++ is an incredibly hard task and we make no bones about the fact that the only reason we are able to improve on the current tools is because of clang (LLVM/Clang). RTags is named RTags in recognition of Roberto Raggi on whose C++ parser we intended to base this project but he assured us clang was the way to go. The name stuck though.

This project comes with an Emacs front-end package for RTags called rtags. We also provide several Emacs packages for integration with other packages. Those are, ac-rtags, company-rtags, flycheck-rtags, helm-rtags, and ivy-rtags.

Package Integrates With Application
ac-rtags auto-complete Code completion
company-rtags company Code completion
flycheck-rtags flycheck Error Highlighting/Navigation
helm-rtags helm For code navigation, e.g `rtags-find-references`
ivy-rtags ivy For code navigation, e.g `rtags-find-references`
Clone this wiki locally