These are somewhat tentative thoughts about Projects in CB, largely aimed at allowing CB to be slightly less C/C++ centric. I'm sure Mandrav and others have thought more deeply about these issues, but thought I'd raise them now with the talk of impending feature freezes. I think some of these issues could be addressed with only minor changes to the SDK, but some may need to wait until 1.x.
Keep in mind these are just my opinions, no offense intended.
1. Projects depend on the presence of a compiler plugin
I recently tried disabling the debugger and compiler plugins to see what would happen. When I attempt to create any new project, C::B crashes. Shouldn't project types that depend on the compiler plugin simply be disabled/refuse to open. (Otherwise it should not be possible to disable the compiler plugin?)
2. Projects must have a compiler assigned
Even when creating an empty project, CB forces you to choose a compiler. In my view, not all projects need a compiler and some may want to use more than one. (Maybe this is just a templating issue). This leads me to my next point
3. Projects can't simply be a collection of files?
If not, why not? Even when I try to create the simplest of projects (for instance to edit some html files) it is filled with build/compiler dependancies. e.g.:
<Project>
<Option title="TEST" />
<Option pch_mode="2" />
<Option default_target="" />
<Option compiler="none" />
<Option virtualFolders="" />
<Build>
<Target title="Release">
<Option output="Release\TEST.exe" prefix_auto="1" extension_auto="1" />
<Option object_output="Release\" />
<Option type="1" />
<Option compiler="none" />
<Compiler>
<Add option="-O2" />
</Compiler>
<Linker>
<Add option="-s" />
</Linker>
</Target>
</Build>
<Compiler>
<Add option="-Wall" />
</Compiler>
<Unit filename="index.html">
<Option compilerVar="CPP" />
<Option compile="0" />
<Option link="0" />
<Option objectName="index.html" />
<Option target="Release" />
</Unit>
</Project>
This contains a lot of content that is irrelevant to a minimal project. Ideally CB should allow some other plugin to write project specific configuration (for instance, a set of config variables required to deploy the set of html pages to a website)
4. Many C/C++ specific plugins react to all file types
Try right clicking on the editor pane in files that aren't C/C++ filetypes. Does CB have/need a filetype manager to assist plugins?
5. File properties quirks
Selecting file properties from the project tree (i) crashes C::B if the compiler plugin is disabled (ii) presents c/c++ centric information even if files aren't c/c++ files
6. Version control support
We need it. Ideally at the project level.