Changes to "config" between 2018-07-04 14:22:11 and 2018-07-04 14:30:27

68
69
70
71
72
73
74

75

76

77













78

79
80
81

82
83
84



85
86
87
88
89
90
91
92
93
94
95
96
97
68
69
70
71
72
73
74
75

76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92

93
94
95
96
97



98
99
100

101




102
103
104
105
106
107
108







+
-
+

+

+
+
+
+
+
+
+
+
+
+
+
+
+
-
+



+
-
-
-
+
+
+
-

-
-
-
-







## `select:` alternatives

The syntax for `select:` is

 * preferrably `"alt|alt|alt"`
 * or with optional title `"1=title|2=alternative|3=…"`.
 * Though implementations may allow to use `,` comma and `|` dash.
 * Or allow both `:` and `=` to separate keys+values.
 * Or `:` like `=` again.


## Custom types

Apart from providing aliases for the base types, a plugin API might provide its own custom set of setting types:

| `int` / `integer` / `numeric` | numbers |
| `bool` / `boolean` / `checkbox` | true/false |
| `str` / `string` / `numeric` | string |
| `select` / `multi` / `dropdown` | see select: alternatives |
| `text` / `textarea` / `long` | longer `string` type (= renders as textarea) |
| `color` / `hsv` | graphical color picker |
| `file` / `filechooser` | setting should be a valid filename | 
| `table`/`csv`| for supporting more complex (Excel-style) setting lists. |
| `dict` | complex dictionary (Excel-style) setting field. |


## Other fields and types
## Other fields

Other per-config attributes migh encompass

| `category:` | grouping config options (else inherited from plugin) |
 * `category:` and `class:` for decoration or grouping.
 * Or `arg:` and `param:` for defining commandline args rather than global application settings.

| `class:`       | either decoration or additional type qualifier |
| `arg:`          | declares a commandline argument instead of global app setting |
|  `param:`   | plugin invocation argument instead of global app flag |
Other types might be

 * `text` for lengthy textarea-style strings),
 * `color` for a color picker,
 * `file` bringing up a file selection dialog
 * Or `table`/`csv`/`dict` for supporting more complex (Excel-style) setting lists.


## Storage and key `name:`

Notably this scheme just defines a list of available options. It does **not**
prescribe if they're stored in an `.ini`, `.json`, `xml` or code file, or a database
perhaps.