SF.net SVN: geany: [779] trunk

eht16 at users.sourceforge.net eht16 at xxxxx
Fri Sep 1 17:08:10 UTC 2006


Revision: 779
          http://svn.sourceforge.net/geany/?rev=779&view=rev
Author:   eht16
Date:     2006-09-01 10:07:49 -0700 (Fri, 01 Sep 2006)

Log Message:
-----------
Split filetype PHP/HTML into PHP and HTML.

Modified Paths:
--------------
    trunk/ChangeLog
    trunk/TODO
    trunk/data/filetype_extensions.conf
    trunk/src/callbacks.c
    trunk/src/filetypes.c
    trunk/src/filetypes.h
    trunk/src/highlighting.c
    trunk/src/highlighting.h
    trunk/src/keybindings.c
    trunk/src/msgwindow.c
    trunk/src/sci_cb.c
    trunk/src/sci_cb.h

Added Paths:
-----------
    trunk/data/filetypes.html

Modified: trunk/ChangeLog
===================================================================
--- trunk/ChangeLog	2006-09-01 15:48:56 UTC (rev 778)
+++ trunk/ChangeLog	2006-09-01 17:07:49 UTC (rev 779)
@@ -2,6 +2,10 @@
 
  * src/document.c, src/dialogs.c, src/prefs.c, src/callbacks.c,
    src/interface.c, geany.glade: Fixed some typos.
+ * src/filetypes.c, src/highlighting.c, src/keybindings.c,
+   src/sci_cb.c, data/filetypes.html, data/filetype_extensions.conf,
+   src/callbacks.c, src/msgwindow.c:
+   Split filetype PHP/HTML into PHP and HTML.
 
 
 2006-09-01  Frank Lanitz  <frank at frank.uvena.de>

Modified: trunk/TODO
===================================================================
--- trunk/TODO	2006-09-01 15:48:56 UTC (rev 778)
+++ trunk/TODO	2006-09-01 17:07:49 UTC (rev 779)
@@ -5,19 +5,20 @@
 
 	Geany 0.8 or later:
 
+	o fix problems when loading global.tags and other tags files are
+	  already loaded
 	o Go to xxx - definable command
 	o documentation: list and explain filetype modes
+	o documentation: preferences
 	o user-definable auto completion structs
-	o documentation: preferences
-	o save build includes & arguments
-	o separate filetype for HTML
+	o save build includes & arguments (->project management)
 	o don't override Scintilla keybindings by default
 	o allow use of custom global tags files
 	o common default highlighting all in one config file
+	o project management
 	o (DBUS)
 	o (startup notification)
 	o (indent wrapped lines  - Scintilla issue)
 	o (inverting highlighting by selection - Scintilla issue)
-	o (project management)
 	o (folder tree in the sidebar)
 	o (improved Windows support)

Modified: trunk/data/filetype_extensions.conf
===================================================================
--- trunk/data/filetype_extensions.conf	2006-09-01 15:48:56 UTC (rev 778)
+++ trunk/data/filetype_extensions.conf	2006-09-01 17:07:49 UTC (rev 779)
@@ -12,7 +12,7 @@
 Ferite=*.fe;
 CAML=*.ml;*.mli;
 Perl=*.pl;*.perl;*.pm;
-PHP=*.php;*.php3;*.php4;*.php5;*.html;*.htm;
+PHP=*.php;*.php3;*.php4;*.php5;*.phtml;
 Python=*.py;*.pyw;
 Ruby=*.rb;*.rhtml;
 Tcl=*.tcl;*.tk;*.wish;
@@ -20,6 +20,7 @@
 Make=*.mak;*.mk;Makefile*;makefile*;
 XML=*.xml;*.sgml;
 Docbook=*.docbook;
+HTML=*.htm;*.html;*.shtml;*.hta;*.htd;*.htt;*.cfm;
 CSS=*.css;
 SQL=*.sql;
 LaTeX=*.tex;*.sty;*.idx;
@@ -27,3 +28,4 @@
 Conf=*.conf;*.ini;config;*rc;*.cfg;
 Diff=*.diff;*.patch;
 None=*;
+

