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()`