after read a great article called "A Gentle Introduction to CEDET" that written by Alex Ott . I do some experiment for c++ projects in my emacs 24.3 and latest cedet in "https://git.code.sf.net/p/cedet/git" (also in emacs 23.1 and stable cedet1.1). I am quite satisfied with it except for one small "jump to function implement" issue in "semantic-analyze-proto-impl-toggle". my project is very simple(only 2 files):
1) head file "y.hpp" in dir "~/emacs/test/zz1/"
class y{
public:
int y1(int);//error here! semantic can't found implement in y.cpp
};
2) implement file "y.cpp" in dir "~/emacs/test/zz2/"
#include "y.hpp"
int y::y1(int b) // semantic can found definition in y.hpp
{
return 0;
}
my cedet config is based on alex oot 's "minimial-cedet-config.el"(https://gist.github.com/alexott/3930120) and only add following two lines:
(semantic-add-system-include "~/emacs/test/zz1/" 'c++-mode)
(semantic-add-system-include "~/emacs/test/zz2/" 'c++-mode)
i checked my semantic db cache and found all db file is create correctly, this is part info in cache db for y.hpp in zz1:
("y1" function
(:prototype-flag t
:arguments
( ("" variable (:type "int") (reparse-symbol arg-sub-list) [27 31]))
:type "int")
(reparse-symbol classsubparts) [20 32])
this is part info in cache db for y.cpp in zz2:
("y1" function
(:parent "y"
:arguments
( ("b" variable (:type "int") (reparse-symbol arg-sub-list) [28 34]))
:type "int")
nil [18 50])