[Geany-devel] Python Plugins, re-hashed
matthewbrush at xxxxx
Sat Dec 4 02:12:19 UTC 2010
I started working on Python plugin support for Geany. Some of the code
and the general approach is based on what Māris Fogels had started at
I've put my code up at https://github.com/codebrainz/geanypy.The README
file explains the concept pretty well I think and the code should be
easy to follow.
The majour problem with this code right now is the Python ctypes
bindings that I managed to mush out of a couple of auto-generator
scripts (h2xml & xml2py which come with ctypeslib). To put it bluntly my
bindings are crap.
Maris had a completely different bindings generator which might be (MUST
be) better, but I couldn't figure out how to generate the bindings.
Maris (or anyone else in the know), if you're on the mailing list, it
would be awesome if you could give me a little help with generating your
Ultimately, the ideal approach would be to do the bindings in Cython,
which in my opinion is a far superior way of doing it since it's faster
and more natural for a Python programmer to use than ctypes. I'm not
positive, but I think it
would require having a shared library for the plugin API in order to
link with the C code generated by Cython, I haven't gotten this far yet.
As it stands now, the code works, loads the plugins, passes pointers to
the 3 structures of GeanyPlugin, GeanyData, and GeanyFunctions, which
can be accessed through some hackery to dereference the pointers in Python.
I wanted to get the opinion of some real programmers about this code and
maybe some ideas about how to get the required data into a usable
Pythonic API. Any input or feedback anyone can provide would be very
Matthew Brush (codebrainz)
More information about the Devel