/usr/share/gtk-doc/html/libanjuta/plugin-description-file.html is in libanjuta-dev 2:3.4.0-1.
This file is owned by root:root, with mode 0o644.
The actual contents of the file can be viewed below.
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 132 133 134 135 136 137 138 139 140 141 142 143 144 145 146 147 148 149 150 151 152 153 154 155 156 157 158 159 160 161 162 163 164 165 166 167 168 169 170 171 172 173 174 175 176 177 178 179 180 181 182 183 184 185 186 187 188 189 190 191 192 193 194 195 196 197 198 199 200 201 202 203 204 205 206 207 208 209 210 211 212 213 214 | <!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
<title>Plugin description file</title>
<meta name="generator" content="DocBook XSL Stylesheets V1.76.1">
<link rel="home" href="index.html" title="Anjuta Developers Reference Manual">
<link rel="up" href="index.html" title="Anjuta Developers Reference Manual">
<link rel="prev" href="writing-plugins-build-setup.html" title="Build setup">
<link rel="next" href="project-wizard-format.html" title="New Project Wizard format">
<meta name="generator" content="GTK-Doc V1.18 (XML mode)">
<link rel="stylesheet" href="style.css" type="text/css">
</head>
<body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
<table class="navigation" id="top" width="100%" summary="Navigation header" cellpadding="2" cellspacing="2"><tr valign="middle">
<td><a accesskey="p" href="writing-plugins-build-setup.html"><img src="left.png" width="24" height="24" border="0" alt="Prev"></a></td>
<td> </td>
<td><a accesskey="h" href="index.html"><img src="home.png" width="24" height="24" border="0" alt="Home"></a></td>
<th width="100%" align="center">Anjuta Developers Reference Manual</th>
<td><a accesskey="n" href="project-wizard-format.html"><img src="right.png" width="24" height="24" border="0" alt="Next"></a></td>
</tr></table>
<div class="chapter">
<div class="titlepage"><div><div><h2 class="title">
<a name="plugin-description-file"></a>Plugin description file</h2></div></div></div>
<p>
Plugin meta-data is a <span class="emphasis"><em>.plugin</em></span> file that
contains plugin information. Every plugin should have exactly one
meta-data file. This file is used by plugin manager to identify the
plugin and know the details prior to activation. Because there are
some fields which require translation, a <span class="emphasis"><em>.plugin.in</em></span>
file is written instead, from which the <span class="emphasis"><em>.plugin</em></span>
file will be derived after necessary translation.
</p>
<p>
Fields used in <span class="emphasis"><em>.plugin.in</em></span> file are:
</p>
<div class="variablelist"><table border="0">
<col align="left" valign="top">
<tbody>
<tr>
<td><p><span class="term">Group name</span></p></td>
<td><p>
The first group should
always be [Anjuta Plugin]. This group contains
plugin details and will be used by plugin manager.
</p></td>
</tr>
<tr>
<td><p><span class="term">Location</span></p></td>
<td><p>
Describes where the plugin is located. It is of the
form <span class="emphasis"><em>libname:classname
</em></span>. libname is the shared library name without
the 'lib' prefix and '.so' suffix.
<span class="emphasis"><em>classname</em></span> is the plugin class
defined in the library.
</p></td>
</tr>
<tr>
<td><p><span class="term">Interfaces</span></p></td>
<td><p>
Primary interfaces implemented by the plugin.
</p></td>
</tr>
<tr>
<td><p><span class="term">Interfaces</span></p></td>
<td><p>
Comma separated list
of all interfaces that this plugin depends on. Plugin
implementing these interaces will be activated before
activating this plugin. This field is optional. If
there is no dependencies, it may not present.
</p></td>
</tr>
<tr>
<td><p><span class="term">Icon</span></p></td>
<td><p>
Icon file name in .png format.
</p></td>
</tr>
<tr>
<td><p><span class="term">_Name</span></p></td>
<td><p>
Translatable plugin name.
Notice the '_' before the key name. It means the field
is translatable.
</p></td>
</tr>
<tr>
<td><p><span class="term">_Description</span></p></td>
<td><p>
Brief translatable
description. Notice the '_' before the key name. It
means the field is translatable.
</p></td>
</tr>
<tr>
<td><p><span class="term">Language</span></p></td>
<td><p>
Name of loader necessary to load
the plugin, by default the C
plugin loader included in libanjuta
is used. This name must be equal
to the value of the key SupportedLanguage
in the group [Plugin Loader] of the
loader plugin.
</p></td>
</tr>
<tr>
<td><p><span class="term">Dependencies</span></p></td>
<td><p>
Name of other plugins needed by this one.
These other plugins will be loaded before.
It can be useful to be sure that
a menu item has been created.
</p></td>
</tr>
<tr>
<td><p><span class="term">UserActivatable</span></p></td>
<td><p>
Set to "no", if the plugin cannot be loaded
by the user. Such plugins are loaded
automatically by Anjuta when needed. It is
the case for plugin providing support for
some file types by example. By default a plugin can
be loaded by the user.
</p></td>
</tr>
<tr>
<td><p><span class="term">ExcludeFromSession</span></p></td>
<td><p>
Set to "yes", if the plugin is not saved in
the user session. Such plugin must be
non user activatable too. This is the case
for project manager plugin. When activated it
loads a new session, so it does
not belong to the first session and should not
be saved inside. By default all plugins are saved
in the current user session.
</p></td>
</tr>
</tbody>
</table></div>
<p>
Here is a typical plugin meta-data file
(anjuta-document-manager.plugin.in):
</p>
<pre class="programlisting">
[Anjuta Plugin]
Location=anjuta-editor:EditorPlugin
Interfaces=IAnjutaDocumentManager
Dependencies=IAnjutaLauncher,IAnjutaMessageManager
Icon=anjuta-document-manager.png
_Name=Document Manager
_Description=Provides document management capabilities.
</pre>
<p>
</p>
<p>
In addition to mandatory <span class="emphasis"><em>[Anjuta Plugin]</em></span> group,
the meta-data file can also contain other groups, which a plugin can
read using
<a class="link" href="libanjuta-AnjutaPluginDescription.html#AnjutaPluginDescription" title="AnjutaPluginDescription"><span class="type">AnjutaPluginDescription</span></a>
methods. plugin manager simply ignores
these additional groups, but plugins can use them on their own.
</p>
<p>
A typical example would be using an extra group (e.g [Supported Mime Types])
for a anjuta-open-file plugin to identify plugins supporting
mime-types. It could then activate the correct plugin to open a
particular file based on its mime-type (in addition to requiring that
the opener plugin support a generic interface,
such as <span class="type">IAnjutaStream</span>
or <span class="type">IAnjutaFile</span>)
</p>
<p>
To install the meta-data and icon files, add the following code in
Makefile.am:
</p>
<pre class="programlisting">
plugin_in_files = anjuta-plugin-name.plugin.in
%.plugin: %.plugin.in $(INTLTOOL_MERGE) $(wildcard $(top_srcdir)/po/*po) ; \
$(INTLTOOL_MERGE) $(top_srcdir)/po $< $@ -d -u \ \
-c $(top_builddir)/po/.intltool-merge-cache
anjuta_plugindir = $(libdir)/anjuta
anjuta_plugin_DATA = $(plugin_in_files:.plugin.in=.plugin)
plugin_icondir = $(datadir)/pixmaps/anjuta
plugin_icon_DATA = anjuta-plugin-name.png
</pre>
<p>
</p>
<div class="note" style="margin-left: 0.5in; margin-right: 0.5in;">
<h3 class="title">Note</h3>
<p>
The $(datadir) variable should exactly match with installed
Anjuta's datadir. In case it is different, use the command
"pkg-config --variable=prefix libanjuta" in configure.in
to determine the installed prefix of Anjuta.
</p>
</div>
<p>
</p>
</div>
<div class="footer">
<hr>
Generated by GTK-Doc V1.18</div>
</body>
</html>
|