[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
menu"->insert.
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?
Cheers,
Colomban
> 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