SF.net SVN: geany:[4322] trunk

ntrel at users.sourceforge.net ntrel at xxxxx
Thu Oct 15 16:54:16 UTC 2009


Revision: 4322
          http://geany.svn.sourceforge.net/geany/?rev=4322&view=rev
Author:   ntrel
Date:     2009-10-15 16:54:15 +0000 (Thu, 15 Oct 2009)

Log Message:
-----------
Add highlighting_set_styles() to API, use for Split Window plugin so
filetypes.common settings get set too.
Make highlighting_set_styles() take GeanyFiletype pointer instead of
filetype id.

Modified Paths:
--------------
    trunk/ChangeLog
    trunk/plugins/geanyfunctions.h
    trunk/plugins/splitwindow.c
    trunk/src/document.c
    trunk/src/highlighting.c
    trunk/src/highlighting.h
    trunk/src/plugindata.h
    trunk/src/plugins.c

Modified: trunk/ChangeLog
===================================================================
--- trunk/ChangeLog	2009-10-15 16:15:28 UTC (rev 4321)
+++ trunk/ChangeLog	2009-10-15 16:54:15 UTC (rev 4322)
@@ -12,6 +12,13 @@
    src/project.c, src/search.c, src/editor.c, src/ui_utils.c,
    plugins/classbuilder.c:
    Revert r4301 - utils_free_pointers() taking 4 arguments.
+ * src/highlighting.c, src/highlighting.h, src/plugindata.h,
+   src/document.c, src/plugins.c, plugins/geanyfunctions.h,
+   plugins/splitwindow.c:
+   Add highlighting_set_styles() to API, use for Split Window plugin so
+   filetypes.common settings get set too.
+   Make highlighting_set_styles() take GeanyFiletype pointer instead of
+   filetype id.
 
 
 2009-10-14  Nick Treleaven  <nick(dot)treleaven(at)btinternet(dot)com>

Modified: trunk/plugins/geanyfunctions.h
===================================================================
--- trunk/plugins/geanyfunctions.h	2009-10-15 16:15:28 UTC (rev 4321)
+++ trunk/plugins/geanyfunctions.h	2009-10-15 16:54:15 UTC (rev 4322)
@@ -294,6 +294,8 @@
 	geany_functions->p_search->show_find_in_files_dialog
 #define highlighting_get_style \
 	geany_functions->p_highlighting->get_style
+#define highlighting_set_styles \
+	geany_functions->p_highlighting->set_styles
 #define filetypes_detect_from_file \
 	geany_functions->p_filetypes->detect_from_file
 #define filetypes_lookup_by_name \

Modified: trunk/plugins/splitwindow.c
===================================================================
--- trunk/plugins/splitwindow.c	2009-10-15 16:15:28 UTC (rev 4321)
+++ trunk/plugins/splitwindow.c	2009-10-15 16:54:15 UTC (rev 4322)
@@ -86,54 +86,6 @@
 static void on_unsplit(GtkMenuItem *menuitem, gpointer user_data);
 
 
