geanypy
geanypy copied to clipboard
Gtk3
Gtk3 branch which includes gtk3 and gtk2 compatible codebase and also keybinding stuffs. Also has some changes to plugin manager which takes geany main widget as parent.
Put back our beloved trailing newlines!!! (I'm serious, one new line at the end, please ;)
Some of the commits (like 42b4e4a) are really hard to review due to changing almost every line (I guess to change indentation style to PEP8-compliant). I'll have another try later seeing if I can restore those changes so the history is easier to follow. Ideally, changes that aren't related to GTK3 port (like style changes and 2829929, 3e8b0b8, 7f01516, etc) would be in separate pull requests.
Just a heads up, I started with pure gtk3 port and then started considering gtk2 compatibilies. I finally maintained a tag for pure-gtk3 but there are some commits which may take you back and forth the compatibilies. Basically python codes with from gi.repository import Gtk
rather than from gi.repository import pygtkcompat
are these codes.
I'm not forcing you (I don't agree with this), info only :) On Debian some plugins (debugger, geanypy, multiterm and scope) have been disabled because they are GTK2-only (git-rep.: geany, geany-plugins). (Geany v1.32 and plugins are not yet available in the package repository.)
Geany 1.32 is available in Debian unstable and testing.
A new method of supporting plugins that require interpreters has been developed by @kugel- which allows Python plugins to be first class citizens and to access GTK3 by gobjects introspection. It is in his github fork but not released yet. This is more likely to be the future direction of interpreted plugins.
Further update, Geany-plugins 1.32 is going through the Debian NEW process because there is a new plugin this release, thats delaying it.
@elextr thanks for spreading the word about peasy. One correction though, peasy is in fact released. Latest version is 0.5. See https://github.com/kugel-/peasy/releases
@kugel- I meant released within the Geany infrastructure where users can find it.
As astonishing as it may seem, some users have not thought to look in your github for it :grin:, and neither have the distro packagers.
@elextr & @kugel-, thanks for the plugin info and thanks for the plugin, Peasy looks an interesting project, I wanted to try rebuild Geany with GTK3 and I will try Peasy. If I can deal with examples and documentation :))
I think that Lua-part can works with package.path
/package.cpath
without additional movements (unlike GeanyLua), but at first glance, writing plugins are more harder than with GeanyLua. At least for new Lua users, like I am :)
As astonishing as it may seem, some users have not thought to look in your github for it :grin:, and neither have the distro packagers.
And, most importantly, Peasy has not description on plugins.geany.org. Or I couldn't find it :)
@Skif-off If you do have some plugins that are dependent on geanypy then you can use https://github.com/sagarchalise/geanypy/tree/proxy-gtk3 for gtk3 compatibility as other plugins are not yet compatible with peasy.
I hate to make ads for peasy in this repo, but please give it a try. Converting a geanypy plugin should be little effort. Peasy's strength is that it automatically exports all of Geany's APIs via gobject-introspection, that is new APIs don't have to be ported manually.
@kugel- don't hesitate to advertise. If it replaces thousands of lines of manually written C code with automatic bindings, it's a win. The important part of GeanyPy is a thin layer that makes it somewhat idiomatic to use Geany's API from Python.
@kugel- I am actually all in for peasy and gobject introspection way. I have ported one plugin from geanypy to peasy. I do think there needs to be documentation on porting to peasy. Also, I couldnot get plugin to load from $HOME/.config/geany/plugins as with geanypy
Feedback is really welcome. Please file issues on my peasy repo!