[Geany-Users] [ANN] Peasy released

classic Classic list List threaded Threaded
1 message Options
Reply | Threaded
Open this post in threaded view
Report Content as Inappropriate

[Geany-Users] [ANN] Peasy released

Thomas Martitz-2

more than two years after my initial message "RFC: Proxy plugins" I've
reached the point that I envisioned back then. As a result, I can now
Peasy, which is my first personal proxy plugin, which I'm taking seriously.

Please give me feedback or even contribute to this project.

Peasy[1] is a proxy plugin which uses libpeas[2] to enable running
plugins in
other languages, most notably python [4]. Peasy also makes heavy use of
gobject-introspection to automatically create bindings to Geany's (and
own) APIs.

Short recap, what are proxy plugins: proxy plugins are ones which act as a
proxy to "second tier" plugins. The proxy use a specific Geany API to
themselves as a proxy and they provide methods to bridge Geany's core
and the
other plugins. The other plugins then become first class plugins.

Of course the point is, that those other plugins are not written in
C/C++ but
some other language. And the proxy plugin contains an interpreter or
some other
runtime to execute those foreign language plugins.

Back to Peasy, it provides methods to run Python plugins within Geany.
It also
ships a VAPI files for writing plugins in Vala.

I release version 0.2. I'm sure there hide plenty of bugs but it seems
relatively stable to me. The build process has some rough edge, though.

I support Peasy on my github, feel free to file bugs or send patches/PRs.

Q: What's the difference to GeanyPy
A: Peasy and GeanyPy have a lot in common, most prominently that they enable
    Python plugins. But key differences are:
    1) Peasy supports python3 only, GeanyPy only python2.
    3) Peasy works gtk and gtk3, GeanyPy only gtk2.
    3) Peasy automatically generates bindings for Python using
       whereas GeanyPy contains hard-coded
    4) Peasy reads plugin metadata from a different file no code runs
before the
       plugin is truly activated.
    5) Peasy isn't part for geany-plugins yet.

Peasy ships some plugins, some of which are not just for testing/playground:
- modeline-py: Parses vim modeline and applies them to Geany on a
per-file basis.
- console-python.py: This plugins opens a console window in which you can
   explore the Geany APIs and run arbitrary python code. Heavily based on
   console.py for GeanyPy.
- quickswitch.py: Adds a dialog that allows to quckly switch tabs. Also
   going to tags / symbols directly.

[1] https://github.com/kugel-/peasy
[2] https://wiki.gnome.org/Projects/Libpeas
[3] lua functionality is completely untested so not really supported at
this point

Best reards.
Users mailing list
[hidden email]