14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
|
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
|
+
-
-
+
+
+
-
+
-
|
"configwin": true,
"continuous_record": false,
"delicast": true,
* Plugins are scanned for meta infos on each startup (there isn't too many), and instantiated according to config table.
* Hooks/`type:` are not used much. Instead class types are used implicitly, or plugins register themselves with the main application.
* `config:` options show up in a neat combined settings window, defaults are applied on startup / to the conf{} dict.
* Defines an [extra `arg:` attribute](http://fossil.include-once.org/streamtuner2/wiki/plugin+meta+data) for the `config:` list.
## Powershell: [Clicky](http://fossil.include-once.org/clickycoloury/)
* Albeit has a [full parser](http://fossil.include-once.org/clickycoloury/artifact/fb2017bd6797bf6c2c9df6c92966632c7262cb61), only the config options are fully used.
* `type:` covers a few magic values (init*, inline, cli, …)
* Has a [full parser](http://fossil.include-once.org/clickycoloury/artifact/fb2017bd6797bf6c2c9df6c92966632c7262cb61), and utilizes both config options and other meta fields at runtime..
* `type:` covers a couple of magic values (init*, inline, cli, window, …) deciding on when to run/inline a script.
* But primarily the `category:` is used for UI hookup (menu structuring). Which is one of the more basic uses for plugin meta data.
* Defines a [bunch of custom fields](http://fossil.include-once.org/clickycoloury/wiki/plugin+meta+data) like `hidden:`, `nomenu:`, `vars:` (like config struct), `key:` and `shortcut:`, which avoids lots of code duplication for plugins/scripts.
* There's no plugin activation states as such, all scripts are "loaded" all the time.
* But there's no plugin activation states as such, all scripts are "loaded" all the time. Though there's a basic Plugin Manager now.
* Albeit there's a basic Plugin Manager now.
## Ruby: [cross packaage maker](http://fossil.include-once.org/xpm/)
* Implements just a [crude parser](http://fossil.include-once.org/xpm/artifact/35d5f731ae94db88356bd05042812970781261d0).
* Uses PMD partially as source for packaging info. (Wasn't intended for that, but very convenient!)
* Defines the `#pack:` specifier for relative file references. Albeit partially supports `#depends:` specifiers.
## PHP: [libconfig / Generic PHP Plugins](http://milki.include-once.org/genericplugins/)
* Was the original implementation. Still pretty close to the current spec.
* Only the `config:` syntax uses HTML-style rather than JSOL attributes.
* Main goal here was a *non-destructive `config.php` editing* feature via plugin meta data.
|