-
Notifications
You must be signed in to change notification settings - Fork 256
What is RTags
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` |