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