The modifications below provide:

  1. While calling the popup menu:
  2. While pressing a context hotkey:
  3. The context action string can contain the %f, %d, %e, %p, &l wildcards.

ui_utils.h

void ui_update_popup_goto_items(gchar* enable);

ui_utils.c

void ui_update_popup_goto_items(gchar* enable)
{
    guint i, len;
    len = G_N_ELEMENTS(widgets.popup_goto_items);
    for (i = 0; i < len; i++)
        ui_widget_set_sensitive(widgets.popup_goto_items[i], enable[i]=='1');
}

keybindings.c

case GEANY_KEYS_EDITOR_CONTEXTACTION:
    //if (check_current_word(doc, FALSE))
        on_context_action1_activate(GTK_MENU_ITEM(ui_lookup_widget(main_widgets.editor_menu,
            "context_action1")), NULL);

editor.c

gchar cangos[64];//never reachable maximum
for (gint i=0; i<64; i++) cangos[i]=(can_goto?'1':'0'); //apl
gchar* command;
if (doc->file_type != NULL &&
!EMPTY(doc->file_type->context_action_cmd))
    command = g_strdup(doc->file_type->context_action_cmd);
else
    command = g_strdup(tool_prefs.context_action_cmd);
cangos[1] = (G_LIKELY(!EMPTY(command))?'1':'0'); //flag the context action
g_free(command);

ui_update_popup_goto_items(cangos);

callbacks.c

{
    editor_find_current_word_sciwc(doc->editor, -1,
        editor_info.current_word, GEANY_MAX_WORD_LENGTH);
    word = g_strdup(editor_info.current_word);
}
<..>
    gchar *command_tmp = g_strdup(command); //==
    gchar *command_line = build_replace_placeholder(doc, command_tmp); //==
    g_free(command_tmp); //==

    utils_str_replace_all(&command_line, "%s", word);


You are receiving this because you are subscribed to this thread.
Reply to this email directly, view it on GitHub, or mute the thread.