It just seems like a lot of work. Vala is quite high level, I have to wonder whether all the disruption is worth it.
Hi Nick, I have suggested that the new plugin API be GObjects which are just thin shells referring everything to the existing Geany structures like GeanyDocument. The GObject methods just called one or more Geany functions that work on the existing structures. The only disruption I can see in core would be that it would need to emit the signals on these objects.
Even if there is one GObject per Geany structure (well the ones needed by plugins anyway) this would somewhat insulate the plugin interface from changes in the Geany structures since the GObject methods can be pointed at different places in the core without affecting the plugin API.
Since there is this insulation I tried to start the discussion whether the best set of GObjects was to have one per Geany structure or a different set of GObjects that used more than one Geany structure, making the GObjects a little more complicated but their use by plugins easier. But the discussion didn't seem to go anywhere.
But when I queried how these GObjects could be written in Vala no one knew since its documentation is a bit lacking (as in missing entirely) when it comes to interfacing to C.
Cheers Lex