我试图让ctags输出一个C ++类层次结构,但它似乎很难与多重继承(甚至有时单一继承)。
e.g:
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也不会打印“inherits”。
Universal-ctags(qazxsw poi)可以帮到你。它有qazxsw poi选项。
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
解释。