@eht16 What you do isn't the right approach. The problem is that you modify tag
names of `constructor_tags` array which is obtained using `tm_workspace_find`
so it points directly to the sorted tag manager array of tags. When you modify
the tag name, the array isn't sorted any more which leads to unpredictable
results.
But I think we don't have to modify the tags themselves, in this case we just
need to modify the string we pass to the calltip. Something similar to this
should work:
```diff
diff --git a/src/editor.c b/src/editor.c
index 7306418a8..c1a866616 100644
--- a/src/editor.c
+++ b/src/editor.c
@@ -1919,7 +1919,11 @@ static gchar *find_calltip(const gchar *word,
GeanyFiletype *ft)
if (str == NULL)
{
- gchar *f = tm_parser_format_function(tag->lang,
tag->name,
+ const gchar *tag_name = tag->name;
+
+ if (constructor_method && g_strcmp0(constructor_method,
tag->name) == 0)
+ tag_name = word;
+ gchar *f = tm_parser_format_function(tag->lang,
tag_name,
tag->arglist, tag->var_type, tag->scope);
str = g_string_new(NULL);
if (calltip.tag_index > 0)
```
--
Reply to this email directly or view it on GitHub:
https://github.com/geany/geany/pull/3334#issuecomment-1345672156
You are receiving this because you are subscribed to this thread.
Message ID: <geany/geany/pull/3334/[email protected]>