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
|
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
109
110
111
|
+
+
-
-
-
-
-
-
-
-
-
+
+
+
+
+
+
+
+
+
-
+
+
|
* Or allow both `:` and `=` to separate keys+values.
## Custom types
Apart from providing aliases for the base types, a plugin API might provide its own custom set of setting types:
| type | alias | usage |
------------------------
| `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. |
| `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` | `rgb` | graphical color picker |
| `file` | `filechooser` | setting should be a valid filename |
| `table`| `csv` / `list` | for supporting more complex (Excel-style) setting lists. |
| `dict` | `hashtable` | complex dictionary (Excel-style) setting field. |
## Other fields
Other per-config attributes migh encompass
| `category:` | grouping config options (else inherited from plugin) |
| `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 |
| `param:` | plugin invocation argument instead of global app flag |
There's some paritiy with the main plugin meta fields. Except that config entries should not have a nested config: attribute, of course^^
## 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.
|