[Github-comments] [geany] Proxy plugins (#629)

Colomban Wendling notifications at xxxxx
Thu Sep 24 21:42:23 UTC 2015


> The separate API allows to do the registration in the plugin's init(), and have the file extensions deppend on plugin configuration. Also a API-wise separattion to geany_plugin_register() is needed to allow for nested proxies.

I get that, my point was that I would find the API less odd if one filled a specific structure, rather than one already used for something else.

e.g.
```C
Proxy proxy = {
  .extensions = { "so", NULL },
  .load = my_load,
  .probe = my_probe,
  .unload = my_unload
};
geany_plugin_register_proxy(plugin, &proxy);
```
or alike.  But I know it has drawbacks, like binary incompatibility if the struct expands (solvable by  versioning the struct, but a bit annoying), etc.

I don't really mind though, as it does has a few advantages (at least being simple and easy to expand), and that API won't be used by everyone so any oddness won't affect too many people.

> A proxy can be a proxy for many types. the only limitation is that only one set of ProxyFuncs is supported per proxy. But this limitation is not a problem, since the proxies can do their own dispatching. For geany it simplifies storing the pointers (avoids introducing a list of vtables, etc)

Okay, so maybe that part is not really relevant indeed.

---
Reply to this email directly or view it on GitHub:
https://github.com/geany/geany/pull/629#issuecomment-143058333
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <https://lists.geany.org/pipermail/github-comments/attachments/20150924/3764b8b9/attachment.html>


More information about the Github-comments mailing list