Hi Guys,
Some general observations, irrespective of the implementation.
1. There shall be only one plugin control GUI. The users don't care how a plugin is implemented, or what language its in, they just want to use it. Having to look in two places will often mean one group of plugins is missed. Thats also one of the complaints against the current Geanypy implementation.
2. All current plugins shall continue to work for a considerable period until any new mechanism is in place. Re-compilation is acceptable although maintaining ABI is preferable. It has taken so long to accumulate a set of fairly useful plugins that we can't afford to try to force them to be re-built (quickly) to a new interface to keep working.
3. Any new plugin system shall not require large amounts of boilerplate to write a plugin, in any language. The basic point of this effort is to encourage plugins by making it easier. Hiding boilerplate under a part of the bindings is of course acceptable.
4. A full implementation is required before anything is added to Geany, that includes bindings to all the Geany API for the existing languages (C/C++/Vala/Python). Finding unexpected difficulties with the bindings is so likely (see Geanypy keybindings issues) that there needs to be a clear demonstration that they can be addressed.
Support for autogeneration of the bindings would of course be the cherry on the cake, but thats our issue not the plugin writers.
Cheers Lex