【发布时间】:2015-01-13 17:16:03
【问题描述】:
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 是否能够执行类似的任务?
【问题讨论】:
-
exuberant ctags 不支持你需要的 C++11 哪些特性?虽然有一段时间没有发布 ctags,但开发/支持仍在进行中 - the offical SourceForge tree 的最新更改仅在一周前。
-
@ChrisDodd 我试图在一个大部分模板化的源文件中列出一些函数和类,但它什么也没显示。官方网站上的最后一次更新是从 2009 年开始。根据您的评论,我检查了
ctags --version,并且我的构建基于 svn 主干,所以我一定做错了什么,可能它不支持模板?我不确定这里可能有什么问题。 -
2016 年更新: 还有另一个项目
universal-ctags说要继续在 github 上开发 exuberant-ctags。在这个问题的背景下,请特别参阅新的c/c++parser。
标签: c++ c++11 clang llvm exuberant-ctags