gpt4 book ai didi

c++ - clang 能代替 Exuberant Ctags 吗?

转载 作者:搜寻专家 更新时间:2023-10-31 01:02:34 26 4
gpt4 key购买 nike

为了研究新文件,我习惯于使用适当的选项运行 ctags,问题是显然这个程序不支持 C++11,我只是很好地使用它,直到我发现这个程序的开发在几年前就结束了。

现在我需要一个适用于 C++11 及更高版本的等效工具,而且我记得仅 clang 就能够输出任何给定文件的 AST,所以我是想知道前端是否具有与我以前使用 ctags 所做的类似的功能。

例如,这是您可以在 C++ 模式下使用 ctags 轻松列出的实体

ctags --list-kinds=c++
c classes
d macro definitions
e enumerators (values inside an enumeration)
f function definitions
g enumeration names
l local variables [off]
m class, struct, and union members
n namespaces
p function prototypes [off]
s structure names
t typedefs
u union names
v variable definitions
x external and forward variable declarations [off]

clang 是否能够执行类似的任务?

最佳答案

看看rtags工具。它使用 clang 重新编译你的整个项目。之后,您可以使用它来浏览源。唯一的问题是AST 是在预处理器运行后构建的,因此被禁用的代码宏不可用于导航。

该项目维护一组 elisp 绑定(bind),允许您从 emacs 控制 RTags。对于 vim 中的集成,请参阅 lyuts 的第三方项目或 Shane Harper .

关于c++ - clang 能代替 Exuberant Ctags 吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26961756/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com