emacs无法跳转父类中的函数,如何解决
发表于 : 2011-04-07 16:38
本人主要用cedet进行c++编程,发现如果调用一个类A的函数,比如f1(),但是这个函数是在这个类的父类B中,我发现emacs对于这种情况没有办法semantic,有没有人知道这种情况怎么办?
具体就是
class B{
puublic:
void f1();
};
class A:public B{
public:
void f2();
.......
};
当生成一个A的类 a 时,比如我想调用a.f2()时,当我敲入.时emacs能够给出f2,但是无法给出f1,不知道大家怎么解决的?
在这里感谢2楼提出的方法,本人也大致看了一下auto-complete的manual,发现这个插件只是针对当前buffer和已有的dictionary来进行解析,也就是说上面的A类和B类如果是本人自己编写的,auto-complete能给出对应的函数列表,因为auto-complete能将写入的函数加入到对应的dictionary当中。那么现在的问题是,如果我现在新导入一个c++类库,比如本人目前正在用Qt编程,那么它的基本类库肯定不会自动加入到auto-complete的dictionary中,所以auto-complete还是无法给出父类的函数。(也许本人理解有误,还请各位大虾指正)。
举个详细的例子,比如QApplication是从QCoreApplication当中继承过来的,其中的postEvent是QCoreApplication的一个函数,如果我用QApplication,emacs就无法找到postEvent,尽管我已经加载了Qt对应的include列表。在这点上eclipse就能够准确无误的给出,本人绝对不是来推荐eclipse的,只是想知道emacs是不是也有相应的插件能够给出准确的函数列表。当然我也不得不承认,如果类是自己编写的,那么auto-complete还是能给出父类的函数。如果哪位大虾知道如何解决,请告诉我,在下感谢万分!
具体就是
class B{
puublic:
void f1();
};
class A:public B{
public:
void f2();
.......
};
当生成一个A的类 a 时,比如我想调用a.f2()时,当我敲入.时emacs能够给出f2,但是无法给出f1,不知道大家怎么解决的?
在这里感谢2楼提出的方法,本人也大致看了一下auto-complete的manual,发现这个插件只是针对当前buffer和已有的dictionary来进行解析,也就是说上面的A类和B类如果是本人自己编写的,auto-complete能给出对应的函数列表,因为auto-complete能将写入的函数加入到对应的dictionary当中。那么现在的问题是,如果我现在新导入一个c++类库,比如本人目前正在用Qt编程,那么它的基本类库肯定不会自动加入到auto-complete的dictionary中,所以auto-complete还是无法给出父类的函数。(也许本人理解有误,还请各位大虾指正)。
举个详细的例子,比如QApplication是从QCoreApplication当中继承过来的,其中的postEvent是QCoreApplication的一个函数,如果我用QApplication,emacs就无法找到postEvent,尽管我已经加载了Qt对应的include列表。在这点上eclipse就能够准确无误的给出,本人绝对不是来推荐eclipse的,只是想知道emacs是不是也有相应的插件能够给出准确的函数列表。当然我也不得不承认,如果类是自己编写的,那么auto-complete还是能给出父类的函数。如果哪位大虾知道如何解决,请告诉我,在下感谢万分!