On Tue, Dec 15, 2015 at 2:35 PM, Colomban Wendling < lists.ban@herbesfolles.org> wrote:
Hi,
[…]
The API has been fixed to not leak symbols, which it did for a few recent versions. The only functions that are public, which is how it's always been, are those documented in the API reference[0]. That you were able to compile and link against private symbols was a bug in Geany.
BTW, linking to private API never worked under Windows.
[…]
I can probably find an alternative workaround for document_close_all, e.g. iterate document_index(0) until it returns NULL, and call document_close; so I think should be ok too.
The project functions however, since Djynn is meant to integrate with the internal Geany project manager, with functions for opening and closing projects. I believe Geany would be enhanced by the possibility for plugins to open and close projects. When creating a Djynn-project a Geany-project is generated automatically, and when opening and closing Djynn-projects, the Geany-projects are opened and closed too. It's been working very well, seamlessly and invisibly, and would be a loss if I had to cut out the Geany-project integration.
I've got what might be a stupid question, but couldn't your plugin integrate with Geany projects the other way around, e.g. your plugin reacts to project open/close rather than making Geany react to your plugin's project open/close?
If I understand the project part of the plugin (haven't tried it either), it tries to simplify switching between projects and organizing projects into workspaces. In the screenshot here
http://plugins.geany.org/djynn.html
it seems that the second combo serves switching between projects in a workspace so it's the plugin which decides whether a project should be opened/closed rather than Geany. This functionality cannot be done with listening to the signals only so access to project_open()/close() makes sense here.
The other thing is the plugin itself is a bit too "All the stuff I need in Geany" and it would be better break the functionality into individual plugins, or extending existing plugins or adding the functionality directly to Geany.
Jiri