1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
|
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
|
-
+
+
-
+
+
+
-
+
+
|
#### References / Existing Implementations
PMD is somewhat cemented now for most of my projects. Even if you don't actually need the management features. This is just a list of existing parsers and usage schemes.
## Python: [streamtuner2](http://fossil.include-once.org/streamtuner2/) → [pluginconf](https://pypi.org/project/pluginconf/)
## Python: [pluginconf](https://pypi.org/project/pluginconf/)
* Contained in **this** repo:
* Is now contained in this repository: [dir/pluginconf/](dir?ci=tip&name=pluginconf&type=tree)
[dir/pluginconf/](dir?ci=tip&name=pluginconf&type=tree),
API documentation: [doc/tip/html/](doc/tip/html/index.html).
* Comes with a full parser, and handles plugin activation with a simple configuration hashtable.
* [plugin_meta()](http://fossil.include-once.org/streamtuner2/artifact/8ae013bd9365f11be08fe429caf0a7f2e18976cc) can extract from files or loaded modules, and pyz archives
* The admin UI sets a `.plugins{}` dict with activation states:
"plugins": {
"bookmarks": true,
"cachereset": false,
"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 list.
* Hooks/`type:` aren't utilized 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.
* Started as [streamtuner2](http://fossil.include-once.org/streamtuner2/)
* Defines an [extra `arg:` attribute](http://fossil.include-once.org/streamtuner2/wiki/plugin+meta+data) for the `config:` list.
subproject, defines an [extra `arg:` attribute](http://fossil.include-once.org/streamtuner2/wiki/plugin+meta+data)
for the `config:` list, now used by.
## Powershell: [Clicky](http://fossil.include-once.org/clickycoloury/)
* 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 PMD.
* 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.
|