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