So IDE's are nice work developing large projects not so much because they automate the build but, because of the secondary features they provide such as:
- File Management Keeps track of all the files that are part of the project, and provides easy navigation to opening file.
- Syntax Highlighting This makes it easier to read complex code, allow many text editors do this as well so not that major.
- Autocomplete One of the more important features the IDE keeps track of the included headers and parses them for definitions as well as reading doc comments, this allow it to provide an powerful auto complete listing possible completions, their signature and providing the documentation.
- Template Generators Most also provide some form of code template generation, that respects good coding rules, such as generating namespaces in sub directories, separate src and include directory, etc.
- Integrated Tools Many also provide tools integrated into the editor, for example the Spyder IDE for python, integrates tools for finding bad coding structure and marks them in the editor, this help write good code.
- Interactive Debugging Most provide a graphical interface to the debugger, allowing you to set break points in the editor, step through the code line by line highlighting the line set watches. For example with Code::Blocks when you launch the debugger, it runs until and error or break point at which it provide panels for the source, watches, call stack, disassembly, CPU registers to aid in the debugging process.
Now the problem with developing a large opensource project with one of these IDE's is then everyone need to use the same one, and project file don't necessary work well under version control. Hence the reason for Cmake, which is just a tool for generating and running make files. So what I would like is a IDE that works with CMake, i.e. it reads the CMakeLists.txt file and uses that to show the projects structure like TexStudio dose for latex documents, also the project editor should be just be a GUI tool for working with the CMakeLists.txt file. While it may include several other file such as a style definitions like
.pylintrc in python for defining style rules,
doxyfile for configuring doxygen, these file aren't actually important to editing and building the project it self, rather just config files for integrated tools. So dose any one know of such a IDE, answers should include a summary of features offered by the IDE?
Other Features I would like to have:
- C++ Shell i.e. using Cling, as this allows for easier experimentation with code ideas.
- Open Source Project, (At the very least I don't want something I have to pay for)