Added: trunk/data/filetypes.html
===================================================================
--- trunk/data/filetypes.html	                        (rev 0)
+++ trunk/data/filetypes.html	2006-09-01 17:07:49 UTC (rev 779)
@@ -0,0 +1,31 @@
+# For complete documentation of this file, please see Geany's main documentation
+[styling]
+# styling for PHP/HTML is done in filetypes.xml
+
+
+[settings]
+# the following characters are these which a "word" can contains, see documentation
+wordchars=_#&abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789
+
+# if only single comment char is supported like # in this file, leave comment_close blank
+# these comments are used for PHP, the comments used in HTML are in filetypes.xml
+comment_open=<!--
+comment_close=-->
+
+# set to false if a comment character/string should start at column 0 of a line, true uses any
+# indention of the line, e.g. setting to true causes the following on pressing CTRL+d
+	#command_example();
+# setting to false would generate this
+#	command_example();
+# This setting works only for single line comments
+comment_use_indent=true
+
+[build_settings]
+# %f will be replaced by the complete filename
+# %e will be replaced by the filename without extension
+# (use only one of it at one time)
+# use a syntax checker and ignore the formatted output
+compiler=tidy %f >/dev/null
+
+# the file will be opened with the default browser which can be set in the preferences dialog
+run_cmd=builtin

Modified: trunk/src/callbacks.c
===================================================================
--- trunk/src/callbacks.c	2006-09-01 15:48:56 UTC (rev 778)
+++ trunk/src/callbacks.c	2006-09-01 17:07:49 UTC (rev 779)
@@ -1716,6 +1716,12 @@
 			msgwin_status_add(_("Failed to execute the view program"));
 		}
 	}
+	else if (doc_list[idx].file_type->id == GEANY_FILETYPES_HTML)
+	{
+		gchar *uri = g_strconcat("file:///", g_path_skip_root(doc_list[idx].file_name), NULL);
+		utils_start_browser(uri);
+		g_free(uri);
+	}
 	else
 	{
 		// save the file only if the run command uses it

Modified: trunk/src/filetypes.c
===================================================================
--- trunk/src/filetypes.c	2006-09-01 15:48:56 UTC (rev 778)
+++ trunk/src/filetypes.c	2006-09-01 17:07:49 UTC (rev 779)
@@ -60,8 +60,8 @@
 	FILETYPE_UID_D,			// 21
 	FILETYPE_UID_FORTRAN,	// 22
 	FILETYPE_UID_DIFF,		// 23
-	FILETYPE_UID_FERITE		// 24
-	//FILETYPE_UID_HTML,	// 25
+	FILETYPE_UID_FERITE,	// 24
+	FILETYPE_UID_HTML		// 25
 };
 
 
@@ -100,9 +100,9 @@
 		case FILETYPE_UID_ALL:		return filetypes[GEANY_FILETYPES_ALL];
 		case FILETYPE_UID_D:		return filetypes[GEANY_FILETYPES_D];
 		case FILETYPE_UID_FORTRAN:	return filetypes[GEANY_FILETYPES_FORTRAN];
-		case FILETYPE_UID_DIFF:	return filetypes[GEANY_FILETYPES_DIFF];
+		case FILETYPE_UID_DIFF:		return filetypes[GEANY_FILETYPES_DIFF];
 		case FILETYPE_UID_FERITE:	return filetypes[GEANY_FILETYPES_FERITE];
-		//case FILETYPE_UID_HTML:	return filetypes[GEANY_FILETYPES_HTML];
+		case FILETYPE_UID_HTML:		return filetypes[GEANY_FILETYPES_HTML];
 		default: 					return NULL;
 	}
 }
@@ -322,16 +322,15 @@
 	filetypes[GEANY_FILETYPES_PHP]->lang = 6;
 	filetypes[GEANY_FILETYPES_PHP]->name = g_strdup("PHP");
 	filetypes[GEANY_FILETYPES_PHP]->has_tags = TRUE;
-	filetypes[GEANY_FILETYPES_PHP]->title = g_strdup(_("PHP / HTML source file"));
+	filetypes[GEANY_FILETYPES_PHP]->title = g_strdup(_("PHP source file"));
 	filetypes[GEANY_FILETYPES_PHP]->extension = g_strdup("php");
