<p>In <a href="https://github.com/geany/geany/pull/629#discussion_r40382165">doc/plugins.dox</a>:</p>
<pre style='color:#555'>> +
> +  plugin->proxy_funcs->probe  = demoproxy_probe;
> +  plugin->proxy_funcs->load   = demoproxy_load;
> +  plugin->proxy_funcs->unload = demoproxy_unload;
> +
> +  return geany_plugin_register_proxy(plugin, extensions);
> +}
> +
> +@endcode
> +
> +The callback functions deserve a closer look.
> +
> +As already mentioned the file format includes a magic first line which must be present.
> +GeanyProxyFuncs::probe() verifies that it's present and avoids showing the sub-plugin in the
> +Plugin Manager if not.
> +
</pre>
<p>As a general comment, I got confused which functionalities are part of Geany, and which are part of the proxy because the language says a function "does something" making it sound like it exists and so is part of Geany, rather than "must do something" which states a requirement for the proxy.  So the above sentence should read:</p>

<p>"GeanyProxyFuncs::probe() should verify that the correct identification is present and return <code>false</code> so Geany avoids showing the sub-plugin in the Plugin Manager."</p>

<p>That way its clear what the callback function does and what Geany does.</p>

<p>This applies in other places as well.</p>

<p style="font-size:small;-webkit-text-size-adjust:none;color:#666;">—<br>Reply to this email directly or <a href="https://github.com/geany/geany/pull/629/files#r40382165">view it on GitHub</a>.<img alt="" height="1" src="https://github.com/notifications/beacon/ABDrJwsWIsVBEdU0OfYQ92qhEY5iK54Rks5o1HMXgaJpZM4Fy7fG.gif" width="1" /></p>
<div itemscope itemtype="http://schema.org/EmailMessage">
<div itemprop="action" itemscope itemtype="http://schema.org/ViewAction">
  <link itemprop="url" href="https://github.com/geany/geany/pull/629/files#r40382165"></link>
  <meta itemprop="name" content="View Pull Request"></meta>
</div>
<meta itemprop="description" content="View this Pull Request on GitHub"></meta>
</div>