SF.net SVN: geany:[2909] trunk

ntrel at users.sourceforge.net ntrel at xxxxx
Wed Aug 27 16:16:51 UTC 2008


Revision: 2909
          http://geany.svn.sourceforge.net/geany/?rev=2909&view=rev
Author:   ntrel
Date:     2008-08-27 16:16:50 +0000 (Wed, 27 Aug 2008)

Log Message:
-----------
Add GeanyFiletypeGroupID enum and GeanyFiletype::group field.

Modified Paths:
--------------
    trunk/ChangeLog
    trunk/src/filetypes.c
    trunk/src/filetypes.h

Modified: trunk/ChangeLog
===================================================================
--- trunk/ChangeLog	2008-08-27 12:44:54 UTC (rev 2908)
+++ trunk/ChangeLog	2008-08-27 16:16:50 UTC (rev 2909)
@@ -1,10 +1,12 @@
 2008-08-27  Nick Treleaven  <nick.treleaven<at>btinternet.com>
 
- * src/highlighting.c, src/plugindata.h, src/filetypes.c, 
-   src/filetypes.h, src/symbols.c, THANKS, tagmanager/parsers.h, 
+ * src/highlighting.c, src/plugindata.h, src/filetypes.c,
+   src/filetypes.h, src/symbols.c, THANKS, tagmanager/parsers.h,
    tagmanager/c.c, data/filetypes.glsl, data/filetype_extensions.conf:
-   Add OpenGL Shader Language (GLSL) filetype (patch from Colomban 
+   Add OpenGL Shader Language (GLSL) filetype (patch from Colomban
    Wendling, thanks; closes #2060961).
+ * src/filetypes.c, src/filetypes.h:
+   Add GeanyFiletypeGroupID enum and GeanyFiletype::group field.
 
 
 2008-08-26  Nick Treleaven  <nick(dot)treleaven(at)btinternet(dot)com>

Modified: trunk/src/filetypes.c
===================================================================
--- trunk/src/filetypes.c	2008-08-27 12:44:54 UTC (rev 2908)
+++ trunk/src/filetypes.c	2008-08-27 16:16:50 UTC (rev 2909)
@@ -74,6 +74,7 @@
 	ft->pattern = utils_strv_new("*.c", "*.h", NULL);
 	ft->comment_open = g_strdup("/*");
 	ft->comment_close = g_strdup("*/");
+	ft->group = GEANY_FILETYPE_GROUP_COMPILED;
 
 #define CPP
 	ft = filetypes[GEANY_FILETYPES_CPP];
@@ -85,6 +86,7 @@
 		"*.h", "*.hpp", "*.hxx", "*.h++", "*.hh", "*.C", NULL);
 	ft->comment_open = g_strdup("//");
 	ft->comment_close = NULL;
+	ft->group = GEANY_FILETYPE_GROUP_COMPILED;
 
 #define CS
 	ft = filetypes[GEANY_FILETYPES_CS];
@@ -95,6 +97,7 @@
 	ft->pattern = utils_strv_new("*.cs", "*.vala", NULL);
 	ft->comment_open = g_strdup("//");
 	ft->comment_close = NULL;
+	ft->group = GEANY_FILETYPE_GROUP_COMPILED;
 
 #define D
 	ft = filetypes[GEANY_FILETYPES_D];
@@ -105,6 +108,7 @@
 	ft->pattern = utils_strv_new("*.d", "*.di", NULL);
 	ft->comment_open = g_strdup("//");
 	ft->comment_close = NULL;
+	ft->group = GEANY_FILETYPE_GROUP_COMPILED;
 
 #define JAVA
 	ft = filetypes[GEANY_FILETYPES_JAVA];
@@ -115,6 +119,7 @@
 	ft->pattern = utils_strv_new("*.java", "*.jsp", NULL);
 	ft->comment_open = g_strdup("/*");
 	ft->comment_close = g_strdup("*/");
+	ft->group = GEANY_FILETYPE_GROUP_COMPILED;
 
 #define PAS /* to avoid warnings when building under Windows, the symbol PASCAL is there defined */
 	ft = filetypes[GEANY_FILETYPES_PASCAL];
@@ -126,6 +131,7 @@
 		"*.dpk", NULL);
 	ft->comment_open = g_strdup("{");
 	ft->comment_close = g_strdup("}");
+	ft->group = GEANY_FILETYPE_GROUP_COMPILED;
 
 #define ASM
 	ft = filetypes[GEANY_FILETYPES_ASM];
@@ -136,6 +142,7 @@
 	ft->pattern = utils_strv_new("*.asm", NULL);
 	ft->comment_open = g_strdup(";");
 	ft->comment_close = NULL;
+	ft->group = GEANY_FILETYPE_GROUP_COMPILED;
 
 #define BASIC
 	ft = filetypes[GEANY_FILETYPES_BASIC];
@@ -146,6 +153,7 @@
 	ft->pattern = utils_strv_new("*.bas", "*.bi", NULL);
 	ft->comment_open = g_strdup("'");
 	ft->comment_close = NULL;
+	ft->group = GEANY_FILETYPE_GROUP_COMPILED;
 
 #define FORTRAN
 	ft = filetypes[GEANY_FILETYPES_FORTRAN];
@@ -156,6 +164,7 @@
 	ft->pattern = utils_strv_new("*.f90", "*.f95", "*.f03", NULL);
 	ft->comment_open = g_strdup("c");
 	ft->comment_close = NULL;
+	ft->group = GEANY_FILETYPE_GROUP_COMPILED;
 
 #define F77
 	ft = filetypes[GEANY_FILETYPES_F77];
@@ -166,6 +175,7 @@
 	ft->pattern = utils_strv_new("*.f", "*.for", "*.ftn", "*.f77", NULL);
 	ft->comment_open = g_strdup("c");
 	ft->comment_close = NULL;
+	ft->group = GEANY_FILETYPE_GROUP_COMPILED;
 
 #define GLSL
 	ft = filetypes[GEANY_FILETYPES_GLSL];
@@ -176,6 +186,7 @@
 	ft->pattern = utils_strv_new("*.glsl", "*.frag", "*.vert", NULL);
 	ft->comment_open = g_strdup("/*");
 	ft->comment_close = g_strdup("*/");
+	ft->group = GEANY_FILETYPE_GROUP_COMPILED;
 
 #define CAML
 	ft = filetypes[GEANY_FILETYPES_CAML];
@@ -186,6 +197,7 @@
 	ft->pattern = utils_strv_new("*.ml", "*.mli", NULL);
 	ft->comment_open = g_strdup("(*");
 	ft->comment_close = g_strdup("*)");
+	ft->group = GEANY_FILETYPE_GROUP_COMPILED;
 
 #define PERL
 	ft = filetypes[GEANY_FILETYPES_PERL];
@@ -197,6 +209,7 @@
 		"*.pod", NULL);
 	ft->comment_open = g_strdup("#");
 	ft->comment_close = NULL;
+	ft->group = GEANY_FILETYPE_GROUP_SCRIPT;
 
 #define PHP
 	ft = filetypes[GEANY_FILETYPES_PHP];
@@ -208,6 +221,7 @@
 		"*.phtml", NULL);
 	ft->comment_open = g_strdup("//");
 	ft->comment_close = NULL;
+	ft->group = GEANY_FILETYPE_GROUP_SCRIPT;
 
 #define JAVASCRIPT
 	ft = filetypes[GEANY_FILETYPES_JS];
@@ -218,6 +232,7 @@
 	ft->pattern = utils_strv_new("*.js", NULL);
 	ft->comment_open = g_strdup("//");
 	ft->comment_close = NULL;
+	ft->group = GEANY_FILETYPE_GROUP_SCRIPT;
 
 #define PYTHON
 	ft = filetypes[GEANY_FILETYPES_PYTHON];
@@ -228,6 +243,7 @@
 	ft->pattern = utils_strv_new("*.py", "*.pyw", NULL);
 	ft->comment_open = g_strdup("#");
 	ft->comment_close = NULL;
+	ft->group = GEANY_FILETYPE_GROUP_SCRIPT;
 
 #define RUBY
 	ft = filetypes[GEANY_FILETYPES_RUBY];
@@ -238,6 +254,7 @@
 	ft->pattern = utils_strv_new("*.rb", "*.rhtml", "*.ruby", NULL);
 	ft->comment_open = g_strdup("#");
 	ft->comment_close = NULL;
+	ft->group = GEANY_FILETYPE_GROUP_SCRIPT;
 
 #define TCL
 	ft = filetypes[GEANY_FILETYPES_TCL];
@@ -248,6 +265,7 @@
 	ft->pattern = utils_strv_new("*.tcl", "*.tk", "*.wish", NULL);
 	ft->comment_open = g_strdup("#");
 	ft->comment_close = NULL;
+	ft->group = GEANY_FILETYPE_GROUP_SCRIPT;
 
 #define LUA
 	ft = filetypes[GEANY_FILETYPES_LUA];
@@ -258,6 +276,7 @@
 	ft->pattern = utils_strv_new("*.lua", NULL);
 	ft->comment_open = g_strdup("--");
 	ft->comment_close = NULL;
+	ft->group = GEANY_FILETYPE_GROUP_SCRIPT;
 
 #define FERITE
 	ft = filetypes[GEANY_FILETYPES_FERITE];
@@ -268,6 +287,7 @@
 	ft->pattern = utils_strv_new("*.fe", NULL);
 	ft->comment_open = g_strdup("/*");
 	ft->comment_close = g_strdup("*/");
+	ft->group = GEANY_FILETYPE_GROUP_SCRIPT;
 
 #define HASKELL
 	ft = filetypes[GEANY_FILETYPES_HASKELL];
@@ -278,6 +298,7 @@
 	ft->pattern = utils_strv_new("*.hs", "*.lhs", NULL);
 	ft->comment_open = g_strdup("--");
 	ft->comment_close = NULL;
+	ft->group = GEANY_FILETYPE_GROUP_COMPILED;
 
 #define SH
 	ft = filetypes[GEANY_FILETYPES_SH];
@@ -289,6 +310,7 @@
 		"configure.in.in", "configure.ac", "*.ksh", "*.zsh", "*.ash", "*.bash", NULL);
 	ft->comment_open = g_strdup("#");
 	ft->comment_close = NULL;
+	ft->group = GEANY_FILETYPE_GROUP_SCRIPT;
 
 #define MAKE
 	ft = filetypes[GEANY_FILETYPES_MAKE];
@@ -300,6 +322,7 @@
 		"*.mak", "*.mk", "GNUmakefile", "makefile", "Makefile", "makefile.*", "Makefile.*", NULL);
 	ft->comment_open = g_strdup("#");
 	ft->comment_close = NULL;
+	ft->group = GEANY_FILETYPE_GROUP_SCRIPT;
 
 #define XML
 	ft = filetypes[GEANY_FILETYPES_XML];
@@ -311,6 +334,7 @@
 		"*.xml", "*.sgml", "*.xsl", "*.xslt", "*.xsd", "*.xhtml", NULL);
 	ft->comment_open = g_strdup("<!--");
 	ft->comment_close = g_strdup("-->");
+	ft->group = GEANY_FILETYPE_GROUP_MARKUP;
 
 #define DOCBOOK
 	ft = filetypes[GEANY_FILETYPES_DOCBOOK];
@@ -321,6 +345,7 @@
 	ft->pattern = utils_strv_new("*.docbook", NULL);
 	ft->comment_open = g_strdup("<!--");
 	ft->comment_close = g_strdup("-->");
+	ft->group = GEANY_FILETYPE_GROUP_MARKUP;
 
 #define HTML
 	ft = filetypes[GEANY_FILETYPES_HTML];
@@ -332,6 +357,7 @@
 		"*.htm", "*.html", "*.shtml", "*.hta", "*.htd", "*.htt", "*.cfm", NULL);
 	ft->comment_open = g_strdup("<!--");
 	ft->comment_close = g_strdup("-->");
+	ft->group = GEANY_FILETYPE_GROUP_MARKUP;
 
 #define CSS
 	ft = filetypes[GEANY_FILETYPES_CSS];
@@ -342,6 +368,7 @@
 	ft->pattern = utils_strv_new("*.css", NULL);
 	ft->comment_open = g_strdup("/*");
 	ft->comment_close = g_strdup("*/");
+	ft->group = GEANY_FILETYPE_GROUP_MARKUP;	/* not really markup but fit quite well to HTML */
 
 #define SQL
 	ft = filetypes[GEANY_FILETYPES_SQL];
