C++ 丰富的CTAG排除了非越轨构造函数C++;
当我试图导航到类的定义时,有一个唯一的ctags条目非常方便。构造函数共享类的名称,并导致创建额外的ctags条目,这使得导航更加困难。例如,在Vim中,C++ 丰富的CTAG排除了非越轨构造函数C++;,c++,exuberant-ctags,C++,Exuberant Ctags,当我试图导航到类的定义时,有一个唯一的ctags条目非常方便。构造函数共享类的名称,并导致创建额外的ctags条目,这使得导航更加困难。例如,在Vim中,g将导航到ctag,如果有单个条目,则不会提示,但在其他情况下将强制用户手动消除歧义 我不想错过可能隐藏在某个地方的越界构造函数,但是我可以接受在主类的主体中缺少构造函数(即使主体本身相当大) 文件foo.cpp中有一个类模板 template <typename T> class LinkedList { public: T
g
将导航到ctag,如果有单个条目,则不会提示,但在其他情况下将强制用户手动消除歧义
我不想错过可能隐藏在某个地方的越界构造函数,但是我可以接受在主类的主体中缺少构造函数(即使主体本身相当大)
文件foo.cpp
中有一个类模板
template <typename T> class LinkedList {
public:
T head;
LinkedList<T> *tail;
LinkedList(T item) : head(head), tail(nullptr) {}
};
条目LinkedList foo.cpp/^LinkedList(T项)。。。f类:LinkedList
没有那么有趣
编写一个脚本来解析CTAG的输出并排除看起来像非越界构造函数的东西,或者应用某种启发式,这将是相当简单的。。。我想知道是否有更通用/传统/可接受的解决方案用于分离ctags输出
LinkedList foo.cpp /^ LinkedList(T item) : head(head), tail(nullptr) {}$/;" f class:LinkedList
LinkedList foo.cpp /^template <typename T> class LinkedList {$/;" c file:
head foo.cpp /^ T head;$/;" m class:LinkedList file:
tail foo.cpp /^ LinkedList<T> *tail;$/;" m class:LinkedList file: