I liked OP but want to emphasize this comment above:
- User-specific global settings and plugins
- Workspace settings and plugins that override global settings. Only the individual modified (different) settings should be stored i.e. don’t copy the entire user-specific json. Read both and the workspace json should contain only the overriding setting.
- Show in the UI which settings are modified in user/workspace
- Allow in the UI for the user to reset a setting to app/user default
i.e. what Visual Studio Code does. It is just perfect.