@@ -352,6 +379,7 @@
 	ft->pattern = utils_strv_new("*.sql", NULL);
 	ft->comment_open = g_strdup("/*");
 	ft->comment_close = g_strdup("*/");
+	ft->group = GEANY_FILETYPE_GROUP_MISC;
 
 #define LATEX
 	ft = filetypes[GEANY_FILETYPES_LATEX];
@@ -362,6 +390,7 @@
 	ft->pattern = utils_strv_new("*.tex", "*.sty", "*.idx", "*.ltx", NULL);
 	ft->comment_open = g_strdup("%");
 	ft->comment_close = NULL;
+	ft->group = GEANY_FILETYPE_GROUP_MISC;
 
 #define OMS
 	ft = filetypes[GEANY_FILETYPES_OMS];
@@ -372,6 +401,7 @@
 	ft->pattern = utils_strv_new("*.oms", NULL);
 	ft->comment_open = g_strdup("#");
 	ft->comment_close = NULL;
+	ft->group = GEANY_FILETYPE_GROUP_SCRIPT;
 
 #define VHDL
 	ft = filetypes[GEANY_FILETYPES_VHDL];
@@ -382,6 +412,7 @@
 	ft->pattern = utils_strv_new("*.vhd", "*.vhdl", NULL);
 	ft->comment_open = g_strdup("--");
 	ft->comment_close = NULL;
+	ft->group = GEANY_FILETYPE_GROUP_COMPILED;
 
 #define DIFF
 	ft = filetypes[GEANY_FILETYPES_DIFF];
@@ -392,6 +423,7 @@
 	ft->pattern = utils_strv_new("*.diff", "*.patch", "*.rej", NULL);
 	ft->comment_open = g_strdup("#");
 	ft->comment_close = NULL;
+	ft->group = GEANY_FILETYPE_GROUP_MISC;
 
 #define CONF
 	ft = filetypes[GEANY_FILETYPES_CONF];
@@ -403,6 +435,7 @@
 		"*.cfg", NULL);
 	ft->comment_open = g_strdup("#");
 	ft->comment_close = NULL;
+	ft->group = GEANY_FILETYPE_GROUP_MISC;
 
 #define HAXE
 	ft = filetypes[GEANY_FILETYPES_HAXE];
@@ -413,6 +446,7 @@
 	ft->pattern = utils_strv_new("*.hx", NULL);
 	ft->comment_open = g_strdup("//");
 	ft->comment_close = NULL;
+	ft->group = GEANY_FILETYPE_GROUP_COMPILED;
 
 #define REST
 	ft = filetypes[GEANY_FILETYPES_REST];
@@ -424,6 +458,7 @@
 		"*.rest", "*.reST", "*.rst", NULL);
 	ft->comment_open = NULL;
 	ft->comment_close = NULL;
+	ft->group = GEANY_FILETYPE_GROUP_MISC;
 
 #define ALL
 	ft = filetypes[GEANY_FILETYPES_NONE];
@@ -434,6 +469,7 @@
 	ft->pattern = utils_strv_new("*", NULL);
 	ft->comment_open = NULL;
 	ft->comment_close = NULL;
+	ft->group = GEANY_FILETYPE_GROUP_NONE;
 }
 
 
@@ -517,34 +553,29 @@
 		const gchar *title = ft->title;
 
 		/* insert separators for different filetype groups */
-		switch (ft_id)
+		switch (ft->group)
 		{
-			case GEANY_FILETYPES_GROUP_COMPILED:	/* programming */
-			{
+			case GEANY_FILETYPE_GROUP_COMPILED:	/* programming */
 				sub_menu = sub_menu_programming;
 				break;
-			}
-			case GEANY_FILETYPES_GROUP_SCRIPT:	/* scripts */
-			{
+
+			case GEANY_FILETYPE_GROUP_SCRIPT:	/* scripts */
 				sub_menu = sub_menu_scripts;
 				break;
-			}
-			case GEANY_FILETYPES_GROUP_MARKUP:	/* markup */
-			{	/* (include also CSS, not really markup but fit quite well to HTML) */
+
+			case GEANY_FILETYPE_GROUP_MARKUP:	/* markup */
 				sub_menu = sub_menu_markup;
 				break;
-			}
-			case GEANY_FILETYPES_GROUP_MISC:	/* misc */
-			{
+
+			case GEANY_FILETYPE_GROUP_MISC:	/* misc */
 				sub_menu = sub_menu_misc;
 				break;
-			}
-			case GEANY_FILETYPES_NONE:	/* none */
-			{
+
+			case GEANY_FILETYPE_GROUP_NONE:	/* none */
 				sub_menu = filetype_menu;
 				title = _("None");
 				break;
-			}
+
 			default: break;
 		}
 		create_radio_menu_item(sub_menu, title, ft);

