SF.net SVN: geany:[2979] trunk

eht16 at users.sourceforge.net eht16 at xxxxx
Sun Sep 21 16:43:46 UTC 2008


Revision: 2979
          http://geany.svn.sourceforge.net/geany/?rev=2979&view=rev
Author:   eht16
Date:     2008-09-21 16:43:45 +0000 (Sun, 21 Sep 2008)

Log Message:
-----------
Move document_apply_update_prefs() in editor.c.
Refactor get_indent_guides_from_lexer() from sciwrappers.c in editor_set_indentation_guides().

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

Modified: trunk/ChangeLog
===================================================================
--- trunk/ChangeLog	2008-09-21 14:21:13 UTC (rev 2978)
+++ trunk/ChangeLog	2008-09-21 16:43:45 UTC (rev 2979)
@@ -1,3 +1,12 @@
+2008-09-21  Enrico Tröger  <enrico(dot)troeger(at)uvena(dot)de>
+
+ * document.c, document.h, editor.c, editor.h, prefs.c, sciwrappers.c,
+   sciwrappers.h:
+   Move document_apply_update_prefs() in editor.c.
+   Refactor get_indent_guides_from_lexer() from sciwrappers.c in
+   editor_set_indentation_guides().
+
+
 2008-09-19  Nick Treleaven  <nick(dot)treleaven(at)btinternet(dot)com>
 
  * src/sciwrappers.c:

Modified: trunk/src/document.c
===================================================================
--- trunk/src/document.c	2008-09-21 14:21:13 UTC (rev 2978)
+++ trunk/src/document.c	2008-09-21 16:43:45 UTC (rev 2979)
@@ -299,41 +299,6 @@
 }
 
 
-/* Apply just the prefs that can change in the Preferences dialog */
-void document_apply_update_prefs(GeanyDocument *doc)
-{
-	ScintillaObject *sci;
-	GeanyEditor *editor;
-
-	g_return_if_fail(doc != NULL);
-
-	editor = doc->editor;
-	sci = editor->sci;
-
-	sci_set_mark_long_lines(sci, editor_prefs.long_line_type,
-		editor_prefs.long_line_column, editor_prefs.long_line_color);
-
-	/* update indent width, tab width */
-	editor_set_indent_type(editor, editor->indent_type);
-	sci_set_tab_indents(sci, editor_prefs.use_tab_to_indent);
-
-	sci_set_autoc_max_height(sci, editor_prefs.symbolcompletion_max_height);
-
-	sci_set_indentation_guides(sci, editor_prefs.show_indent_guide);
-	sci_set_visible_white_spaces(sci, editor_prefs.show_white_space);
-	sci_set_visible_eols(sci, editor_prefs.show_line_endings);
-
-	sci_set_folding_margin_visible(sci, editor_prefs.folding);
-
-	/* (dis)allow scrolling past end of document */
-	sci_set_scroll_stop_at_last_line(sci, editor_prefs.scroll_stop_at_last_line);
-
-	sci_assign_cmdkey(sci, SCK_HOME,
-		editor_prefs.smart_home_key ? SCI_VCHOMEWRAP : SCI_HOMEWRAP);
-	sci_assign_cmdkey(sci, SCK_END,  SCI_LINEENDWRAP);
-}
-
-
 /* Sets is_valid to FALSE and initializes some members to NULL, to mark it uninitialized.
  * The flag is_valid is set to TRUE in document_create(). */
 static void init_doc_struct(GeanyDocument *new_doc)
@@ -427,7 +392,7 @@
 
 	this->editor = editor_create(this);
 
-	document_apply_update_prefs(this);
+	editor_apply_update_prefs(this->editor);
 
 	treeviews_openfiles_add(this);	/* sets this->iter */
 
@@ -2168,7 +2133,7 @@
 			doc->tm_file = NULL;
 		}
 		highlighting_set_styles(doc->editor->sci, type->id);
-		sci_set_indentation_guides(doc->editor->sci, editor_prefs.show_indent_guide);
+		editor_set_indentation_guides(doc->editor);
 		build_menu_update(doc);
 		queue_colourise(doc);
 	}

Modified: trunk/src/document.h
===================================================================
--- trunk/src/document.h	2008-09-21 14:21:13 UTC (rev 2978)
+++ trunk/src/document.h	2008-09-21 16:43:45 UTC (rev 2979)
@@ -170,8 +170,6 @@
 
 void document_finalize(void);
 
