Branch: refs/heads/master Author: Jiří Techet techet@gmail.com Committer: GitHub noreply@github.com Date: Sat, 30 Apr 2022 22:44:51 UTC Commit: 3ebcfee4c729e745979c6f830ed8dc2ba7c7cace https://github.com/geany/geany/commit/3ebcfee4c729e745979c6f830ed8dc2ba7c7ca...
Log Message: ----------- Merge pull request #3176 from techee/autocomplete_icon
Show correct icons in autocompletion popups
Modified Paths: -------------- src/editor.c src/symbols.c src/symbols.h
Modified: src/editor.c 22 lines changed, 15 insertions(+), 7 deletions(-) =================================================================== @@ -619,6 +619,8 @@ static void show_tags_list(GeanyEditor *editor, const GPtrArray *tags, gsize roo for (j = 0; j < tags->len; ++j) { TMTag *tag = tags->pdata[j]; + gint group; + guint icon_id;
if (j > 0) g_string_append_c(words, '\n'); @@ -630,11 +632,13 @@ static void show_tags_list(GeanyEditor *editor, const GPtrArray *tags, gsize roo } g_string_append(words, tag->name);
- /* for now, tag types don't all follow C, so just look at arglist */ - if (!EMPTY(tag->arglist)) - g_string_append(words, "?2"); - else - g_string_append(words, "?1"); + group = tm_parser_get_sidebar_group(tag->lang, tag->type); + if (group >= 0 && tm_parser_get_sidebar_info(tag->lang, group, &icon_id)) + { + gchar buf[10]; + sprintf(buf, "?%u", icon_id + 1); + g_string_append(words, buf); + } } show_autocomplete(sci, rootlen, words); g_string_free(words, TRUE); @@ -4850,6 +4854,7 @@ static ScintillaObject *create_new_sci(GeanyEditor *editor) { ScintillaObject *sci; int rectangular_selection_modifier; + guint i;
sci = SCINTILLA(scintilla_new());
@@ -4874,8 +4879,11 @@ static ScintillaObject *create_new_sci(GeanyEditor *editor) SSM(sci, SCI_SETSCROLLWIDTHTRACKING, 1, 0);
/* tag autocompletion images */ - register_named_icon(sci, 1, "classviewer-var"); - register_named_icon(sci, 2, "classviewer-method"); + for (i = 0; i < TM_N_ICONS; i++) + { + const gchar *icon_name = symbols_get_icon_name(i); + register_named_icon(sci, i + 1, icon_name); + }
/* necessary for column mode editing, implemented in Scintilla since 2.0 */ SSM(sci, SCI_SETADDITIONALSELECTIONTYPING, 1, 0);
Modified: src/symbols.c 8 lines changed, 8 insertions(+), 0 deletions(-) =================================================================== @@ -2023,6 +2023,14 @@ gint symbols_get_current_scope(GeanyDocument *doc, const gchar **tagname) }
+const gchar *symbols_get_icon_name(guint icon_id) +{ + if (icon_id < TM_N_ICONS) + return symbols_icons[icon_id].icon_name; + return NULL; +} + + static void on_symbol_tree_sort_clicked(GtkMenuItem *menuitem, gpointer user_data) { gint sort_mode = GPOINTER_TO_INT(user_data);
Modified: src/symbols.h 2 lines changed, 2 insertions(+), 0 deletions(-) =================================================================== @@ -63,6 +63,8 @@ gint symbols_get_current_function(GeanyDocument *doc, const gchar **tagname);
gint symbols_get_current_scope(GeanyDocument *doc, const gchar **tagname);
+const gchar *symbols_get_icon_name(guint icon_id); + #endif /* GEANY_PRIVATE */
G_END_DECLS
-------------- This E-Mail was brought to you by github_commit_mail.py (Source: https://github.com/geany/infrastructure).