In the past, EclipseFP managed project model information (i.e. which folders are source folders, where are the executables that are compiled from the sources in the project, etc.) itself and persisted them in a .hsproject descriptor file in the project.
All this information is also available in the .cabal file for the project, so we want in the future manage the information there. This means that
- the .cabal file is mandatory for Haskell projects in the workspace (and there is no more .hsproject instead)
- the .cabal file is the master for all project model information
- implement access to the project model details from the .cabal file (using Distribution.PackageDescription API from the Cabal package)
- enable multiple project executables (multiple source folder are already possible)
- implement resource monitoring for Cabal files and fallback robustness for projects with Haskell nature that are missing a .cabal file (validation is already in place)
- implement additional validation for project model info in .cabal files (e.g. we want to see a problem marker if the .cabal file refers to a source folder in the project which isn't actually there)