[Geany-devel] Plugins Guidance

Colomban Wendling lists.ban at xxxxx
Wed Feb 22 14:13:05 UTC 2012

Le 21/02/2012 05:15, Lex Trotman a écrit :
> In another thread
> http://lists.uvena.de/geany/2012-February/007808.html a couple of
> things were mentioned about guidelines for plugins to be good
> citizens.  So I thought it worthwhile gathering any suggestions so the
> docs could be updated in one go.
> Items mentioned to date:
> 1. don't set default keybindings, users will be annoyed if you
> override their personal bindings.  Always let the user tell the plugin
> what to use.

I'm not convinced that saying "not set default" is the best solution to
the conflict problem.  Couldn't Geany simply not override an already
existent keybinding when installing a plugin's one?

> 2. don't spread menu items through the Geany menus, users don't know
> where to look and if several plugins add things to the same place the
> menu may become unworkable.  You don't know what other plugins the
> user will enable at the same time.

I'm not sure about this one either, though I understand that too many
items everywhere may become a problem.

But if the plugin provides a feature like, say, uniqueness (ref. thread
in the general ml), the menu would better fit in edit->format or
something;  and e.g. GeanyGenDoc places an item in "editor context
IMO this makes the UI better than fulfilling the tools menu with various
stuff, since it's the "appropriate place" for such an item.

I understand that if 10k plugins adds items in various menus it'd start
to be annoying, but OTOH, is a tool menu with 10k items really better?


> I add the following for consideration:
> 3. be aware of the performance, especially if your plugin does
> something on every keystroke or change or at startup, other plugins
> are likely to want to as well.  Just because the plugin works ok or
> your computer by itself doesn't mean it will work well when the user
> combines it with 15 others on their old notebook and they have heaps
> of files open.
> And on the development side, these have been mentioned before
> ad-nauseum but still need emphasis:
> 4. make your plugin compile clean with -Wall -Wextra -O2
> -Wno-unused-parameter with and without -ansi, and 64bit clean
> 5. don't use anything not *documented* in the plugin interface, a
> change in Geany can make your plugin fail if you do.  But you are
> protected against changes in the interface.
> Any other thoughts?
> Cheers
> Lex
> _______________________________________________
> Geany-devel mailing list
> Geany-devel at uvena.de
> https://lists.uvena.de/cgi-bin/mailman/listinfo/geany-devel

More information about the Devel mailing list