-	filetypes[GEANY_FILETYPES_PHP]->pattern = g_new0(gchar*, 7);
+	filetypes[GEANY_FILETYPES_PHP]->pattern = g_new0(gchar*, 6);
 	filetypes[GEANY_FILETYPES_PHP]->pattern[0] = g_strdup("*.php");
 	filetypes[GEANY_FILETYPES_PHP]->pattern[1] = g_strdup("*.php3");
 	filetypes[GEANY_FILETYPES_PHP]->pattern[2] = g_strdup("*.php4");
 	filetypes[GEANY_FILETYPES_PHP]->pattern[3] = g_strdup("*.php5");
-	filetypes[GEANY_FILETYPES_PHP]->pattern[4] = g_strdup("*.html");
-	filetypes[GEANY_FILETYPES_PHP]->pattern[5] = g_strdup("*.htm");
-	filetypes[GEANY_FILETYPES_PHP]->pattern[6] = NULL;
+	filetypes[GEANY_FILETYPES_PHP]->pattern[4] = g_strdup("*.phtml");
+	filetypes[GEANY_FILETYPES_PHP]->pattern[5] = NULL;
 	filetypes[GEANY_FILETYPES_PHP]->style_func_ptr = styleset_php;
 	filetypes[GEANY_FILETYPES_PHP]->comment_open = g_strdup("//");
 	filetypes[GEANY_FILETYPES_PHP]->comment_close = NULL;
@@ -504,6 +503,32 @@
 	filetypes_init_build_programs(filetypes[GEANY_FILETYPES_DOCBOOK]);
 	filetypes_create_menu_item(filetype_menu, filetypes[GEANY_FILETYPES_DOCBOOK]->title, filetypes[GEANY_FILETYPES_DOCBOOK]);
 
+#define HTML
+	filetypes[GEANY_FILETYPES_HTML] = g_new0(filetype, 1);
+	filetypes[GEANY_FILETYPES_HTML]->id = GEANY_FILETYPES_HTML;
+	filetypes[GEANY_FILETYPES_HTML]->uid = FILETYPE_UID_HTML;
+	filetypes[GEANY_FILETYPES_HTML]->item = NULL;
+	filetypes[GEANY_FILETYPES_HTML]->lang = -2;
+	filetypes[GEANY_FILETYPES_HTML]->name = g_strdup("HTML");
+	filetypes[GEANY_FILETYPES_HTML]->has_tags = FALSE;
+	filetypes[GEANY_FILETYPES_HTML]->title = g_strdup(_("HTML source file"));
+	filetypes[GEANY_FILETYPES_HTML]->extension = g_strdup("html");
+	filetypes[GEANY_FILETYPES_HTML]->pattern = g_new0(gchar*, 8);
+	filetypes[GEANY_FILETYPES_HTML]->pattern[0] = g_strdup("*.htm");
+	filetypes[GEANY_FILETYPES_HTML]->pattern[1] = g_strdup("*.html");
+	filetypes[GEANY_FILETYPES_HTML]->pattern[2] = g_strdup("*.shtml");
+	filetypes[GEANY_FILETYPES_HTML]->pattern[3] = g_strdup("*.hta");
+	filetypes[GEANY_FILETYPES_HTML]->pattern[4] = g_strdup("*.htd");
+	filetypes[GEANY_FILETYPES_HTML]->pattern[5] = g_strdup("*.htt");
+	filetypes[GEANY_FILETYPES_HTML]->pattern[6] = g_strdup("*.cfm");
+	filetypes[GEANY_FILETYPES_HTML]->pattern[7] = NULL;
+	filetypes[GEANY_FILETYPES_HTML]->style_func_ptr = styleset_html;
+	filetypes[GEANY_FILETYPES_HTML]->comment_open = g_strdup("<!--");
+	filetypes[GEANY_FILETYPES_HTML]->comment_close = g_strdup("-->");
+	filetypes_init_build_programs(filetypes[GEANY_FILETYPES_HTML]);
+	filetypes_create_menu_item(filetype_menu, filetypes[GEANY_FILETYPES_HTML]->title, filetypes[GEANY_FILETYPES_HTML]);
+	filetypes_create_newmenu_item(template_menu, filetypes[GEANY_FILETYPES_HTML]->title, filetypes[GEANY_FILETYPES_HTML]);
+
 #define CSS
 	filetypes[GEANY_FILETYPES_CSS] = g_new0(filetype, 1);
 	filetypes[GEANY_FILETYPES_CSS]->id = GEANY_FILETYPES_CSS;

