So, IDEs are good to work developing large projects not so much because they automate the build but also because of the secondary features they provide such as:
- File Management Keeps track of all the files which are part of the project and provides easy navigation to open files.
- Syntax Highlighting This makes it easier to read complex code, allowing many text editors to do this, also not that major.
- Autocomplete One of the more important features is that IDE keeps track of the included headers and parses them for definitions as well as reading doc comments, this allows it to provide a powerful auto-complete listing of 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 subdirectories, separate src and include directory, etc.
- Integrated Tools Many also provide tools integrated into the editor, like the Spyder IDE for Python, which integrates tools for finding errors in coding structures and marks them in the editor. This feature helps to write good code.
- Interactive Debugging Most provide a graphical interface to the debugger, allowing you to set breakpoints in the editor line by line and highlight the line set watches. For example, Code::Blocks, when you launch the debugger, it runs until an error or breakpoint at which it provides panels for the source, watches, call stack, disassembly, CPU registers to aid in the debugging process.
Now, the problem while developing a big opensource project with one of these IDE's is that everyone needs to use the same one, and project files don't necessarily 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 an IDE that works with CMake, i.e. it reads the CMakeLists.txt file and uses that to show the project's structure like the TexStudio does for latex documents. And the project editor should only be a GUI tool for working with the CMakeLists.txt file.
While, it may include several other files such as style definitions like .pylintrc in python for defining style rules, Doxyfile for configuring Doxygen, these files aren't that important while editing and building the project itself, rather than just config files for integrated tools.
So does anyone know of such an 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 easier experimentation with code ideas.
- Open-Source Project, (At the very least, I don't want something I have to pay for)