<p>Am 23.08.2016 um 09:27 schrieb Jiří Techet:</p>

<blockquote>
<pre><code>Another goal is to eventually use this in the existing tag search/query functions.
</code></pre>

<p>For C this new API is more or less useless because the filtering can easily be done by directly looking at the tag values and IMO it's more explicit and clearer than using some layer in between.</p>
</blockquote>

<p>I disagree. It's a very nice improvement if <code>tm_workspace_find_prefix()</code> along with its helper <code>fill_find_tags_array_prefix()</code> can be replaced with a simple implementation like this:</p>

<pre><code>GPtrArray *tm_workspace_find_prefix(const char *prefix, TMParserType lang, guint max_num)
{
    TMTagAttrType dedup_attrs[] = { tm_tag_attr_name_t, 0 };
    GPtrArray *tags;
    TMQuery *q = tm_query_new(theWorkspace, TM_QUERY_SOURCE_GLOBAL_TAGS | TM_QUERY_SOURCE_SESSION_TAGS);
    tm_query_add_name(q, prefix, strlen(prefix));
    tm_query_add_lang(q, lang);
    tags = tm_query_exec(q, NULL, dedup_attr);

    if (tags->len > max_num)
        tags->len = max_num;
    return tags;
}
</code></pre>

<p>Same goes for <code>tm_workspace_find()</code> and <code>tm_workspace_find_scope_members()</code></p>

<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#issuecomment-241656001">view it on GitHub</a>, or <a href="https://github.com/notifications/unsubscribe-auth/ABDrJzSBqFKaLmcQULnmkhbFAsbMeGWuks5qiqgpgaJpZM4JqVBL">mute the thread</a>.<img alt="" height="1" src="https://github.com/notifications/beacon/ABDrJ8P7ZSwUexwfMvD-CW-TCsywoTSwks5qiqgpgaJpZM4JqVBL.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#issuecomment-241656001"></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":"PERSON","message":"@kugel- in #1187: Am 23.08.2016 um 09:27 schrieb Jiří Techet:\r\n\u003e\r\n\u003e     Another goal is to eventually use this in the existing tag search/query functions.\r\n\u003e\r\n\u003e For C this new API is more or less useless because the filtering can easily be done by directly looking at the tag values and IMO it's more explicit and clearer than using some layer in between.\r\n\r\nI disagree. It's a very nice improvement if `tm_workspace_find_prefix()` along with its helper `fill_find_tags_array_prefix()` can be replaced with a simple implementation like this:\r\n\r\n```\r\nGPtrArray *tm_workspace_find_prefix(const char *prefix, TMParserType lang, guint max_num)\r\n{\r\n    TMTagAttrType dedup_attrs[] = { tm_tag_attr_name_t, 0 };\r\n    GPtrArray *tags;\r\n    TMQuery *q = tm_query_new(theWorkspace, TM_QUERY_SOURCE_GLOBAL_TAGS | TM_QUERY_SOURCE_SESSION_TAGS);\r\n    tm_query_add_name(q, prefix, strlen(prefix));\r\n    tm_query_add_lang(q, lang);\r\n    tags = tm_query_exec(q, NULL, dedup_attr);\r\n\r\n    if (tags-\u003elen \u003e max_num)\r\n        tags-\u003elen = max_num;\r\n    return tags;\r\n}\r\n```\r\n\r\nSame goes for `tm_workspace_find()` and `tm_workspace_find_scope_members()`"}],"action":{"name":"View Pull Request","url":"https://github.com/geany/geany/pull/1187#issuecomment-241656001"}}}</script>