Precisely, the user will always operate on storage. As far as compiler settings are concerned, the user has no access to either workspace or project specific preferences, except through `storage`. All the interaction the user can have is described in `ScalaPluginPreferencePage`, and goes through `userBoxes`, which operates on `storage` through `shownSetttings`.

I don't have particular love for the `storage`, I'm just trying to replicate the modification pathway. The test has a systematic `@After` that deals with the project-specific setting, so that nobody uses project-specific settings at the beginning of a test, and you have to call `enableProjectSpecificSettings` if you want to do so.