1

我试图让 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 在两种(有效)情况下都错过了多重继承。

有没有更好的工具?

4

1 回答 1

0

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

Universal-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中有解释。

于 2019-04-05T16:42:31.483 回答