c++ - 使用ctags获取类继承

标签 c++ ctags exuberant-ctags

我正在尝试让 ctags 输出 C++ 类层次结构,但它似乎难以处理多重继承(有时甚至是单一继承)。

例如:

class Fred 
: public BaseFred
{

}; 

class John: public BaseJohn,
    public BaseFred
{

};


ctags -N -x  --c++-kinds=+p --fields=+i+k CtagsTest.cpp 
Fred             class         1 CtagsTest.cpp    class Fred 
John             class         7 CtagsTest.cpp    class John: public BaseJohn,

BaseFred 在哪里?

ctags V5.8 在两种(有效)情况下都没有多重继承。

有没有更好的工具?

最佳答案

默认情况下,即使您指定了 --fields=+i 选项,-x 也不会打印“继承”。

通用 ctag ( https://ctags.io ) 可能对您有所帮助。 它有 --_xformat 选项。

[jet@living]/tmp% ~/var/ctags/ctags -x --_xformat="%N => %i" foo.cc
~/var/ctags/ctags -x --_xformat="%N => %i" foo.cc
Fred => BaseFred
John => BaseJohn,BaseFred

--_xformathttp://docs.ctags.io/en/latest/news.html?highlight=--_xformat#customizing-xref-output 中解释.

关于c++ - 使用ctags获取类继承,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16654054/

相关文章:

c++ - Qt DBus 监视器方法调用

c++ - 如何防止类型被用作结构/类中的成员变量类型?

c++ - 每个Windows服务都会调用其可执行的main函数吗?

go - golang如何使用ctags?

ctags 不理解 -e 选项(没有旺盛的标签选项)

python - 在 Vim 中使用 ctags 导航 Python 模块?

r - 带有R的旺盛标签

c++ - 基于时间的循环和基于帧的循环

c - 使用 kate editor for c dev(使用 ctags 插件)

python - ctags、vim 和 python 代码