Modified: trunk/src/filetypes.h
===================================================================
--- trunk/src/filetypes.h	2006-09-01 15:48:56 UTC (rev 778)
+++ trunk/src/filetypes.h	2006-09-01 17:07:49 UTC (rev 779)
@@ -52,9 +52,7 @@
 	GEANY_FILETYPES_MAKE,
  	GEANY_FILETYPES_XML,
 	GEANY_FILETYPES_DOCBOOK,
-/*
 	GEANY_FILETYPES_HTML,
-*/
 	GEANY_FILETYPES_CSS,
 	GEANY_FILETYPES_SQL,
 	GEANY_FILETYPES_LATEX,

Modified: trunk/src/highlighting.c
===================================================================
--- trunk/src/highlighting.c	2006-09-01 15:48:56 UTC (rev 778)
+++ trunk/src/highlighting.c	2006-09-01 17:07:49 UTC (rev 779)
@@ -864,7 +864,7 @@
 	types[GEANY_FILETYPES_PHP] = g_new(style_set, 1);
 	types[GEANY_FILETYPES_PHP]->keywords = NULL;
 
-	styleset_get_wordchars(config, config_home, GEANY_FILETYPES_PHP, GEANY_WORDCHARS"$");
+	styleset_get_wordchars(config, config_home, GEANY_FILETYPES_PHP, GEANY_WORDCHARS);
 	filetypes_get_config(config, config_home, GEANY_FILETYPES_PHP);
 
 	// load global tags file for PHP autocompletion
@@ -876,6 +876,48 @@
 		global_php_tags_loaded = TRUE;
 		g_free(file);
 	}
+
+	g_key_file_free(config);
+	g_key_file_free(config_home);
+	g_free(f0);
+	g_free(f);
+}
+
+
+void styleset_php(ScintillaObject *sci)
+{
+	if (types[GEANY_FILETYPES_PHP] == NULL) styleset_php_init();
+
+	styleset_common(sci, 7);
+
+	SSM(sci, SCI_SETPROPERTY, (sptr_t) "phpscript.mode", (sptr_t) "1");
+	SSM(sci, SCI_SETLEXER, SCLEX_HTML, 0);
+
+	SSM(sci, SCI_AUTOCSETMAXHEIGHT, app->autocompletion_max_height, 0);
+
+	// use the same colouring as for XML
+	styleset_markup(sci);
+
+	SSM(sci, SCI_SETWORDCHARS, 0, (sptr_t) types[GEANY_FILETYPES_PHP]->wordchars);
+}
+
+
+static void styleset_html_init(void)
+{
+	GKeyFile *config = g_key_file_new();
+	GKeyFile *config_home = g_key_file_new();
+	gchar *f0 = g_strconcat(app->datadir, G_DIR_SEPARATOR_S "filetypes.html", NULL);
+	gchar *f = g_strconcat(app->configdir, G_DIR_SEPARATOR_S GEANY_FILEDEFS_SUBDIR G_DIR_SEPARATOR_S "filetypes.html", NULL);
+
+	styleset_load_file(config, f0, G_KEY_FILE_KEEP_COMMENTS, NULL);
+	g_key_file_load_from_file(config_home, f, G_KEY_FILE_KEEP_COMMENTS, NULL);
+
+	types[GEANY_FILETYPES_HTML] = g_new(style_set, 1);
+	types[GEANY_FILETYPES_HTML]->keywords = NULL;
+
+	styleset_get_wordchars(config, config_home, GEANY_FILETYPES_HTML, GEANY_WORDCHARS);
+	filetypes_get_config(config, config_home, GEANY_FILETYPES_HTML);
+
 	// load global tags file for HTML entities autocompletion
 	if (! app->ignore_global_tags && ! global_html_tags_loaded)
 	{
@@ -892,13 +934,12 @@
 }
 
 
-void styleset_php(ScintillaObject *sci)
+void styleset_html(ScintillaObject *sci)
 {
-	if (types[GEANY_FILETYPES_PHP] == NULL) styleset_php_init();
+	if (types[GEANY_FILETYPES_HTML] == NULL) styleset_html_init();
 
 	styleset_common(sci, 7);
 
-	SSM(sci, SCI_SETPROPERTY, (sptr_t) "phpscript.mode", (sptr_t) "1");
 	SSM(sci, SCI_SETLEXER, SCLEX_HTML, 0);
 
 	SSM(sci, SCI_AUTOCSETMAXHEIGHT, app->autocompletion_max_height, 0);
@@ -906,7 +947,7 @@
 	// use the same colouring for HTML; XML and so on
 	styleset_markup(sci);
 
-	SSM(sci, SCI_SETWORDCHARS, 0, (sptr_t) types[GEANY_FILETYPES_PHP]->wordchars);
+	SSM(sci, SCI_SETWORDCHARS, 0, (sptr_t) types[GEANY_FILETYPES_HTML]->wordchars);
 }
 
 

Modified: trunk/src/highlighting.h
===================================================================
--- trunk/src/highlighting.h	2006-09-01 15:48:56 UTC (rev 778)
+++ trunk/src/highlighting.h	2006-09-01 17:07:49 UTC (rev 779)
@@ -54,6 +54,8 @@
 
 void styleset_php(ScintillaObject *sci);
 
+void styleset_html(ScintillaObject *sci);
+
 void styleset_java(ScintillaObject *sci);
 
 void styleset_pascal(ScintillaObject *sci);

Modified: trunk/src/keybindings.c
===================================================================
--- trunk/src/keybindings.c	2006-09-01 15:48:56 UTC (rev 778)
+++ trunk/src/keybindings.c	2006-09-01 17:07:49 UTC (rev 779)
@@ -735,7 +735,7 @@
 {
 	gint idx = document_get_cur_idx();
 	if (idx == -1 || ! doc_list[idx].is_valid) return;
-	sci_cb_show_calltip(doc_list[idx].sci, -1, idx);
+	sci_cb_show_calltip(idx, -1);
 }
 
 static void cb_func_edit_macrolist(void)

Modified: trunk/src/msgwindow.c
===================================================================
--- trunk/src/msgwindow.c	2006-09-01 15:48:56 UTC (rev 778)
+++ trunk/src/msgwindow.c	2006-09-01 17:07:49 UTC (rev 779)
@@ -435,7 +435,15 @@
 			}
 			break;
 		}