-void document_apply_update_prefs(GeanyDocument *doc);
-
 gboolean document_remove_page(guint page_num);
 
 gboolean document_close(GeanyDocument *doc);

Modified: trunk/src/editor.c
===================================================================
--- trunk/src/editor.c	2008-09-21 14:21:13 UTC (rev 2978)
+++ trunk/src/editor.c	2008-09-21 16:43:45 UTC (rev 2979)
@@ -3845,3 +3845,99 @@
 	editor_prefs.indentation = &indent_prefs;
 }
 
+
+/** TODO: Should these be user-defined instead of hard-coded? */
+void editor_set_indentation_guides(GeanyEditor *editor)
+{
+	gint mode;
+	gint lexer;
+
+	g_return_if_fail(editor != NULL);
+
+	if (! editor_prefs.show_indent_guide)
+	{
+		sci_set_indentation_guides(editor->sci, SC_IV_NONE);
+		return;
+	}
+
+	lexer = sci_get_lexer(editor->sci);
+	switch (lexer)
+	{
+		/* Lines added/removed are prefixed with +/- characters, so
+		 * those lines will not be shown with any indentation guides.
+		 * It can be distracting that only a few of lines in a diff/patch
+		 * file will show the guides. */
+		case SCLEX_DIFF:
+			mode = SC_IV_NONE;
+
+		/* These languages use indentation for control blocks; the "look forward" method works
+		 * best here */
+		case SCLEX_PYTHON:
+		case SCLEX_HASKELL:
+		case SCLEX_MAKEFILE:
+		case SCLEX_ASM:
+		case SCLEX_SQL:
+		case SCLEX_PROPERTIES:
+		case SCLEX_FORTRAN: /* Is this the best option for Fortran? */
+		case SCLEX_CAML:
+			mode = SC_IV_LOOKFORWARD;
+
+		/* C-like (structured) languages benefit from the "look both" method */
+		case SCLEX_CPP:
+		case SCLEX_HTML:
+		case SCLEX_XML:
+		case SCLEX_PERL:
+		case SCLEX_LATEX:
+		case SCLEX_LUA:
+		case SCLEX_PASCAL:
+		case SCLEX_RUBY:
+		case SCLEX_TCL:
+		case SCLEX_F77:
+		case SCLEX_CSS:
+		case SCLEX_BASH:
+		case SCLEX_VHDL:
+		case SCLEX_FREEBASIC:
+		case SCLEX_D:
+		case SCLEX_OMS:
+			mode = SC_IV_LOOKBOTH;
+		default:
+			mode = SC_IV_REAL;
+	}
+
+	sci_set_indentation_guides(editor->sci, mode);
+}
+
+
+/* Apply just the prefs that can change in the Preferences dialog */
+void editor_apply_update_prefs(GeanyEditor *editor)
+{
+	ScintillaObject *sci;
+
+	g_return_if_fail(editor != NULL);
+
+	sci = editor->sci;
+
+	sci_set_mark_long_lines(sci, editor_prefs.long_line_type,
+		editor_prefs.long_line_column, editor_prefs.long_line_color);
+
+	/* update indent width, tab width */
+	editor_set_indent_type(editor, editor->indent_type);
+	sci_set_tab_indents(sci, editor_prefs.use_tab_to_indent);
+
+	sci_set_autoc_max_height(sci, editor_prefs.symbolcompletion_max_height);
+
+	editor_set_indentation_guides(editor);
+
+	sci_set_visible_white_spaces(sci, editor_prefs.show_white_space);
+	sci_set_visible_eols(sci, editor_prefs.show_line_endings);
+
+	sci_set_folding_margin_visible(sci, editor_prefs.folding);
+
+	/* (dis)allow scrolling past end of document */
+	sci_set_scroll_stop_at_last_line(sci, editor_prefs.scroll_stop_at_last_line);
+
+	sci_assign_cmdkey(sci, SCK_HOME,
+		editor_prefs.smart_home_key ? SCI_VCHOMEWRAP : SCI_HOMEWRAP);
+	sci_assign_cmdkey(sci, SCK_END,  SCI_LINEENDWRAP);
+}
+

Modified: trunk/src/editor.h
===================================================================
--- trunk/src/editor.h	2008-09-21 14:21:13 UTC (rev 2978)
+++ trunk/src/editor.h	2008-09-21 16:43:45 UTC (rev 2979)
@@ -239,4 +239,8 @@
 
 gboolean editor_goto_pos(GeanyEditor *editor, gint pos, gboolean mark);
 
