/usr/share/gtk-doc/html/libanjuta/plugin-description-file.html is in libanjuta-dev 2:3.14.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 215 216 217 | <!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.78.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.19 (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><h1 class="title">
<a name="plugin-description-file"></a>Plugin description file</h1></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" class="variablelist">
<colgroup>
<col align="left" valign="top">
<col>
</colgroup>
<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="AnjutaPluginDescription.html" 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.19</div>
</body>
</html>
 |