Generally speaking, non-C is supported well only for GObject-based interfaces. 
A python plugin can easily define a GObject-derived type purely implemented in 
Python.

For anything else you need at least some supporting C code around. This is 
essentially what the "lib"-part of peasy does. It defines GObject-derived 
wrappers around existing Geany interfaces so that plugins make instances and 
inherit properly. Not all Geany interfaces need wrappers. We declare some of 
them as "GBoxed" such that the gobject-introspection magic makes them available 
to non-C languages automatically. We feed the gobject-introspection machinery 
mostly by converting the doxygen output to gtkdoc, and then have it generate 
the typelib from that.

So for `PluiginExtension` we would need to extend peasy for sure. 

I asked specifically for `GeanySymbol`. At the very least it needs to be a 
GBoxed, but if it has a refcount and getters/setters for anything anyway it 
could also be a real GObject. Then peasy wouldn't need to wrap this type much.

-- 
Reply to this email directly or view it on GitHub:
https://github.com/geany/geany/pull/3910#issuecomment-2175369898
You are receiving this because you are subscribed to this thread.

Message ID: <geany/geany/pull/3910/[email protected]>

Reply via email to