[Geany-Devel] [FT-plugins] Proposed Design
Colomban Wendling
lists.ban at xxxxx
Tue Aug 30 13:29:11 UTC 2016
Le 29/08/2016 à 03:09, Matthew Brush a écrit :
> On 2016-08-28 05:47 PM, Matthew Brush wrote:
>> [...]
>>
>> To give an idea, the registration function called by plugins might look
>> something like this:
>>
>> gboolean ftplugin_register_provider(GeanyPlugin*,
>> GeanyFiletypeID, GeanyFiletypeFeature, GCallback, gpointer);
>>
>> [...]
>
> I forgot to mention, it may turn out that in order to provide a feature,
> there may be a need for multiple callbacks (ex. activate, deactivate,
> init_styles, prepare_list, whatever). If this ends up being the case, we
> would need to either pass a table of callbacks here or perhaps a GObject
> implementing a particular interface or whatever.
Then probably better make the provide a structure like
GeanyAutoCompleteProvider {
GeanyFiletypeID filetype;
GCallback feature1;
...
}
In theory I have nothing against GInterface, but I'm not quite sure it's
a good idea to start riddling Geany with GObject API where we already
have like 2 non-GObject-ish API styles (plugin registration, Proxy
registration, signals…)
Not saying GInterface is a presona non-grata, but that IMO it would have
to prove very useful over the other solutions to be used. Especially as
people are likely to implement these filetype features in C or C++ more
than Python, JavaScript or Ruby, so it should be comfortable in C and
C++, and you know you don't like GObject boilerplate :)
More information about the Devel
mailing list