[Geany-Devel] New plugin loader mechanisms
lists.ban at xxxxx
Sun Mar 29 15:51:03 UTC 2015
Le 18/03/2015 18:11, Steven Blatnick a écrit :
> On 03/18/2015 10:42 AM, Thomas Martitz wrote:
>> Currently geany exports a pointer to a struct, that contains more
>> structs, which contain function points to the API functions.
>> Fortunately this is nicely hidden to developers via macros. But due to
>> gtkbuilder all functions and nothing prevents plugins from accessing
>> these. And the macros are awkward and strange anyway. There is
>> currently the linkage-cleanup PR in the works which improves this by
>> actually exporting the API functions, and _only_ the API functions to
> Maybe I'm completely wrong on this from an architecture perspective, but
> part of what I like about writing plugins for geany is accessibility.
> If we only get access to a subset of functions, then it seems less
> flexible what our plugins can actually do. Yes, this allows us to write
> bad plugins that can do some sloppy things, but I say "so what". They
> are plugins. […]
In addition to what Thomas said (which is very true), realize two things:
1) plugins that use functions not part of the API won't work e.g. on
Windows (for technical reasons, all functions are currently actually
usable under *NIX, but on Windows only explicitly exported ones are).
So if you care about your plugin working on Windows you'll stick to the
official API anyway (the one we commit to and maintain).
2) before Geany 1.22, you couldn't use non-API anyway. If you were
happy with the API before, you'll still be after this change.
More information about the Devel