I don't think creating custom folders is such a good idea. Whenever I've used this feature in other IDE's (Visual C++ and Dev-Cpp), I've always used it just to mirror the directory folder structure. I haven't worked on very large scale projects (such as an OS - btw, I really hope ReactOS will achieve its goals one day), but I think that on such projects its even more important to keep project files properly organized into folders (packages). (At such points I like refering to John Lakos' "Large Scale C++ Software Design" - a fundamental book for anyone working on large C++ projects.) So I think C::B's feature to mirror the directory structure in the project tree is just what's needed.
There is however one small improvement that can be done. Source and header files are often pushed a few levels down the hierarchy for some reason. In such cases they appear in the project tree below a few levels of empty folders. Here's an example project structure:
/
/include
/include/MyLib
/include/MyLib/*.h
/src
/src/MyLib
/src/MyLib/*.cpp
/src/Samples
/src/Samples/*.cpp
/proj_cb
/proj_cb/MyLib.cbp
/proj_cb/MyLibTests.cbp
/proj_cb/Samples.cbp
In this case, the MyLibTests project will display this structure:
- src
- MyLib
*_t.cpp
If MyLib was larger and had sub-packages, the chain of empty folders at the top would be longer. It would be nice if C::B had an option to skip the top levels in the project tree (in this case src and MyLib) and display the content of first folder which has more than one item (file or sub-folder) in it. Of course, this problem would not exist if .cbp files were kept in the folder of the files they include, instead of a separate common folder. But this approach is prefered on projects which use more than one compiler and have several different sets of project files.