-
+		case GEANY_FILETYPES_HTML:
+		{
+			// line 78 column 7 - Warning: <table> missing '>' for end of tag
+			pattern = " ";
+			field_min_len = 4;
+			field_idx_line = 1;
+			field_idx_file = -1;
+			break;
+		}
 		default: return;
 	}
 
@@ -457,6 +465,15 @@
 		return;
 	}
 
+	// let's stop here if there is no filename in the error message
+	if (field_idx_file == -1)
+	{
+		// we have no filename in the error message, so take the current one and hope it's correct
+		*filename = g_strdup(doc_list[document_get_cur_idx()].file_name);
+		g_strfreev(fields);
+		return;
+	}
+
 	// skip some characters at the beginning of the filename, at the moment only "./"
 	// can be extended if other "trash" is known
 	if (strncmp(fields[field_idx_file], "./", 2) == 0) skip_dot_slash = 2;

Modified: trunk/src/sci_cb.c
===================================================================
--- trunk/src/sci_cb.c	2006-09-01 15:48:56 UTC (rev 778)
+++ trunk/src/sci_cb.c	2006-09-01 17:07:49 UTC (rev 779)
@@ -155,7 +155,7 @@
 				}
 				case '(':
 				{	// show calltips
-					sci_cb_show_calltip(sci, pos, idx);
+					sci_cb_show_calltip(idx, pos);
 					break;
 				}
 				case ')':
@@ -171,19 +171,19 @@
 				}
 				case ' ':
 				{	// if and for autocompletion
-					if (app->pref_editor_auto_complete_constructs) sci_cb_auto_forif(sci, pos, idx);
+					if (app->pref_editor_auto_complete_constructs) sci_cb_auto_forif(idx, pos);
 					break;
 				}
 				case '[':
 				case '{':
 				{	// Tex auto-closing
 					sci_cb_auto_close_bracket(sci, pos, nt->ch);	// Tex auto-closing
-					sci_cb_show_calltip(sci, pos, idx);
+					sci_cb_show_calltip(idx, pos);
 					break;
 				}
 				case '}':
 				{	// closing bracket handling
-					if (doc_list[idx].use_auto_indention) sci_cb_close_block(sci, pos - 1);
+					if (doc_list[idx].use_auto_indention) sci_cb_close_block(idx, pos - 1);
 					break;
 				}
 				default: sci_cb_start_auto_complete(idx, pos, FALSE);
