Revision: 3530 http://geany.svn.sourceforge.net/geany/?rev=3530&view=rev Author: eht16 Date: 2009-01-30 18:10:27 +0000 (Fri, 30 Jan 2009)
Log Message: ----------- Add a few notes about basic plugin writing guidelines.
Modified Paths: -------------- trunk/ChangeLog trunk/HACKING trunk/doc/plugins.dox
Modified: trunk/ChangeLog =================================================================== --- trunk/ChangeLog 2009-01-30 16:12:25 UTC (rev 3529) +++ trunk/ChangeLog 2009-01-30 18:10:27 UTC (rev 3530) @@ -6,6 +6,8 @@ Allow entering paths prefixed with '~' in the filebrowser path entry. Show the full path for files and folders in the filebrowser plugin as tooltips. + * HACKING, doc/plugins.dox: + Add a few notes about basic plugin writing guidelines.
2009-01-29 Enrico Tröger <enrico(dot)troeger(at)uvena(dot)de>
Modified: trunk/HACKING =================================================================== --- trunk/HACKING 2009-01-30 16:12:25 UTC (rev 3529) +++ trunk/HACKING 2009-01-30 18:10:27 UTC (rev 3530) @@ -20,6 +20,8 @@ * See plugins/demoplugin.c for a very basic example plugin. * src/plugins.c loads and unloads plugins (you shouldn't need to read this really). +* The API documentation contains a few basic guidelines and hints to + write plugins.
You should generate and read the plugin API documentation, see below.
Modified: trunk/doc/plugins.dox =================================================================== --- trunk/doc/plugins.dox 2009-01-30 16:12:25 UTC (rev 3529) +++ trunk/doc/plugins.dox 2009-01-30 18:10:27 UTC (rev 3530) @@ -44,6 +44,7 @@ * - @link plugindata.h Main Datatypes and Macros @endlink * - @link pluginsymbols.c Plugin Symbols @endlink * - @link signals Plugin Signals @endlink + * - @link guidelines Plugin Writing Guidelines @endlink * * @note Some of these pages are also listed in Related Pages. */ @@ -248,6 +249,77 @@ * * * + * @page guidelines Plugin Writing Guidelines + * + * @section intro Introduction + * + * The following hints and guidelines are only recommendations. Nobody is forced to follow + * them at all. + * + * @section general General notes + * + * @subsection ideas Getting a plugin idea + * + * If you want to write a plugin but don't know yet what it should do, have a look at + * http://www.geany.org/Support/PluginWishlist to get an idea about what users wish. + * + * @subsection code Managing the source code + * + * For authors of plugins for Geany, we created a dedicated @a geany-plugins project at + * Sourceforge to ease development of plugins and help new authors. + * Project website: http://sourceforge.net/projects/geany-plugins + * + * Each plugin author is welcome to use these services. To do so, you need an account at + * Sourceforge. You can easily register at (http://sourceforge.net/account/registration/). + * After you successfully created an account, + * tell your account name Enrico or Nick and you will write access to the SVN repository + * (http://geany-plugins.svn.sourceforge.net/viewvc/geany-plugins/). + * Then you can use the repository for your own plugin. + * + * Authors using this service should subscribe to the + * geany-plugins-commits at uvena.de and geany-plugins-tracker at uvena.de + * mailing lists(see my previous post) to stay up to date with changes. + * General plugin discussion can happen on the normal geany at uvena.de or + * geany-devel at uvena.de lists. + * + * At time of writing, there are some plugins already available in the + * repository. Feel free to use any of these plugins as a start for your own, + * maybe by copying the directory structure and the autotools files + * (Makefile.am, configure.in, ...). Most of the available plugins are also ready for + * i18n support, just for reference. + * + * New plugins should be imported into a new directory inside the trunk/ + * directory. There are also the common branches and tags directories, use + * them as needed, use always a subdirectory for your own plugin. + * + * We encourage authors using this service to only commit changes to their + * own plugin and not to others' plugins. Instead just send patches to + * geany-devel at uvena.de or the plugin author directly. + * + * (the full announcement of this service can be found at + * http://lists.uvena.de/geany/2008-April/003225.html) + * + * + * @section paths Installation paths + * + * - The plugin binary (@c pluginname.so) should be installed in Geany's libdir. This is + * necessary so that Geany can find the plugin. + * An easy way to retrieve Geany's libdir is to use the pkg-config tool, e.g. @code + * `$PKG_CONFIG --variable=libdir geany`/ geany + * @endcode + * - If your plugin creates other binary files like helper programs or helper libraries, + * they should go into @c $prefix/bin (for programs, ideally prefixed with @a geany), + * additional libraries should be installed in Geany's libdir, maybe in a subdirectory. + * - Plugins should install their documentation files (README, NEWS, ChangeLog, licences and + * other documentation files) into the common documentation directory + * @c $prefix/share/doc/geany-plugins/$pluginname/ + * - Translation files should be installed normally into @c $prefix/share/locale. There is no + * need to use Geany's translation directory. To set up translation support properly and + * for additional information, see main_locale_init(). + * - Do @a never install anything into a user's home directory like installing + * the plugin binary in @c ~/.config/geany/plugins/. + * + * * @page howto Plugin Howto * * @section intro Introduction
This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site.