<p>This is reworked version if <a href="https://github.com/geany/geany-plugins/pull/295" class="issue-link js-issue-link" data-url="https://github.com/geany/geany-plugins/issues/295" data-id="115609299" data-error-text="Failed to load issue title" data-permission-text="Issue title is private">#295</a> </p>

<p>I opened a new PR because I don't have incremental commits available (I cherry picked from the upstream PR <a href="https://github.com/codebrainz/geanypy/pull/37" class="issue-link js-issue-link" data-url="https://github.com/codebrainz/geanypy/issues/37" data-id="111275110" data-error-text="Failed to load issue title" data-permission-text="Issue title is private">codebrainz/geanypy#37</a>) and didn't want to destroy the comments there.</p>

<p>Anyway, the commits tell the story. This PR converts geanypy to a proxy plugin (needs Geany git master/1.26), and then adds the long-awaited keybindings support.</p>

<p>With this, python plugins are just like other plugins w.r.t to the PM dialog, configuration and keybindings</p>

<p>According to <a href="https://github.com/geany/geany-plugins/pull/295" class="issue-link js-issue-link" data-url="https://github.com/geany/geany-plugins/issues/295" data-id="115609299" data-error-text="Failed to load issue title" data-permission-text="Issue title is private">#295</a> <a href="https://github.com/codebrainz" class="user-mention">@codebrainz</a> is fine if G-P merges it first (<a href="https://github.com/codebrainz" class="user-mention">@codebrainz</a> please speak up if you changed your mind).</p>

<hr>

<h4>You can view, comment on, or merge this pull request online at:</h4>
<p>  <a href='https://github.com/geany/geany-plugins/pull/384'>https://github.com/geany/geany-plugins/pull/384</a></p>

<h4>Commit Summary</h4>
<ul>
  <li>Convert to a proxy plugin</li>
  <li>Store per-plugin GeanyPlugin pointer</li>
  <li>Add support for keybindings</li>
  <li>proxy: backward compatibility for legaxy show_configure()</li>
  <li>docs: update docs for the proxy plugin changes</li>
</ul>

<h4>File Changes</h4>
<ul>
  <li>
    <strong>M</strong>
    <a href="https://github.com/geany/geany-plugins/pull/384/files#diff-0">geanypy/README</a>
    (11)
  </li>
  <li>
    <strong>M</strong>
    <a href="https://github.com/geany/geany-plugins/pull/384/files#diff-1">geanypy/doc/source/starting.rst</a>
    (40)
  </li>
  <li>
    <strong>M</strong>
    <a href="https://github.com/geany/geany-plugins/pull/384/files#diff-2">geanypy/geany/Makefile.am</a>
    (2)
  </li>
  <li>
    <strong>M</strong>
    <a href="https://github.com/geany/geany-plugins/pull/384/files#diff-3">geanypy/geany/__init__.py</a>
    (4)
  </li>
  <li>
    <strong>D</strong>
    <a href="https://github.com/geany/geany-plugins/pull/384/files#diff-4">geanypy/geany/loader.py</a>
    (172)
  </li>
  <li>
    <strong>D</strong>
    <a href="https://github.com/geany/geany-plugins/pull/384/files#diff-5">geanypy/geany/manager.py</a>
    (179)
  </li>
  <li>
    <strong>M</strong>
    <a href="https://github.com/geany/geany-plugins/pull/384/files#diff-6">geanypy/geany/plugin.py</a>
    (16)
  </li>
  <li>
    <strong>M</strong>
    <a href="https://github.com/geany/geany-plugins/pull/384/files#diff-7">geanypy/plugins/Makefile.am</a>
    (2)
  </li>
  <li>
    <strong>M</strong>
    <a href="https://github.com/geany/geany-plugins/pull/384/files#diff-8">geanypy/plugins/console.py</a>
    (16)
  </li>
  <li>
    <strong>M</strong>
    <a href="https://github.com/geany/geany-plugins/pull/384/files#diff-9">geanypy/src/Makefile.am</a>
    (3)
  </li>
  <li>
    <strong>A</strong>
    <a href="https://github.com/geany/geany-plugins/pull/384/files#diff-10">geanypy/src/geanypy-keybindings.c</a>
    (213)
  </li>
  <li>
    <strong>A</strong>
    <a href="https://github.com/geany/geany-plugins/pull/384/files#diff-11">geanypy/src/geanypy-keybindings.h</a>
    (39)
  </li>
  <li>
    <strong>M</strong>
    <a href="https://github.com/geany/geany-plugins/pull/384/files#diff-12">geanypy/src/geanypy-plugin.c</a>
    (383)
  </li>
  <li>
    <strong>M</strong>
    <a href="https://github.com/geany/geany-plugins/pull/384/files#diff-13">geanypy/src/geanypy-plugin.h</a>
    (12)
  </li>
  <li>
    <strong>M</strong>
    <a href="https://github.com/geany/geany-plugins/pull/384/files#diff-14">geanypy/src/geanypy-signalmanager.c</a>
    (1)
  </li>
</ul>

<h4>Patch Links:</h4>
<ul>
  <li><a href='https://github.com/geany/geany-plugins/pull/384.patch'>https://github.com/geany/geany-plugins/pull/384.patch</a></li>
  <li><a href='https://github.com/geany/geany-plugins/pull/384.diff'>https://github.com/geany/geany-plugins/pull/384.diff</a></li>
</ul>

<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-plugins/pull/384">view it on GitHub</a>.<img alt="" height="1" src="https://github.com/notifications/beacon/ABDrJ3-qgxFOLaGgu8RJUActrBapbC7wks5pqsrCgaJpZM4HqPwM.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-plugins/pull/384"></link>
  <meta itemprop="name" content="View Pull Request"></meta>
</div>
<meta itemprop="description" content="View this Pull Request on GitHub"></meta>
</div>