@@ -274,7 +274,7 @@
 	}
 	// " * " auto completion in multiline C/C++ comments
 	sci_cb_auto_multiline(sci, pos);
-	if (app->pref_editor_auto_complete_constructs) sci_cb_auto_latex(sci, pos, idx);
+	if (app->pref_editor_auto_complete_constructs) sci_cb_auto_latex(idx, pos);
 }
 
 
@@ -372,22 +372,29 @@
 }
 
 
-void sci_cb_close_block(ScintillaObject *sci, gint pos)
+void sci_cb_close_block(gint idx, gint pos)
 {
 	gint x = 0, cnt = 0;
-	gint start_brace = brace_match(sci, pos);
-	gint line = sci_get_line_from_position(sci, pos);
-	gint line_start = sci_get_position_from_line(sci, line);
-	gint line_len = sci_get_line_length(sci, line);
-	// set eol_char_len to 0 if on last line, because there is no EOL char
-	gint eol_char_len = (line == (SSM(sci, SCI_GETLINECOUNT, 0, 0) - 1)) ? 0 :
-								utils_get_eol_char_len(document_find_by_sci(sci));
-	gint lexer = SSM(sci, SCI_GETLEXER, 0, 0);
+	gint start_brace, line, line_start, line_len, eol_char_len, lexer;
 	gchar *text, *line_buf;
+	ScintillaObject *sci;
 
+	if (idx == -1 || ! doc_list[idx].is_valid || doc_list[idx].file_type == NULL) return;
+
+	sci = doc_list[idx].sci;
+
+	lexer = SSM(sci, SCI_GETLEXER, 0, 0);
 	if (lexer != SCLEX_CPP && lexer != SCLEX_HTML && lexer != SCLEX_PASCAL && lexer != SCLEX_BASH)
 			return;
 
+	start_brace = brace_match(sci, pos);
+	line = sci_get_line_from_position(sci, pos);
+	line_start = sci_get_position_from_line(sci, line);
+	line_len = sci_get_line_length(sci, line);
+	// set eol_char_len to 0 if on last line, because there is no EOL char
+	eol_char_len = (line == (SSM(sci, SCI_GETLINECOUNT, 0, 0) - 1)) ? 0 :
+								utils_get_eol_char_len(document_find_by_sci(sci));
+
 	// check that the line is empty, to not kill text in the line
 	line_buf = g_malloc(line_len + 1);
 	sci_get_line(sci, line, line_buf);
@@ -440,19 +447,20 @@
 }
 
 
-gboolean sci_cb_show_calltip(ScintillaObject *sci, gint pos, gint idx)
+gboolean sci_cb_show_calltip(gint idx, gint pos)
 {
-	gint orig_pos = pos; //the position for the calltip
+	gint orig_pos = pos; // the position for the calltip
 	gint lexer;
 	gint style;
 	gchar word[GEANY_MAX_WORD_LENGTH];
 	TMTag *tag;
 	const GPtrArray *tags;
+	ScintillaObject *sci;
 
-	if (sci == NULL) return FALSE;
+	if (idx == -1 || ! doc_list[idx].is_valid || doc_list[idx].file_type == NULL) return FALSE;
+	sci = doc_list[idx].sci;
 
 	lexer = SSM(sci, SCI_GETLEXER, 0, 0);
-	if (idx == -1 || ! doc_list[idx].is_valid || doc_list[idx].file_type == NULL) return FALSE;
 
 	word[0] = '\0';
 	if (pos == -1)
@@ -571,7 +579,7 @@
 	ScintillaObject *sci;
 	gboolean ret = FALSE;
 
-	if (idx < 0 || ! doc_list[idx].is_valid || doc_list[idx].sci == NULL) return FALSE;
+	if (idx < 0 || ! doc_list[idx].is_valid || doc_list[idx].file_type == NULL) return FALSE;
 	sci = doc_list[idx].sci;
 
 	line = sci_get_line_from_position(sci, pos);
@@ -612,8 +620,13 @@
 }
 
 