Modified: trunk/src/filetypes.h
===================================================================
--- trunk/src/filetypes.h	2008-08-27 12:44:54 UTC (rev 2908)
+++ trunk/src/filetypes.h	2008-08-27 16:16:50 UTC (rev 2909)
@@ -30,13 +30,13 @@
 
 
 /* Each group should be alpha-sorted, based on filetype::name (not enum name).
- * Warning: remember to break the plugin ABI when adding items (this enum needs to be changed
- * to work with an ABI-stable filetype::group_name field. */
+ * Warning: remember to break the plugin ABI when adding items. */
+/* TODO: for a stable ABI put GEANY_FILETYPES_NONE first, and use a sorted duplicate
+ * filetypes array for GUI elements. */
 typedef enum
 {
 	/* normally compiled languages */
-	GEANY_FILETYPES_GROUP_COMPILED = 0,
-	GEANY_FILETYPES_ASM = GEANY_FILETYPES_GROUP_COMPILED,
+	GEANY_FILETYPES_ASM = 0,
 	GEANY_FILETYPES_C,
 	GEANY_FILETYPES_CPP,
 	GEANY_FILETYPES_CS,
@@ -53,8 +53,7 @@
 	GEANY_FILETYPES_VHDL,
 
 	/* script languages */
-	GEANY_FILETYPES_GROUP_SCRIPT,
-	GEANY_FILETYPES_FERITE = GEANY_FILETYPES_GROUP_SCRIPT,
+	GEANY_FILETYPES_FERITE,
 	GEANY_FILETYPES_JS,
 	GEANY_FILETYPES_LUA,
 	GEANY_FILETYPES_MAKE,
@@ -66,16 +65,14 @@
 	GEANY_FILETYPES_SH,
 	GEANY_FILETYPES_TCL,
 
- 	/* markup langauges */
-	GEANY_FILETYPES_GROUP_MARKUP,
-	GEANY_FILETYPES_CSS = GEANY_FILETYPES_GROUP_MARKUP,
+	/* markup langauges */
+	GEANY_FILETYPES_CSS,
 	GEANY_FILETYPES_DOCBOOK,
 	GEANY_FILETYPES_HTML,
  	GEANY_FILETYPES_XML,
 
 	/* miscellaneous languages */
-	GEANY_FILETYPES_GROUP_MISC,
-	GEANY_FILETYPES_CONF = GEANY_FILETYPES_GROUP_MISC,
+	GEANY_FILETYPES_CONF,
 	GEANY_FILETYPES_DIFF,
 	GEANY_FILETYPES_LATEX,
 	GEANY_FILETYPES_REST,
@@ -85,6 +82,17 @@
 	GEANY_MAX_BUILT_IN_FILETYPES	/* Use filetypes_array->len instead */
 } filetype_id;
 
+typedef enum
+{
+	GEANY_FILETYPE_GROUP_NONE,
+	GEANY_FILETYPE_GROUP_COMPILED,
+	GEANY_FILETYPE_GROUP_SCRIPT,
+	GEANY_FILETYPE_GROUP_MARKUP,
+	GEANY_FILETYPE_GROUP_MISC
+}
+GeanyFiletypeGroupID;
+
+
 /* Safe wrapper to get the id field of a possibly NULL filetype pointer. */
 #define FILETYPE_ID(filetype_ptr) \
 	(((filetype_ptr) != NULL) ? (filetype_ptr)->id : GEANY_FILETYPES_NONE)
@@ -123,6 +131,7 @@
 	gboolean  		  comment_use_indent;
 	struct build_programs	*programs;
 	struct build_actions	*actions;
+	GeanyFiletypeGroupID	group;
 };
 
 extern GPtrArray *filetypes_array;


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