SF.net SVN: geany: [884] trunk

eht16 at users.sourceforge.net eht16 at xxxxx
Wed Oct 11 22:01:34 UTC 2006


Revision: 884
          http://svn.sourceforge.net/geany/?rev=884&view=rev
Author:   eht16
Date:     2006-10-11 15:01:26 -0700 (Wed, 11 Oct 2006)

Log Message:
-----------
Added keyboard shortcut Ctrl+< to jump between matching braces(closes #1571283).

Modified Paths:
--------------
    trunk/ChangeLog
    trunk/src/keybindings.c
    trunk/src/keybindings.h
    trunk/src/sciwrappers.c
    trunk/src/sciwrappers.h

Modified: trunk/ChangeLog
===================================================================
--- trunk/ChangeLog	2006-10-11 19:45:40 UTC (rev 883)
+++ trunk/ChangeLog	2006-10-11 22:01:26 UTC (rev 884)
@@ -6,6 +6,9 @@
    tagmanager/parsers.h, tagmanager/diff.c, src/filetypes.c,
    src/treeviews.c: Added simple parser for filetype Diff to create
                     tags for each patched file in a diff file.
+ * src/sci_wrappers.c: Added sci_find_bracematch().
+ * src/keybindings.c: Added keyboard shortcut Ctrl+< to jump between
+                      matching braces(closes #1571283).
 
 
 

Modified: trunk/src/keybindings.c
===================================================================
--- trunk/src/keybindings.c	2006-10-11 19:45:40 UTC (rev 883)
+++ trunk/src/keybindings.c	2006-10-11 22:01:26 UTC (rev 884)
@@ -92,6 +92,7 @@
 static void cb_func_edit_commentlinetoggle(void);
 static void cb_func_edit_uncommentline(void);
 static void cb_func_edit_increaseindent(void);
+static void cb_func_edit_gotomatchingbrace(void);
 static void cb_func_edit_decreaseindent(void);
 static void cb_func_edit_autocomplete(void);
 static void cb_func_edit_calltip(void);
@@ -214,6 +215,8 @@
 		GDK_i, GDK_CONTROL_MASK, "edit_increaseindent", _("Increase indent"));
 	keys[GEANY_KEYS_EDIT_DECREASEINDENT] = fill(cb_func_edit_decreaseindent,
 		GDK_i, GDK_SHIFT_MASK | GDK_CONTROL_MASK, "edit_decreaseindent", _("Decrease indent"));
+	keys[GEANY_KEYS_EDIT_GOTOMATCHINGBRACE] = fill(cb_func_edit_gotomatchingbrace,
+		GDK_less, GDK_CONTROL_MASK, "edit_gotomatchingbrace", _("Goto matching brace"));
 	keys[GEANY_KEYS_EDIT_AUTOCOMPLETE] = fill(cb_func_edit_autocomplete,
 		GDK_space, GDK_CONTROL_MASK, "edit_autocomplete", _("Complete word"));
 #ifdef G_OS_WIN32
@@ -796,6 +799,26 @@
 	on_menu_decrease_indent1_activate(NULL, NULL);
 }
 
+static void cb_func_edit_gotomatchingbrace(void)
+{
+	gint pos, new_pos;
+	gint idx = document_get_cur_idx();
+
+	if (! DOC_IDX_VALID(idx)) return;
+
+	pos = sci_get_current_position(doc_list[idx].sci);
+	if (! utils_isbrace(sci_get_char_at(doc_list[idx].sci, pos)))
+		pos--; // set pos to the brace
+
+	new_pos = sci_find_bracematch(doc_list[idx].sci, pos);
+	if (new_pos != -1)
+	{
+		gint line = sci_get_line_from_position(doc_list[idx].sci, new_pos);
+		sci_goto_line_scroll(doc_list[idx].sci, line, 0.5);
+		sci_goto_pos(doc_list[idx].sci, new_pos, FALSE); // set also the cursor the brace
+	}
+}
+
 static void cb_func_edit_tolowercase(void)
 {
 	on_to_lower_case1_activate(NULL, NULL);

Modified: trunk/src/keybindings.h
===================================================================
--- trunk/src/keybindings.h	2006-10-11 19:45:40 UTC (rev 883)
+++ trunk/src/keybindings.h	2006-10-11 22:01:26 UTC (rev 884)
@@ -90,6 +90,7 @@
 	GEANY_KEYS_EDIT_UNCOMMENTLINE,
 	GEANY_KEYS_EDIT_INCREASEINDENT,
 	GEANY_KEYS_EDIT_DECREASEINDENT,
+	GEANY_KEYS_EDIT_GOTOMATCHINGBRACE,
 	GEANY_KEYS_EDIT_AUTOCOMPLETE,
 	GEANY_KEYS_EDIT_CALLTIP,
 	GEANY_KEYS_EDIT_MACROLIST,

Modified: trunk/src/sciwrappers.c
===================================================================
--- trunk/src/sciwrappers.c	2006-10-11 19:45:40 UTC (rev 883)
+++ trunk/src/sciwrappers.c	2006-10-11 22:01:26 UTC (rev 884)
@@ -865,3 +865,9 @@
 {
 	SSM(sci, SCI_AUTOCSETMAXHEIGHT, val, 0);
 }
+
+gint sci_find_bracematch(ScintillaObject *sci, gint pos)
+{
+	return SSM(sci, SCI_BRACEMATCH, pos, 0);
+}
+

Modified: trunk/src/sciwrappers.h
===================================================================
--- trunk/src/sciwrappers.h	2006-10-11 19:45:40 UTC (rev 883)
+++ trunk/src/sciwrappers.h	2006-10-11 22:01:26 UTC (rev 884)
@@ -157,5 +157,6 @@
 void				sci_select_all				(ScintillaObject * sci);
 gint				sci_get_line_indent_position(ScintillaObject * sci, gint line);
 void				sci_set_autoc_max_height	(ScintillaObject * sci, gint val);
+gint				sci_find_bracematch			(ScintillaObject * sci, gint pos);
 
 #endif


This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site.



More information about the Commits mailing list