百科.dev
全部条目在线工具AI 编程趋势榜开源项目技术资讯提交条目
登录
< 返回工具列表
R

rtags

> 编程语言
开源

一个客户端/服务器索引器,用于 c/c++/objc[++] 编程语言,并集成了基于 clang 的 Emacs。

1.8K stars0 点赞0 次浏览
访问官网GitHub

工具介绍

一个客户端/服务器索引器,用于 c/c++/objc[++] 编程语言,并集成了基于 clang 的 Emacs。

#+OPTIONS: ^:nil #+html: #+html: #+html:
rtags-xrefac-rtagscompany-rtagsflycheck-rtagshelm-rtagsivy-rtags
* Introduction 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" (https://clang.llvm.org/diagnostics.html). We also integrate with flymake using clang's vastly superior errors and warnings. Since RTags constantly will reindex "dirty" files you get live updates of compiler errors and warnings. Since we already know how to compile your sources we have a way to quickly bring up the preprocessed output of the current source file in a buffer. 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 (https://clang.llvm.org/). 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. Tarball releases are available here: https://github.com/Andersbakken/rtags/releases/ * TLDR Quickstart We assume you have something to generate a [[https://sarcasm.github.io/notes/dev/compilation-database.html][JSON Compilation Database]] for your project. Your build system probably has a way to generate it, or you can look at something like [[https://github.com/rizsotto/Bear][Bear]]. Build RTags #+BEGIN_SRC sh git clone --recursive https://github.com/Andersbakken/rtags.git cd rtags cmake -DCMAKE_EXPORT_COMPILE_COMMANDS=1 . make #+END_SRC Start the RTags daemon (=rdm=) #+BEGIN_SRC sh ./bin/rdm & #+END_SRC Index the RTags project, and wait until =rdm= is silent #+BEGIN_SRC sh ./bin/rc -J . #+END_SRC Open source file in =emacs= #+BEGIN_SRC sh emacs +74:34 src/rdm.cpp #+END_SRC Load =rtags.el= #+BEGIN_EXAMPLE M-: (load-file "rtags.el") RET #+END_EXAMPLE Ensure =rc= can be found #+BEGIN_EXAMPLE M-x set-variable RET rtags-path RET "../bin" RET #+END_EXAMPLE Call =rtags-find-symbol-at-point= #+BEGIN_EXAMPLE M-x rtags-find-symbol-at-point RET #+END_EXAMPLE Your location is now on the definition of =Server::instance()= * Documentation The documentation can be found in the [[https://github.com/Andersbakken/rtags/wiki][Wiki]]. * Disclaimer RTags is still under development and is not the most stable piece of software you'll ever find. We're constantly working to improve on it.

Issues· 0 开放

查看全部 Issues在 GitHub 打开

暂无开放 Issues,或尚未同步最近议题。

> 标签

C++

暂无评论,来聊聊你的看法吧

> 工具信息

发布日期2026年8月1日
最后更新2026年9月17日
分类编程语言
定价开源

> 相关工具

T
TypeScript
JavaScript 的超集,为前端与全栈提供静态类型
P
Python
通用编程语言,广泛用于 Web、数据与 AI
G
Go
Google 推出的简洁高效系统语言