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