Am 23.08.2016 um 09:27 schrieb Jiří Techet:
>
>     Another goal is to eventually use this in the existing tag search/query 
> functions.
>
> 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.

I 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:

```
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;
}
```

Same goes for `tm_workspace_find()` and `tm_workspace_find_scope_members()`

-- 
You are receiving this because you are subscribed to this thread.
Reply to this email directly or view it on GitHub:
https://github.com/geany/geany/pull/1187#issuecomment-241656001

Reply via email to