@@ -1906,9 +2002,27 @@ static gchar *find_calltip(const gchar *word, GeanyFiletype *ft)
g_return_val_if_fail(ft && word && *word, NULL);
- /* use all types in case language uses wrong tag type e.g. python "members" instead of "methods" */
- tags = tm_workspace_find(word, NULL, tm_tag_max_t, NULL, ft->lang);
- if (tags->len == 0)
- tags = get_scoped_tags(editor, pos - strlen(word));
- if (tags)
- {
GPtrArray *filtered = g_ptr_array_new();
foreach_ptr_array(tag, i, tags)
{
if (strcmp(tag->name, word) == 0)
g_ptr_array_add(filtered, tag);
hum… no, `get_scope_tags()` should find `this` in `this.member()`. And anyway, `tm_workspace_find_scope_members()` finds *all children on the given scope*, not filtered by any name.
Though, I can't really fully defend this, `pos - strlen(word)` might be a bit of luck, and might only work for 1-byte scope separators. But it odes seem to work somehow :]