This change implements settings save and load to the browser's local storage (request from vshymanskyy/ViperIDE#25). It also implements some helper getter/setter functions for using in other parts of the code without those other parts needing to be aware of how the settings work (e.g. needing to know to query the DOM). And it allows for setting up callbacks to listen for setting changes.
The settings are stored as a single serialized JSON blob in the storage. This made it a bit easier to load and save non-string values. It's maybe a little more difficult to reset or change a single setting in the dev tools, but I thought the trade-off was worth it.
This change implements settings save and load to the browser's local storage (request from vshymanskyy/ViperIDE#25). It also implements some helper getter/setter functions for using in other parts of the code without those other parts needing to be aware of how the settings work (e.g. needing to know to query the DOM). And it allows for setting up callbacks to listen for setting changes.
The settings are stored as a single serialized JSON blob in the storage. This made it a bit easier to load and save non-string values. It's maybe a little more difficult to reset or change a single setting in the dev tools, but I thought the trade-off was worth it.