SF.net SVN: geany: [1782] trunk

ntrel at users.sourceforge.net ntrel at xxxxx
Fri Aug 10 11:29:38 UTC 2007


Revision: 1782
          http://geany.svn.sourceforge.net/geany/?rev=1782&view=rev
Author:   ntrel
Date:     2007-08-10 04:29:37 -0700 (Fri, 10 Aug 2007)

Log Message:
-----------
Make 'Delete current line' and 'Select current line' work for all
lines that have a selection.
Implement 'Copy current line'.

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

Modified: trunk/ChangeLog
===================================================================
--- trunk/ChangeLog	2007-08-09 22:29:31 UTC (rev 1781)
+++ trunk/ChangeLog	2007-08-10 11:29:37 UTC (rev 1782)
@@ -1,3 +1,11 @@
+2007-08-10  Nick Treleaven  <nick(dot)treleaven(at)btinternet(dot)com>
+
+ * src/keybindings.c, src/editor.c, src/editor.h:
+   Make 'Delete current line' and 'Select current line' work for all
+   lines that have a selection.
+   Implement 'Copy current line'.
+
+
 2007-08-10  Enrico Tröger  <enrico(dot)troeger(at)uvena(dot)de>
 
  * tagmanager/php.c: Fix parsing classes with modifiers like 'final'.

Modified: trunk/src/editor.c
===================================================================
--- trunk/src/editor.c	2007-08-09 22:29:31 UTC (rev 1781)
+++ trunk/src/editor.c	2007-08-10 11:29:37 UTC (rev 1782)
@@ -2297,18 +2297,19 @@
 }
 
 
-void editor_select_line(ScintillaObject *sci)
+void editor_select_lines(ScintillaObject *sci)
 {
-	gint pos, line, start, end;
+	gint start, end;
 
 	g_return_if_fail(sci != NULL);
 
-	pos = SSM(sci, SCI_GETCURRENTPOS, 0, 0);
-	line = SSM(sci, SCI_LINEFROMPOSITION, pos, 0);
+	start = sci_get_selection_start(sci);
+	start = sci_get_line_from_position(sci, start);
+	start = sci_get_position_from_line(sci, start);
+	end = sci_get_selection_end(sci);
+	end = sci_get_line_from_position(sci, end);
+	end = sci_get_position_from_line(sci, end + 1);
 
-	start = SSM(sci, SCI_POSITIONFROMLINE, line, TRUE);
-	end = SSM(sci, SCI_POSITIONFROMLINE, line + 1, TRUE);
-
 	SSM(sci, SCI_SETSEL, start, end);
 }
 

Modified: trunk/src/editor.h
===================================================================
--- trunk/src/editor.h	2007-08-09 22:29:31 UTC (rev 1781)
+++ trunk/src/editor.h	2007-08-10 11:29:37 UTC (rev 1782)
@@ -137,7 +137,7 @@
 
 void editor_select_word(ScintillaObject *sci);
 
-void editor_select_line(ScintillaObject *sci);
+void editor_select_lines(ScintillaObject *sci);
 
 void editor_select_paragraph(ScintillaObject *sci);
 

Modified: trunk/src/keybindings.c
===================================================================
--- trunk/src/keybindings.c	2007-08-09 22:29:31 UTC (rev 1781)
+++ trunk/src/keybindings.c	2007-08-10 11:29:37 UTC (rev 1782)
@@ -245,11 +245,11 @@
 	keys[GEANY_KEYS_EDIT_DUPLICATELINE] = fill(cb_func_edit,
 		GDK_d, GDK_CONTROL_MASK, "edit_duplicateline", _("Duplicate line or selection"));
 	keys[GEANY_KEYS_EDIT_DELETELINE] = fill(cb_func_edit,
-		GDK_k, GDK_CONTROL_MASK, "edit_deleteline", _("Delete current line"));
+		GDK_k, GDK_CONTROL_MASK, "edit_deleteline", _("Delete current line(s)"));
 	keys[GEANY_KEYS_EDIT_COPYLINE] = fill(cb_func_edit,
-		GDK_k, GDK_MOD1_MASK | GDK_SHIFT_MASK, "edit_copyline", _("Copy current line"));
+		GDK_k, GDK_MOD1_MASK | GDK_SHIFT_MASK, "edit_copyline", _("Copy current line(s)"));
 	keys[GEANY_KEYS_EDIT_CUTLINE] = fill(cb_func_edit,
-		GDK_k, GDK_CONTROL_MASK | GDK_SHIFT_MASK, "edit_cutline", _("Cut current line"));
+		GDK_k, GDK_CONTROL_MASK | GDK_SHIFT_MASK, "edit_cutline", _("Cut current line(s)"));
 	keys[GEANY_KEYS_EDIT_TRANSPOSELINE] = fill(cb_func_edit,
 		GDK_t, GDK_CONTROL_MASK, "edit_transposeline", _("Transpose current line"));
 	keys[GEANY_KEYS_EDIT_TOLOWERCASE] = fill(cb_func_edit,
@@ -305,7 +305,7 @@
 	keys[GEANY_KEYS_EDIT_SELECTWORD] = fill(cb_func_edit,
 		GDK_w, GDK_SHIFT_MASK | GDK_MOD1_MASK, "edit_selectword", _("Select current word"));
 	keys[GEANY_KEYS_EDIT_SELECTLINE] = fill(cb_func_edit,
-		GDK_l, GDK_SHIFT_MASK | GDK_MOD1_MASK, "edit_selectline", _("Select current line"));
+		GDK_l, GDK_SHIFT_MASK | GDK_MOD1_MASK, "edit_selectline", _("Select current line(s)"));
 	keys[GEANY_KEYS_EDIT_SELECTPARAGRAPH] = fill(cb_func_edit,
 		GDK_p, GDK_SHIFT_MASK | GDK_MOD1_MASK, "edit_selectparagraph", _("Select current paragraph"));
 	keys[GEANY_KEYS_EDIT_SCROLLTOLINE] = fill(cb_func_edit,
@@ -1106,8 +1106,13 @@
 			on_menu_duplicate_line1_activate(NULL, NULL);
 			break;
 		case GEANY_KEYS_EDIT_DELETELINE:
-			sci_cmd(doc_list[idx].sci, SCI_LINEDELETE);
+			// SCI_LINEDELETE only does 1 line
+			editor_select_lines(doc_list[idx].sci);
+			sci_clear(doc_list[idx].sci);
 			break;
+		case GEANY_KEYS_EDIT_COPYLINE:
+			sci_cmd(doc_list[idx].sci, SCI_LINECOPY);
+			break;
 		case GEANY_KEYS_EDIT_CUTLINE:
 			sci_cmd(doc_list[idx].sci, SCI_LINECUT);
 			break;
@@ -1151,7 +1156,7 @@
 			editor_select_word(doc_list[idx].sci);
 			break;
 		case GEANY_KEYS_EDIT_SELECTLINE:
-			editor_select_line(doc_list[idx].sci);
+			editor_select_lines(doc_list[idx].sci);
 			break;
 		case GEANY_KEYS_EDIT_SELECTPARAGRAPH:
 			editor_select_paragraph(doc_list[idx].sci);


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