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@uvena.de
> https://lists.uvena.de/cgi-bin/mailman/listinfo/geany-devel

_______________________________________________
Geany-devel mailing list
Geany-devel@uvena.de
https://lists.uvena.de/cgi-bin/mailman/listinfo/geany-devel

Reply via email to