For my C++ code on a Linux platform, I started out by using the Eclipse/CDT editing environment. It offers things like:
- multiple tiled windows for editing
- has wizards for setting up projects for libraries and for applications
- built in debugging environment
- live macro expansion (very handy for dealing with multi level boost::preprocessor expansions)
- basic forms of code completion
- by jumping through hoops, one can get Subversion integration
Recently, the hoops I needed to jump through with Eclipse started creating pain. Subversion integration started generating errors when I upgraded the Java Runtime Environment. I also noticed that build times on projects were slower than I would like. This was measurable in seconds, nothing earth shattering, but adds up over time.
I then started to look at Code::Blocks 10. It's benefits were:
- reasonably fast interface, but can only view one file at a time in a simple tabbed interface
- good build times
- easy project creation
It's biggest draw back is that it uses a tabbed interface with no ability, (at least for what I could find), to have multiple panes looking at different files simultaneously. Big show stopper there.
I then installed KDevelop 4. This environment, from initial inspection, appears to be much better. Things looking good appear to be:
- fast interface with tiled windows for viewing multiple files
- Subversion is fully integrated from the 'get-go'
- build times are quick
The learning curve is sharper/longer, but, from first blush, looks to be worth it. The basic requirement is to learn how CMake works, as that is an integral part of the build process. The CMakeLists.txt file is part of the IDE environment with some of it created automatically, and the special bits managed manually by the programmer.
On the initial look and feel, I think KDevelop will become my primary C++ code editing environment. I'm hoping code completion works well, and that KDevelop deals with template stuff just as well.