Add a few notes about basic plugin writing guidelines.

git-svn-id: https://geany.svn.sourceforge.net/svnroot/geany/trunk@3530 ea778897-0a13-0410-b9d1-a72fbfd435f5
This commit is contained in:
Enrico Tröger 2009-01-30 18:10:27 +00:00
parent 56a1470bb9
commit 84fc7556eb
3 changed files with 76 additions and 0 deletions

View File

@ -6,6 +6,8 @@
Allow entering paths prefixed with '~' in the filebrowser path entry. Allow entering paths prefixed with '~' in the filebrowser path entry.
Show the full path for files and folders in the filebrowser plugin Show the full path for files and folders in the filebrowser plugin
as tooltips. 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> 2009-01-29 Enrico Tröger <enrico(dot)troeger(at)uvena(dot)de>

View File

@ -20,6 +20,8 @@ Writing plugins
* See plugins/demoplugin.c for a very basic example plugin. * See plugins/demoplugin.c for a very basic example plugin.
* src/plugins.c loads and unloads plugins (you shouldn't need to read * src/plugins.c loads and unloads plugins (you shouldn't need to read
this really). 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. You should generate and read the plugin API documentation, see below.

View File

@ -44,6 +44,7 @@
* - @link plugindata.h Main Datatypes and Macros @endlink * - @link plugindata.h Main Datatypes and Macros @endlink
* - @link pluginsymbols.c Plugin Symbols @endlink * - @link pluginsymbols.c Plugin Symbols @endlink
* - @link signals Plugin Signals @endlink * - @link signals Plugin Signals @endlink
* - @link guidelines Plugin Writing Guidelines @endlink
* *
* @note Some of these pages are also listed in Related Pages. * @note Some of these pages are also listed in Related Pages.
*/ */
@ -248,6 +249,77 @@ PluginCallback plugin_callbacks[] =
* *
* *
* *
* @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 * @page howto Plugin Howto
* *
* @section intro Introduction * @section intro Introduction