It should have these features:
- easy to use thus
- use sane defaults
- support kind of introspection thus you should be able to configure
it without looking at all settings (eg by showing all items which
can be set
- support a user and a project config. the project config should
override the user config. What "overrides" means should be defined
by the option.
- reread if the modification time changes
- written after a setting has changed.
This has to be this way to mimimize the chance that different
vim sessions override settings of each other..
Currently I have this is mind:
Serialize the options (dict / list) to a buffer so that you can edit them easily.
The set of options can be nested, so that each plugin /feature writer
can add new options easily.
It could look like this
sql-options [list]:
| * foo-connection [dict]
| | myserver [dict]:
| | server : bar.com
| | password : foo
| | database-type : mysql
| | [new key]
| * bar-connection [dict]
| | myserver [dict]:
| | server : bar.com
| | password : foo
| | database-type : mysql
| | [new key]
| * [ new list item]
| - [ new key ]
When hitting [ new key ] somehow you should be asked which key should be
added. Of course this list should contain all the missing options from
new installed scripts etc..
Is anything you know close to this?
Marc Weber