SF.net SVN: geany: [1292] trunk

ntrel at users.sourceforge.net ntrel at xxxxx
Fri Feb 16 16:38:23 UTC 2007


Revision: 1292
          http://svn.sourceforge.net/geany/?rev=1292&view=rev
Author:   ntrel
Date:     2007-02-16 08:38:23 -0800 (Fri, 16 Feb 2007)

Log Message:
-----------
Rename sci_get_line_end_from_position() with line argument, not
position.
Don't autocomplete for/if constructs when editing an existing line.

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

Modified: trunk/ChangeLog
===================================================================
--- trunk/ChangeLog	2007-02-16 16:34:57 UTC (rev 1291)
+++ trunk/ChangeLog	2007-02-16 16:38:23 UTC (rev 1292)
@@ -1,3 +1,11 @@
+2007-02-16  Nick Treleaven  <nick.treleaven at btinternet.com>
+
+ * src/sciwrappers.c, src/sciwrappers.h, src/sci_cb.c, src/document.c:
+   Rename sci_get_line_end_from_position() with line argument, not
+   position.
+   Don't autocomplete for/if constructs when editing an existing line.
+
+
 2007-02-15  Enrico Tröger  <enrico.troeger at uvena.de>
 
  * data/filetypes.perl, src/highlighting.c:

Modified: trunk/src/document.c
===================================================================
--- trunk/src/document.c	2007-02-16 16:34:57 UTC (rev 1291)
+++ trunk/src/document.c	2007-02-16 16:38:23 UTC (rev 1292)
@@ -1635,7 +1635,7 @@
 	for (line = 0; line < max_lines; line++)
 	{
 		gint line_start = sci_get_position_from_line(doc_list[idx].sci, line);
-		gint line_end = sci_get_line_end_from_position(doc_list[idx].sci, line);
+		gint line_end = sci_get_line_end_position(doc_list[idx].sci, line);
 		gint i = line_end - 1;
 		gchar ch = sci_get_char_at(doc_list[idx].sci, i);
 

Modified: trunk/src/sci_cb.c
===================================================================
--- trunk/src/sci_cb.c	2007-02-16 16:34:57 UTC (rev 1291)
+++ trunk/src/sci_cb.c	2007-02-16 16:38:23 UTC (rev 1292)
@@ -902,6 +902,14 @@
 }
 
 
+static gboolean at_eol(ScintillaObject *sci, gint pos)
+{
+	gint line = sci_get_line_from_position(sci, pos);
+
+	return (pos == sci_get_line_end_position(sci, line));
+}
+
+
 void sci_cb_auto_forif(gint idx, gint pos)
 {
 	static gchar buf[16];
@@ -910,17 +918,11 @@
 	gchar *construct;
 	gint lexer, style;
 	gint i;
-	gint last_pos;
 	gint space_len;
 	ScintillaObject *sci;
 
 	if (idx == -1 || ! doc_list[idx].is_valid || doc_list[idx].file_type == NULL) return;
-	sci = doc_list[idx].sci;
 
-	last_pos = sci_get_length(sci);
-	lexer = SSM(sci, SCI_GETLEXER, 0, 0);
-	style = SSM(sci, SCI_GETSTYLEAT, pos - 2, 0);
-
 	// only for C, C++, D, Ferite, Java, JavaScript, Perl and PHP
 	if (doc_list[idx].file_type->id != GEANY_FILETYPES_PHP &&
 		doc_list[idx].file_type->id != GEANY_FILETYPES_C &&
@@ -932,6 +934,13 @@
 		doc_list[idx].file_type->id != GEANY_FILETYPES_FERITE)
 		return;
 
+	sci = doc_list[idx].sci;
+	// return if we are editing an existing line (chars on right of cursor)
+	if (! at_eol(sci, pos))
+		return;
+
+	lexer = SSM(sci, SCI_GETLEXER, 0, 0);
+	style = SSM(sci, SCI_GETSTYLEAT, pos - 2, 0);
 	// return, if we are in a comment
 	if (is_comment(lexer, style))
 		return;

Modified: trunk/src/sciwrappers.c
===================================================================
--- trunk/src/sciwrappers.c	2007-02-16 16:34:57 UTC (rev 1291)
+++ trunk/src/sciwrappers.c	2007-02-16 16:38:23 UTC (rev 1292)
@@ -416,9 +416,9 @@
 }
 
 
-gint sci_get_line_end_from_position(ScintillaObject* sci, gint position)
+gint sci_get_line_end_position(ScintillaObject* sci, gint line)
 {
-	return SSM(sci, SCI_GETLINEENDPOSITION, position, 0);
+	return SSM(sci, SCI_GETLINEENDPOSITION, line, 0);
 }
 
 

Modified: trunk/src/sciwrappers.h
===================================================================
--- trunk/src/sciwrappers.h	2007-02-16 16:34:57 UTC (rev 1291)
+++ trunk/src/sciwrappers.h	2007-02-16 16:38:23 UTC (rev 1292)
@@ -96,7 +96,7 @@
 
 void 				sci_set_selection_start		(ScintillaObject* sci, gint position);
 void				sci_set_selection_end		(ScintillaObject* sci, gint position);
-gint				sci_get_line_end_from_position	(ScintillaObject* sci, gint position);
+gint				sci_get_line_end_position	(ScintillaObject* sci, gint line);
 
 void 				sci_toggle_fold				(ScintillaObject* sci, gint line);
 gboolean			sci_get_line_is_visible		(ScintillaObject* sci, gint line);


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