-void sci_cb_auto_latex(ScintillaObject *sci, gint pos, gint idx)
+void sci_cb_auto_latex(gint idx, gint pos)
 {
+	ScintillaObject *sci;
+
+	if (idx == -1 || ! doc_list[idx].is_valid || doc_list[idx].file_type == NULL) return;
+	sci = doc_list[idx].sci;
+
 	if (sci_get_char_at(sci, pos - 2) == '}')
 	{
 		gchar *eol, *buf, *construct;
@@ -685,23 +698,29 @@
 }
 
 
-void sci_cb_auto_forif(ScintillaObject *sci, gint pos, gint idx)
+void sci_cb_auto_forif(gint idx, gint pos)
 {
 	static gchar buf[16];
 	gchar *eol;
 	gchar *construct;
 	gint lexer, style;
 	gint i;
+	ScintillaObject *sci;
 
-	if (sci == NULL || idx == -1 || ! doc_list[idx].is_valid) return;
+	if (idx == -1 || ! doc_list[idx].is_valid || doc_list[idx].file_type == NULL) return;
+	sci = doc_list[idx].sci;
 
 	lexer = SSM(sci, SCI_GETLEXER, 0, 0);
 	style = SSM(sci, SCI_GETSTYLEAT, pos - 2, 0);
 
 	// only for C, C++, Java, Perl and PHP
-	if (lexer != SCLEX_CPP &&
-		lexer != SCLEX_HTML &&
-		lexer != SCLEX_PERL)
+	if (doc_list[idx].file_type->id != GEANY_FILETYPES_PHP &&
+		doc_list[idx].file_type->id != GEANY_FILETYPES_C &&
+		doc_list[idx].file_type->id != GEANY_FILETYPES_D &&
+		doc_list[idx].file_type->id != GEANY_FILETYPES_CPP &&
+		doc_list[idx].file_type->id != GEANY_FILETYPES_PERL &&
+		doc_list[idx].file_type->id != GEANY_FILETYPES_JAVA &&
+		doc_list[idx].file_type->id != GEANY_FILETYPES_FERITE)
 		return;
 
 	// return, if we are in a comment, or when SCLEX_HTML but not in PHP
@@ -713,9 +732,9 @@
 		style == SCE_C_STRING ||
 		style == SCE_C_CHARACTER ||
 		style == SCE_C_PREPROCESSOR)) return;
-	if (lexer == SCLEX_HTML && ! (style >= 118 && style <= 127)) return;
+	//if (lexer == SCLEX_HTML && ! (style >= 118 && style <= 127)) return;
 
-	if (lexer == SCLEX_HTML && (
+	if (doc_list[idx].file_type->id == GEANY_FILETYPES_PHP && (
 		style == SCE_HPHP_SIMPLESTRING ||
 		style == SCE_HPHP_HSTRING ||
 		style == SCE_HPHP_COMMENTLINE ||

Modified: trunk/src/sci_cb.h
===================================================================
--- trunk/src/sci_cb.h	2006-09-01 15:48:56 UTC (rev 778)
+++ trunk/src/sci_cb.h	2006-09-01 17:07:49 UTC (rev 779)
@@ -35,18 +35,18 @@
 gchar **html_entities;
 
 
-// callback func called by all editors when a signals arises
+// callback func called by all editors when a signal arises
 void on_editor_notification(GtkWidget* editor, gint scn, gpointer lscn, gpointer user_data);
 
 gboolean sci_cb_start_auto_complete(gint idx, gint pos, gboolean force);
 
 void sci_cb_get_indent(ScintillaObject *sci, gint pos, gboolean use_this_line);
 
-void sci_cb_close_block(ScintillaObject *sci, gint pos);
+void sci_cb_close_block(gint idx, gint pos);
 
-void sci_cb_auto_forif(ScintillaObject *sci, gint pos, gint idx);
+void sci_cb_auto_forif(gint idx, gint pos);
 
-void sci_cb_auto_latex(ScintillaObject *sci, gint pos, gint idx);
+void sci_cb_auto_latex(gint idx, gint pos);
 
 void sci_cb_show_macro_list(ScintillaObject *sci);
 
@@ -54,7 +54,7 @@
 
 void sci_cb_find_current_word(ScintillaObject *sci, gint pos, gchar *word, size_t wordlen);
 
-gboolean sci_cb_show_calltip(ScintillaObject *sci, gint pos, gint idx);
+gboolean sci_cb_show_calltip(gint idx, gint pos);
 
 void sci_cb_do_comment(gint idx);
 


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