-
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` |