[CEDET-devel] code completion fails
Brought to you by:
zappo
From: Krishnan V <v.s...@gm...> - 2011-10-26 04:17:20
|
This might start off a new thread. Sorry about that. I am copying your reply from the forum to GMail and replying. On the topic, sad to know that CEDET cannot do this in its current version. Regarding the other IDEs; Visual studio does it pretty well(much to my disappointment!). Eclipse is not that good for ITK. Using Eclipse, completion happens only for some members. Apart from VS/Eclipse, I have tried Codeblocks. I used a recent binary version from SVN of codeblocks on Windows, it did the job well. Unfortunately, I built the same from source on GNU/Linux and the completion is not that good; some plugin problems. If one wants to help out, what does one need to "learn"?! Krishnan V. writes: > I am trying to use CEDET along with the medical image processing library > called ITK. This is highly templated code. [...] > typedef itk::ImageFileReader<ImageType> ReaderType; > ReaderType::Pointer writer = ReaderType::New(); CEDET currently cannot parse this. I have a local CEDET branch with a greatly expanded template parser which at least understands the above syntax, but even this will not give the correct completions, and I currently don't have the time to dig deeper. > reader->SetFileName("image-1.png"); > reader->Update(); I'm assuming you mean writer-> here? Anyway, I'm afraid you currently won't get completions with CEDET with this library. Note that there's also a general problem with templates, especially when you're using stuff like static polymorphism, curiously recurring template pattern, etc. The problem is simply that a template is, well, a template, and CEDET sometimes cannot know which types you're actually going use and which methods they are going to provide. I guess that the 'concepts' which were originally planned for C++0x would have helped a great deal with that problem, but you probably know how that ended up... I'm currently working with the Eigen library, and it exactly has that problem due to excessive usage of static polymorphism and expression templates. I'd actually be interested if VC++ or Eclipse can deal with that (and how they do it). I'm not saying that ITK cannot be parsed. You could try to use the clang back end (if you have a pretty recent clang available); if that one doesn't work, then Semantic surely never will. -David Hi David, thanks for your detailed reply. |