Applied patch from Anh Phạm to add a keybinding for selecting the current word under the cursor (thanks).

git-svn-id: https://geany.svn.sourceforge.net/svnroot/geany/trunk@1413 ea778897-0a13-0410-b9d1-a72fbfd435f5
master
Enrico Tröger 2007-03-22 15:51:39 +00:00
parent 8464538201
commit 94a1b00fe2
7 changed files with 48 additions and 0 deletions

View File

@ -1,3 +1,11 @@
2007-03-22 Enrico Tröger <enrico.troeger@uvena.de>
* THANKS, doc/geany.docbook, src/keybindings.c, src/keybindings.h,
src/sci_cb.c, src/sci_cb.h:
Applied patch from Anh Phạm to add a keybinding for selecting the
current word under the cursor (thanks).
2007-03-21 Nick Treleaven <nick.treleaven@btinternet.com>
* src/project.c:

1
THANKS
View File

@ -26,6 +26,7 @@ Tomás Vírseda <kaskaras(at)gmail(dot)com> - sort open files patch
Dirk Weber <dietrich-weber(at)web(dot)de>
Slava Semushin <slava(dot)semushin(at)gmail(dot)com> - patch to improve SVN checks in cofigure script
John Gabriele <jmg3000(at)gmail(dot)com> - documentation patches
Anh Phạm <cs(dot)phamtuananh(at)gmail(dot)com> - various patches
Translators:
----------------------------------

View File

@ -1509,6 +1509,11 @@
will not be auto completed.
</entry>
</row>
<row>
<entry>Select current word</entry>
<entry>Selects the current word under the cursor.
</entry>
</row>
<row>
<entry>Find Usage</entry>
<entry>Finds all occurrences of the current word (near the

View File

@ -263,6 +263,9 @@ void keybindings_init(void)
keys[GEANY_KEYS_EDIT_SUPPRESSCOMPLETION] = fill(cb_func_edit,
GDK_space, GDK_SHIFT_MASK, "edit_suppresscompletion", _("Suppress auto completion"));
keys[GEANY_KEYS_EDIT_SELECTWORD] = fill(cb_func_edit,
0, 0, "edit_selectword", _("Select current word"));
keys[GEANY_KEYS_POPUP_FINDUSAGE] = fill(cb_func_current_word,
0, 0, "popup_findusage", _("Find Usage"));
keys[GEANY_KEYS_POPUP_GOTOTAGDEFINITION] = fill(cb_func_current_word,
@ -862,6 +865,9 @@ static void cb_func_edit(guint key_id)
case GEANY_KEYS_EDIT_SUPPRESSCOMPLETION:
sci_add_text(doc_list[idx].sci, " ");
break;
case GEANY_KEYS_EDIT_SELECTWORD:
sci_cb_select_word(doc_list[idx].sci);
break;
case GEANY_KEYS_EDIT_INCREASEINDENT:
on_menu_increase_indent1_activate(NULL, NULL);
break;

View File

@ -112,6 +112,7 @@ enum
GEANY_KEYS_EDIT_CALLTIP,
GEANY_KEYS_EDIT_MACROLIST,
GEANY_KEYS_EDIT_SUPPRESSCOMPLETION,
GEANY_KEYS_EDIT_SELECTWORD,
GEANY_KEYS_POPUP_FINDUSAGE,
GEANY_KEYS_POPUP_GOTOTAGDEFINITION,
GEANY_KEYS_POPUP_GOTOTAGDECLARATION,

View File

@ -2141,3 +2141,28 @@ static void scroll_to_line(ScintillaObject *sci, gint line, gfloat percent_of_vi
//sci_scroll_caret(sci); // ensure visible (maybe not needed now)
}
void sci_cb_select_word(ScintillaObject *sci)
{
gint pos;
gint start;
gint end;
g_return_if_fail(sci != NULL);
pos = SSM(sci, SCI_GETCURRENTPOS, 0, 0);
start = SSM(sci, SCI_WORDSTARTPOSITION, pos, TRUE);
end = SSM(sci, SCI_WORDENDPOSITION, pos, TRUE);
if (start == end) // caret in whitespaces sequence
{
// look forward but reverse the selection direction,
// so the caret end up stay as near as the original position.
end = SSM(sci, SCI_WORDENDPOSITION, pos, FALSE);
start = SSM(sci, SCI_WORDENDPOSITION, end, TRUE);
if (start == end)
return;
}
SSM(sci, SCI_SETSEL, start, end);
}

View File

@ -86,4 +86,6 @@ gint sci_cb_lexer_get_type_keyword_idx(gint lexer);
void sci_cb_insert_multiline_comment(gint idx);
void sci_cb_select_word(ScintillaObject *sci);
#endif