The idea is that build targets can be added, removed, configured and run from here.
Implemented some small things for Windows (untested).
Two unit tests fail, but this is expected behaviour.
…Cabal file, if present. A separate interface, IHaskellProjectInfo, can now be implemented in two ways: as a simple thing that stores the info in the .hsproject file (current implementation), or as a more fancy thing that updates the Cabal file with the new information (to be implemented).
Updated EasyMock to give us the resetToDefault() function. Made some changes to GhcCompiler for the benefit of the unit tests.
Just like in JDT, there's now a field in the New Project wizard where a directory for the new project can be set. If this directory exists, its contents are imported into the new project. In fact, the new project is just created in the specified location without regard for what's already there. More advanced importing (e.g. detection of Cabal file, detection of source directories) remains to be done. The UI additions required some changes to the creation wizards, leading to an overhaul of the Cabal import wizard as well. In particular, there is now a common structure for wizard validators. This is not as clean as I would like it to be, yet.
The Scion server will now automatically be restarted when it crashes, restoring the state it was previously in. If the server cannot be started, a helpful error message is shown that can forward the user to the Scion preferences page in order to configure the server executable's location.
Now uses the Eclipse job scheduler to run commands. This is a lot cleaner than using our own command queue; moreover, it gives us more flexibility such as job priorities and cancellation. Also, made parts of ...scion.client internal for a cleaner separation of interface and implementation.
Objective: to get the GHC output in the Eclipse Console back. Reinstated the ProcessRunner and ProcessFactory, but modified them a little. Refactored parts of the stream processing code, though most is still similar to the old. Moved the process runner stuff from ghccompiler to core, where it fits in better. Should also port the QueryUtil to use these classes.
Previously, this would just do the thing-at-point lookup, whereas hovering over the icon in the gutter would give the error/warning message.