I have been trying off and on for over a year now to use Emacs as a C/C++ IDE. I have only been marginally successful thus far, but have run into a few brick walls along the way. Currently I am trying to use CEDET, but I am having a rough time understanding how to use it effectively.
The features that I am looking for in an IDE are as follows:
- Management of software "projects." I want my IDE to have a sense of all of the files that make up my current project so that I can perform functions like search-and-replace within my project. (It would be nice if I could also achieve this without littering my source tree with lots of support files. Why do I need more than one centralized project file per project?)
- The ability to build the current project from within the IDE, regardless of which buffer I am currently visiting. I need to be able to bind a key which will build the current project.
- Error reporting. I don't want to have to read through 500+ lines of output to find the errors that were reported by the build tools. Preferably, the errors show up in their very own buffer with one line per error.
- An awareness of symbols within the project, and where they are defined. I want to jump to a symbol definition whether it lives in my project files or in the system include files.
- Visual debugging. I want to have a watch list of local variables that update automatically as I step through the code. I want to be able to set breakpoints in the code see which line of code will be executed next.
I know that each of these features exists because I have had each of them working at one time or another using EDE, Semantic, GDB, etc. The problem is that I have never been able to have all of these features working at the same time, because each piece usually has to be configured by itself, and it is usually too much work to figure out how to configure all of them at once and make them work together.
What solutions exist for turning Emacs into a full-featured C/C++ IDE? Do you always have to configure everything piecemeal, or is there a way to set all of the features up at a time?
EDIT: A good answer to this question does not have to exactly meet all five of the given criteria. I simply provided the list to give a more concrete idea of the type of features I want to see before I would consider an IDE to be "full-featured." It is quite possible that CEDET could fit the bill, but I have yet to find a working step-by-step tutorial on how to set it up from scratch.