-static gint sci_get_value(ScintillaObject *sci, gint message_id, gint param)
-{
-	return scintilla_send_message(sci, message_id, param, 0);
-}
-
-
-static void set_styles(ScintillaObject *oldsci, ScintillaObject *newsci)
-{
-	gint style_id;
-	gint val;
-
-	for (style_id = 0; style_id <= 127; style_id++)
-	{
-		val = sci_get_value(oldsci, SCI_STYLEGETFORE, style_id);
-		scintilla_send_message(newsci, SCI_STYLESETFORE, style_id, val);
-		val = sci_get_value(oldsci, SCI_STYLEGETBACK, style_id);
-		scintilla_send_message(newsci, SCI_STYLESETBACK, style_id, val);
-		val = sci_get_value(oldsci, SCI_STYLEGETBOLD, style_id);
-		scintilla_send_message(newsci, SCI_STYLESETBOLD, style_id, val);
-		val = sci_get_value(oldsci, SCI_STYLEGETITALIC, style_id);
-		scintilla_send_message(newsci, SCI_STYLESETITALIC, style_id, val);
-	}
-	val = sci_get_value(oldsci, SCI_GETCARETFORE, 0);
-	scintilla_send_message(newsci, SCI_SETCARETFORE, val, 0);
-}
-
-
-static void update_font(ScintillaObject *current, ScintillaObject *sci)
-{
-	gint style_id;
-	gint size;
-	gchar font_name[1024]; /* should be big enough */
-
-	scintilla_send_message(current, SCI_STYLEGETFONT, 0, (sptr_t)font_name);
-	size = sci_get_value(current, SCI_STYLEGETSIZE, 0);
-
-	for (style_id = 0; style_id <= 127; style_id++)
-	{
-		sci_set_font(sci, style_id, font_name, size);
-	}
-
-	/* line number and braces */
-	sci_set_font(sci, STYLE_LINENUMBER, font_name, size);
-	sci_set_font(sci, STYLE_BRACELIGHT, font_name, size);
-	sci_set_font(sci, STYLE_BRACEBAD, font_name, size);
-}
-
-
 /* line numbers visibility */
 static void set_line_numbers(ScintillaObject * sci, gboolean set, gint extra_width)
 {
@@ -157,21 +109,13 @@
 static void sync_to_current(ScintillaObject *sci, ScintillaObject *current)
 {
 	gpointer sdoc;
-	gint lexer;
-	gint pos;
 
 	/* set the new sci widget to view the existing Scintilla document */
 	sdoc = (gpointer) scintilla_send_message(current, SCI_GETDOCPOINTER, 0, 0);
 	scintilla_send_message(sci, SCI_SETDOCPOINTER, 0, (sptr_t) sdoc);
 
-	update_font(current, sci);
-	lexer = scintilla_send_message(current, SCI_GETLEXER, 0, 0);
-	scintilla_send_message(sci, SCI_SETLEXER, lexer, 0);
-	set_styles(current, sci);
+	highlighting_set_styles(sci, edit_window.editor->document->file_type);
 
-	pos = sci_get_current_position(current);
-	sci_set_current_position(sci, pos, TRUE);
-
 	/* override some defaults */
 	set_line_numbers(sci, TRUE, 0);
 	scintilla_send_message(sci, SCI_SETMARGINWIDTHN, 1, 0 ); /* hide marker margin */

Modified: trunk/src/document.c
===================================================================
--- trunk/src/document.c	2009-10-15 16:15:28 UTC (rev 4321)
+++ trunk/src/document.c	2009-10-15 16:54:15 UTC (rev 4322)
@@ -2469,7 +2469,7 @@
 			tm_workspace_remove_object(doc->tm_file, TRUE, TRUE);
 			doc->tm_file = NULL;
 		}
-		highlighting_set_styles(doc->editor->sci, type->id);
+		highlighting_set_styles(doc->editor->sci, type);
 		editor_set_indentation_guides(doc->editor);
 		build_menu_update(doc);
 		queue_colourise(doc);

Modified: trunk/src/highlighting.c
===================================================================
--- trunk/src/highlighting.c	2009-10-15 16:15:28 UTC (rev 4321)
+++ trunk/src/highlighting.c	2009-10-15 16:54:15 UTC (rev 4322)
@@ -3233,18 +3233,21 @@
 /* lang_name is the name used for the styleset_foo function, e.g. foo. */
 #define styleset_case(ft_id, styleset_func) \
 	case (ft_id): \
-		styleset_func (sci); \
+		styleset_func(sci); \
 		break
 
-void highlighting_set_styles(ScintillaObject *sci, gint filetype_idx)
+/** Setup highlighting and other visual settings.
+ * @param sci Scintilla widget.
+ * @param ft Filetype settings to use. */
+void highlighting_set_styles(ScintillaObject *sci, GeanyFiletype *ft)
 {
-	filetypes_load_config(filetype_idx, FALSE);	/* load filetypes.ext */
+	filetypes_load_config(ft->id, FALSE);	/* load filetypes.ext */
 
 	/* load tags files (some lexers highlight global typenames) */
-	if (filetype_idx != GEANY_FILETYPES_NONE)
-		symbols_global_tags_loaded(filetype_idx);
+	if (ft->id != GEANY_FILETYPES_NONE)
+		symbols_global_tags_loaded(ft->id);
 
-	switch (filetype_idx)
+	switch (ft->id)
 	{
 		styleset_case(GEANY_FILETYPES_ADA,		styleset_ada);
 		styleset_case(GEANY_FILETYPES_ASM,		styleset_asm);
@@ -3291,7 +3294,7 @@
 		styleset_case(GEANY_FILETYPES_YAML,		styleset_yaml);
 		case GEANY_FILETYPES_NONE:
 		default:
-			styleset_default(sci, filetype_idx);
+			styleset_default(sci, ft->id);
 	}
 }
 

Modified: trunk/src/highlighting.h
===================================================================
--- trunk/src/highlighting.h	2009-10-15 16:15:28 UTC (rev 4321)
+++ trunk/src/highlighting.h	2009-10-15 16:54:15 UTC (rev 4322)
@@ -43,7 +43,7 @@
 
 void highlighting_init_styles(gint filetype_idx, GKeyFile *config, GKeyFile *configh);
 
-void highlighting_set_styles(ScintillaObject *sci, gint filetype_idx);
+void highlighting_set_styles(ScintillaObject *sci, GeanyFiletype *ft);
 
 const GeanyLexerStyle *highlighting_get_style(gint ft_id, gint style_id);
 

Modified: trunk/src/plugindata.h
===================================================================
--- trunk/src/plugindata.h	2009-10-15 16:15:28 UTC (rev 4321)
+++ trunk/src/plugindata.h	2009-10-15 16:54:15 UTC (rev 4322)
@@ -50,7 +50,7 @@
 enum {
 	/** The Application Programming Interface (API) version, incremented
 	 * whenever any plugin data types are modified or appended to. */
-	GEANY_API_VERSION = 161,
+	GEANY_API_VERSION = 162,
 
 	/** The Application Binary Interface (ABI) version, incremented whenever
 	 * existing fields in the plugin data types have to be changed or reordered. */
@@ -493,6 +493,7 @@
 typedef struct HighlightingFuncs
 {
 	const struct GeanyLexerStyle* (*get_style) (gint ft_id, gint style_id);
+	void		(*set_styles) (struct _ScintillaObject *sci, struct GeanyFiletype *ft);
 }
 HighlightingFuncs;
 

Modified: trunk/src/plugins.c
===================================================================
--- trunk/src/plugins.c	2009-10-15 16:15:28 UTC (rev 4321)
+++ trunk/src/plugins.c	2009-10-15 16:54:15 UTC (rev 4322)
@@ -272,7 +272,8 @@
 };
 
 static HighlightingFuncs highlighting_funcs = {
-	&highlighting_get_style
+	&highlighting_get_style,
+	&highlighting_set_styles
 };
 
 static FiletypeFuncs filetype_funcs = {


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