Plugins currently have no standard way to persist user-tunable settings. Each plugin that needs configuration would have to implement its own storage, dialog UI, and file format.
Goal
Let plugins declare what they need to persist, and let the host handle storage and UI.
- Plugins describe configuration as a typed schema (string / multiline / bool / int / double / enum).
- Host persists values as per-plugin JSON under
%LocalAppData%/SharpFM/plugin-config/{id}.json.
- Plugin Manager shows a Configure... button that opens a generated settings form; the button is disabled for plugins with an empty schema (zero impact when unused).
- Values are pushed to the plugin via
IPlugin.OnConfigChanged once after Initialize and again after every save.
Plugins currently have no standard way to persist user-tunable settings. Each plugin that needs configuration would have to implement its own storage, dialog UI, and file format.
Goal
Let plugins declare what they need to persist, and let the host handle storage and UI.
%LocalAppData%/SharpFM/plugin-config/{id}.json.IPlugin.OnConfigChangedonce afterInitializeand again after every save.