+void editor_set_indentation_guides(GeanyEditor *editor);
+
+void editor_apply_update_prefs(GeanyEditor *editor);
+
 #endif

Modified: trunk/src/prefs.c
===================================================================
--- trunk/src/prefs.c	2008-09-21 14:21:13 UTC (rev 2978)
+++ trunk/src/prefs.c	2008-09-21 16:43:45 UTC (rev 2979)
@@ -1130,7 +1130,7 @@
 		{
 			if (documents[i]->is_valid)
 			{
-				document_apply_update_prefs(documents[i]);
+				editor_apply_update_prefs(documents[i]->editor);
 				if (! editor_prefs.folding)
 					editor_unfold_all(documents[i]);
 			}

Modified: trunk/src/sciwrappers.c
===================================================================
--- trunk/src/sciwrappers.c	2008-09-21 14:21:13 UTC (rev 2978)
+++ trunk/src/sciwrappers.c	2008-09-21 16:43:45 UTC (rev 2979)
@@ -707,61 +707,12 @@
 	SSM(sci, SCI_SETSAVEPOINT, 0, 0);
 }
 
-/* Should these be user-defined instead of hard-coded? */
-static gint get_indent_guides_from_lexer(gint lexer)
+void sci_set_indentation_guides(ScintillaObject *sci, gint mode)
 {
-	switch (lexer)
-	{
-		/* Lines added/removed are prefixed with +/- characters, so
-		 * those lines will not be shown with any indentation guides.
-		 * It can be distracting that only a few of lines in a diff/patch
-		 * file will show the guides. */
-		case SCLEX_DIFF:
-			return SC_IV_NONE;
-
-		/* These languages use indentation for control blocks; the "look forward" method works
-		 * best here */
-		case SCLEX_PYTHON:
-		case SCLEX_HASKELL:
-		case SCLEX_MAKEFILE:
-		case SCLEX_ASM:
-		case SCLEX_SQL:
-		case SCLEX_PROPERTIES:
-		case SCLEX_FORTRAN: /* Is this the best option for Fortran? */
-		case SCLEX_CAML:
-			return SC_IV_LOOKFORWARD;
-
-		/* C-like (structured) languages benefit from the "look both" method */
-		case SCLEX_CPP:
-		case SCLEX_HTML:
-		case SCLEX_XML:
-		case SCLEX_PERL:
-		case SCLEX_LATEX:
-		case SCLEX_LUA:
-		case SCLEX_PASCAL:
-		case SCLEX_RUBY:
-		case SCLEX_TCL:
-		case SCLEX_F77:
-		case SCLEX_CSS:
-		case SCLEX_BASH:
-		case SCLEX_VHDL:
-		case SCLEX_FREEBASIC:
-		case SCLEX_D:
-		case SCLEX_OMS:
-			return SC_IV_LOOKBOTH;
-	}
-
-	return SC_IV_REAL;
+	SSM(sci, SCI_SETINDENTATIONGUIDES, mode, 0);
 }
 
-void sci_set_indentation_guides(ScintillaObject *sci, gboolean enable)
-{
-	gint lexer = sci_get_lexer(sci);
-	SSM(sci, SCI_SETINDENTATIONGUIDES,
-		(enable ? get_indent_guides_from_lexer(lexer) : SC_IV_NONE), 0);
-}
 
-
 void sci_use_popup(ScintillaObject *sci, gboolean enable)
 {
 	SSM(sci, SCI_USEPOPUP, enable, 0);

Modified: trunk/src/sciwrappers.h
===================================================================
--- trunk/src/sciwrappers.h	2008-09-21 14:21:13 UTC (rev 2978)
+++ trunk/src/sciwrappers.h	2008-09-21 16:43:45 UTC (rev 2979)
@@ -118,7 +118,7 @@
 gint				sci_get_tab_width			(ScintillaObject * sci);
 gchar				sci_get_char_at				(ScintillaObject * sci, gint pos);
 void				sci_set_savepoint			(ScintillaObject * sci);
-void				sci_set_indentation_guides	(ScintillaObject * sci, gboolean enable);
+void				sci_set_indentation_guides	(ScintillaObject * sci, gint mode);
 void				sci_use_popup				(ScintillaObject * sci, gboolean enable);
 void				sci_goto_pos				(ScintillaObject * sci, gint pos, gboolean unfold);
 void				sci_set_search_anchor		(ScintillaObject * 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