<p>New, flexible interfaces to query tags from a workspace.</p>

<p>The existing functions are rather tied to their use case (either showing tag names in the autocomplete list or in the goto definition popup). E.g. there is currently no function to search for all tags starting with a prefix that does NOT do deduplication.</p>

<p>The goal is to provide these interfaces to plugins. In particular, python plugins (via my peasy plugin) can benefit. Mangling the global tag arrays manually is super slow (pygobject converts each tag in each array to a PyGObject on first use, even if no tag referenced). <br>
Another goal is to eventually use this in the existing tag search/query functions.</p>

<p><a href="https://github.com/techee" class="user-mention">@techee</a> <a href="https://github.com/b4n" class="user-mention">@b4n</a> Please comment and review</p>

<hr>

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

<h4>Commit Summary</h4>
<ul>
  <li>tagmanager: new query module</li>
  <li>gi: add support for array annoations</li>
  <li>plugin api: export new tagmanager query interfaces</li>
</ul>

<h4>File Changes</h4>
<ul>
  <li>
    <strong>M</strong>
    <a href="https://github.com/geany/geany/pull/1187/files#diff-0">doc/Doxyfile.in</a>
    (5)
  </li>
  <li>
    <strong>M</strong>
    <a href="https://github.com/geany/geany/pull/1187/files#diff-1">scripts/gen-api-gtkdoc.py</a>
    (3)
  </li>
  <li>
    <strong>M</strong>
    <a href="https://github.com/geany/geany/pull/1187/files#diff-2">src/tagmanager/Makefile.am</a>
    (6)
  </li>
  <li>
    <strong>A</strong>
    <a href="https://github.com/geany/geany/pull/1187/files#diff-3">src/tagmanager/tm_query.c</a>
    (312)
  </li>
  <li>
    <strong>A</strong>
    <a href="https://github.com/geany/geany/pull/1187/files#diff-4">src/tagmanager/tm_query.h</a>
    (37)
  </li>
  <li>
    <strong>M</strong>
    <a href="https://github.com/geany/geany/pull/1187/files#diff-5">src/tagmanager/tm_tag.c</a>
    (35)
  </li>
  <li>
    <strong>M</strong>
    <a href="https://github.com/geany/geany/pull/1187/files#diff-6">src/tagmanager/tm_tag.h</a>
    (12)
  </li>
  <li>
    <strong>M</strong>
    <a href="https://github.com/geany/geany/pull/1187/files#diff-7">src/tagmanager/tm_workspace.c</a>
    (4)
  </li>
</ul>

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

<p style="font-size:small;-webkit-text-size-adjust:none;color:#666;">—<br />You are receiving this because you are subscribed to this thread.<br />Reply to this email directly, <a href="https://github.com/geany/geany/pull/1187">view it on GitHub</a>, or <a href="https://github.com/notifications/unsubscribe-auth/ABDrJ6hGDmCJNf_U4yk-7vVyfVMJN3ktks5qihVcgaJpZM4JqVBL">mute the thread</a>.<img alt="" height="1" src="https://github.com/notifications/beacon/ABDrJ4gpTMsD7dvuEm5FC1L9KcLqPpkjks5qihVcgaJpZM4JqVBL.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/1187"></link>
  <meta itemprop="name" content="View Pull Request"></meta>
</div>
<meta itemprop="description" content="View this Pull Request on GitHub"></meta>
</div>

<script type="application/json" data-scope="inboxmarkup">{"api_version":"1.0","publisher":{"api_key":"05dde50f1d1a384dd78767c55493e4bb","name":"GitHub"},"entity":{"external_key":"github/geany/geany","title":"geany/geany","subtitle":"GitHub repository","main_image_url":"https://cloud.githubusercontent.com/assets/143418/17495839/a5054eac-5d88-11e6-95fc-7290892c7bb5.png","avatar_image_url":"https://cloud.githubusercontent.com/assets/143418/15842166/7c72db34-2c0b-11e6-9aed-b52498112777.png","action":{"name":"Open in GitHub","url":"https://github.com/geany/geany"}},"updates":{"snippets":[{"icon":"DESCRIPTION","message":"New tagmanager query module (#1187)"}],"action":{"name":"View Pull Request","url":"https://github.com/geany/geany/pull/1187"}}}</script>