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 :) _______________________________________________ Devel mailing list Devel@lists.geany.org https://lists.geany.org/cgi-bin/mailman/listinfo/devel