SF.net SVN: geany: [765] trunk
eht16 at users.sourceforge.net
eht16 at xxxxx
Sun Aug 27 17:39:57 UTC 2006
Revision: 765
Author: eht16
Date: 2006-08-27 10:39:34 -0700 (Sun, 27 Aug 2006)
ViewCVS: http://svn.sourceforge.net/geany/?rev=765&view=rev
Log Message:
-----------
Added new filetypes Diff and Ferite.
Modified Paths:
--------------
trunk/ChangeLog
trunk/data/filetype_extensions.conf
trunk/src/filetypes.c
trunk/src/filetypes.h
trunk/src/highlighting.c
trunk/src/highlighting.h
trunk/src/msgwindow.c
trunk/tagmanager/c.c
trunk/tagmanager/parsers.h
Added Paths:
-----------
trunk/data/filetypes.diff
trunk/data/filetypes.ferite
Modified: trunk/ChangeLog
===================================================================
--- trunk/ChangeLog 2006-08-26 17:12:55 UTC (rev 764)
+++ trunk/ChangeLog 2006-08-27 17:39:34 UTC (rev 765)
@@ -1,3 +1,11 @@
+2006-08-27 Enrico Tröger <enrico.troeger at uvena.de>
+
+ * tagmanager/parsers.h, tagmanager/c.c, data/filetype_extensions.conf,
+ data/filetypes.diff, data/filetypes.ferite, src/highlighting.c,
+ src/filetypes.c, src/msgwindow.c:
+ Added new filetypes Diff and Ferite.
+
+
2006-08-26 Enrico Tröger <enrico.troeger at uvena.de>
* src/geany.h, src/main.c, src/utils.c:
Modified: trunk/data/filetype_extensions.conf
===================================================================
--- trunk/data/filetype_extensions.conf 2006-08-26 17:12:55 UTC (rev 764)
+++ trunk/data/filetype_extensions.conf 2006-08-27 17:39:34 UTC (rev 765)
@@ -9,6 +9,7 @@
Pascal=*.pas;*.pp;*.inc;*.dpr;*.dpk;
ASM=*.asm;
Fortran=*.f;*.f77;*.f90;*.f95;*.for;*.ftn;
+Ferite=*.fe;
CAML=*.ml;*.mli;
Perl=*.pl;*.perl;*.pm;
PHP=*.php;*.php3;*.php4;*.php5;*.html;*.htm;
@@ -24,4 +25,5 @@
LaTeX=*.tex;*.sty;*.idx;
O-Matrix=*.oms;
Conf=*.conf;*.ini;config;*rc;*.cfg;
+Diff=*.diff;*.patch;
None=*;
Added: trunk/data/filetypes.diff
===================================================================
--- trunk/data/filetypes.diff (rev 0)
+++ trunk/data/filetypes.diff 2006-08-27 17:39:34 UTC (rev 765)
@@ -0,0 +1,20 @@
+# For complete documentation of this file, please see Geany's main documentation
+[styling]
+# foreground;background;bold;italic
+default=0x000000;0xffffff;false;false
+comment=0x808080;0xffffff;false;false
+command=0x7f7f00;0xffffff;false;false
+header=0x7f0000;0xffffff;false;false
+position=0x00007f;0xffffff;false;false
+deleted=0xff2727;0xffffff;false;false
+added=0x34b034;0xffffff;false;false
+
+
+[settings]
+# the following characters are these which a "word" can contains, see documentation
+wordchars=_#&abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789
+
+# only the text before the first --- is a comment
+comment_open=
+comment_close=
+
Added: trunk/data/filetypes.ferite
===================================================================
--- trunk/data/filetypes.ferite (rev 0)
+++ trunk/data/filetypes.ferite 2006-08-27 17:39:34 UTC (rev 765)
@@ -0,0 +1,54 @@
+# For complete documentation of this file, please see Geany's main documentation
+[styling]
+# foreground;background;bold;italic
+default=0x000000;0xffffff;false;false
+comment=0xff0000;0xffffff;false;false
+commentline=0xff0000;0xffffff;false;false
+commentdoc=0xff0000;0xffffff;false;false
+number=0x007f00;0xffffff;false;false
+word=0x00007f;0xffffff;true;false
+word2=0x991111;0xffffff;true;false
+string=0xff901e;0xffffff;false;false
+character=0xff901e;0xffffff;false;false
+uuid=0x404080;0xffffff;false;false
+preprocessor=0x007F7F;0xffffff;false;false
+operator=0x301010;0xffffff;false;false
+identifier=0x000000;0xffffff;false;false
+stringeol=0x000000;0xe0c0e0;false;false
+verbatim=0x101030;0xffffff;false;false
+regex=0x105090;0xffffff;false;false
+commentlinedoc=0xff0000;0xffffff;true;false
+commentdockeyword=0xff0000;0xffffff;true;true
+globalclass=0x1111bb;0xffffff;true;false
+
+[keywords]
+# all items must be in one line
+primary=false null self super true abstract alias arguments attribute_missing break case class closure conformsToProtocol constructor default deliver destructor diliver do else extends final fix for function if iferr implements include instanceof method_missing modifies namespace new private protected protocol public recipient rename return static switch uses using while
+types=string number array object void
+docComment=@brief @class @declaration @description @end @example @extends @function @group @implements @modifies @module @namespace @param @protocol @return @return @static @type @variable @warning
+
+[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
+comment_open=//
+comment_close=
+# this is an alternative way, so multiline comments are used
+#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)
+compiler=ferite -c "%f"
+run_cmd=ferite "%f"
Modified: trunk/src/filetypes.c
===================================================================
--- trunk/src/filetypes.c 2006-08-26 17:12:55 UTC (rev 764)
+++ trunk/src/filetypes.c 2006-08-27 17:39:34 UTC (rev 765)
@@ -58,8 +58,10 @@
FILETYPE_UID_TCL, // 19
FILETYPE_UID_ALL, // 20
FILETYPE_UID_D, // 21
- FILETYPE_UID_FORTRAN // 22
- //FILETYPE_UID_HTML, // 23
+ FILETYPE_UID_FORTRAN, // 22
+ FILETYPE_UID_DIFF, // 23
+ FILETYPE_UID_FERITE // 24
+ //FILETYPE_UID_HTML, // 25
};
@@ -98,6 +100,8 @@
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_FERITE: return filetypes[GEANY_FILETYPES_FERITE];
//case FILETYPE_UID_HTML: return filetypes[GEANY_FILETYPES_HTML];
default: return NULL;
}
@@ -397,6 +401,25 @@
filetypes_init_build_programs(filetypes[GEANY_FILETYPES_TCL]);
filetypes_create_menu_item(filetype_menu, filetypes[GEANY_FILETYPES_TCL]->title, filetypes[GEANY_FILETYPES_TCL]);
+#define FERITE
+ filetypes[GEANY_FILETYPES_FERITE] = g_new0(filetype, 1);
+ filetypes[GEANY_FILETYPES_FERITE]->id = GEANY_FILETYPES_FERITE;
+ filetypes[GEANY_FILETYPES_FERITE]->uid = FILETYPE_UID_FERITE;
+ filetypes[GEANY_FILETYPES_FERITE]->item = NULL;
+ filetypes[GEANY_FILETYPES_FERITE]->lang = 19;
+ filetypes[GEANY_FILETYPES_FERITE]->name = g_strdup("Ferite");
+ filetypes[GEANY_FILETYPES_FERITE]->has_tags = TRUE;
+ filetypes[GEANY_FILETYPES_FERITE]->title = g_strdup(_("Ferite source file"));
+ filetypes[GEANY_FILETYPES_FERITE]->extension = g_strdup("fe");
+ filetypes[GEANY_FILETYPES_FERITE]->pattern = g_new0(gchar*, 2);
+ filetypes[GEANY_FILETYPES_FERITE]->pattern[0] = g_strdup("*.fe");
+ filetypes[GEANY_FILETYPES_FERITE]->pattern[1] = NULL;
+ filetypes[GEANY_FILETYPES_FERITE]->style_func_ptr = styleset_ferite;
+ filetypes[GEANY_FILETYPES_FERITE]->comment_open = g_strdup("/*");
+ filetypes[GEANY_FILETYPES_FERITE]->comment_close = g_strdup("*/");
+ filetypes_init_build_programs(filetypes[GEANY_FILETYPES_FERITE]);
+ filetypes_create_menu_item(filetype_menu, filetypes[GEANY_FILETYPES_FERITE]->title, filetypes[GEANY_FILETYPES_FERITE]);
+
#define SH
filetypes[GEANY_FILETYPES_SH] = g_new0(filetype, 1);
filetypes[GEANY_FILETYPES_SH]->id = GEANY_FILETYPES_SH;
@@ -559,6 +582,26 @@
filetypes_init_build_programs(filetypes[GEANY_FILETYPES_OMS]);
filetypes_create_menu_item(filetype_menu, filetypes[GEANY_FILETYPES_OMS]->title, filetypes[GEANY_FILETYPES_OMS]);
+#define DIFF
+ filetypes[GEANY_FILETYPES_DIFF] = g_new0(filetype, 1);
+ filetypes[GEANY_FILETYPES_DIFF]->id = GEANY_FILETYPES_DIFF;
+ filetypes[GEANY_FILETYPES_DIFF]->uid = FILETYPE_UID_DIFF;
+ filetypes[GEANY_FILETYPES_DIFF]->item = NULL;
+ filetypes[GEANY_FILETYPES_DIFF]->lang = -2;
+ filetypes[GEANY_FILETYPES_DIFF]->name = g_strdup("Diff");
+ filetypes[GEANY_FILETYPES_DIFF]->has_tags = FALSE;
+ filetypes[GEANY_FILETYPES_DIFF]->title = g_strdup(_("Diff file"));
+ filetypes[GEANY_FILETYPES_DIFF]->extension = g_strdup("diff");
+ filetypes[GEANY_FILETYPES_DIFF]->pattern = g_new0(gchar*, 3);
+ filetypes[GEANY_FILETYPES_DIFF]->pattern[0] = g_strdup("*.diff");
+ filetypes[GEANY_FILETYPES_DIFF]->pattern[1] = g_strdup("*.patch");
+ filetypes[GEANY_FILETYPES_DIFF]->pattern[2] = NULL;
+ filetypes[GEANY_FILETYPES_DIFF]->style_func_ptr = styleset_diff;
+ filetypes[GEANY_FILETYPES_DIFF]->comment_open = g_strdup("#");
+ filetypes[GEANY_FILETYPES_DIFF]->comment_close = NULL;
+ filetypes_init_build_programs(filetypes[GEANY_FILETYPES_DIFF]);
+ filetypes_create_menu_item(filetype_menu, filetypes[GEANY_FILETYPES_DIFF]->title, filetypes[GEANY_FILETYPES_DIFF]);
+
#define CONF
filetypes[GEANY_FILETYPES_CONF] = g_new0(filetype, 1);
filetypes[GEANY_FILETYPES_CONF]->id = GEANY_FILETYPES_CONF;
Modified: trunk/src/filetypes.h
===================================================================
--- trunk/src/filetypes.h 2006-08-26 17:12:55 UTC (rev 764)
+++ trunk/src/filetypes.h 2006-08-27 17:39:34 UTC (rev 765)
@@ -47,6 +47,7 @@
GEANY_FILETYPES_PYTHON,
GEANY_FILETYPES_RUBY,
GEANY_FILETYPES_TCL,
+ GEANY_FILETYPES_FERITE,
GEANY_FILETYPES_SH,
GEANY_FILETYPES_MAKE,
GEANY_FILETYPES_XML,
@@ -58,6 +59,7 @@
GEANY_FILETYPES_SQL,
GEANY_FILETYPES_LATEX,
GEANY_FILETYPES_OMS,
+ GEANY_FILETYPES_DIFF,
GEANY_FILETYPES_CONF,
GEANY_FILETYPES_ALL,
GEANY_MAX_FILE_TYPES
Modified: trunk/src/highlighting.c
===================================================================
--- trunk/src/highlighting.c 2006-08-26 17:12:55 UTC (rev 764)
+++ trunk/src/highlighting.c 2006-08-27 17:39:34 UTC (rev 765)
@@ -738,6 +738,58 @@
}
+static void styleset_diff_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.diff", NULL);
+ gchar *f = g_strconcat(app->configdir, G_DIR_SEPARATOR_S GEANY_FILEDEFS_SUBDIR G_DIR_SEPARATOR_S "filetypes.diff", 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_DIFF] = g_new(style_set, 1);
+ styleset_get_hex(config, config_home, "styling", "default", "0x000000", "0xffffff", "false", types[GEANY_FILETYPES_DIFF]->styling[0]);
+ styleset_get_hex(config, config_home, "styling", "comment", "0x808080", "0xffffff", "false", types[GEANY_FILETYPES_DIFF]->styling[1]);
+ styleset_get_hex(config, config_home, "styling", "command", "0x7f7f00", "0xffffff", "false", types[GEANY_FILETYPES_DIFF]->styling[2]);
+ styleset_get_hex(config, config_home, "styling", "header", "0x7f0000", "0xffffff", "false", types[GEANY_FILETYPES_DIFF]->styling[3]);
+ styleset_get_hex(config, config_home, "styling", "position", "0x00007f", "0xffffff", "false", types[GEANY_FILETYPES_DIFF]->styling[4]);
+ styleset_get_hex(config, config_home, "styling", "deleted", "0xff2727", "0xffffff", "false", types[GEANY_FILETYPES_DIFF]->styling[5]);
+ styleset_get_hex(config, config_home, "styling", "added", "0x34b034", "0xffffff", "false", types[GEANY_FILETYPES_DIFF]->styling[6]);
+
+ types[GEANY_FILETYPES_DIFF]->keywords = NULL;
+
+ styleset_get_wordchars(config, config_home, GEANY_FILETYPES_DIFF, GEANY_WORDCHARS);
+ filetypes_get_config(config, config_home, GEANY_FILETYPES_DIFF);
+
+ g_key_file_free(config);
+ g_key_file_free(config_home);
+ g_free(f0);
+ g_free(f);
+}
+
+
+void styleset_diff(ScintillaObject *sci)
+{
+ if (types[GEANY_FILETYPES_DIFF] == NULL) styleset_diff_init();
+
+ styleset_common(sci, 5);
+
+ SSM (sci, SCI_SETLEXER, SCLEX_DIFF, 0);
+
+ SSM(sci, SCI_SETWORDCHARS, 0, (sptr_t) types[GEANY_FILETYPES_DIFF]->wordchars);
+
+ styleset_set_style(sci, STYLE_DEFAULT, GEANY_FILETYPES_DIFF, 0);
+ styleset_set_style(sci, SCE_DIFF_DEFAULT, GEANY_FILETYPES_DIFF, 0);
+ styleset_set_style(sci, SCE_DIFF_COMMENT, GEANY_FILETYPES_DIFF, 1);
+ styleset_set_style(sci, SCE_DIFF_COMMAND, GEANY_FILETYPES_DIFF, 2);
+ styleset_set_style(sci, SCE_DIFF_HEADER, GEANY_FILETYPES_DIFF, 3);
+ styleset_set_style(sci, SCE_DIFF_POSITION, GEANY_FILETYPES_DIFF, 4);
+ styleset_set_style(sci, SCE_DIFF_DELETED, GEANY_FILETYPES_DIFF, 5);
+ styleset_set_style(sci, SCE_DIFF_ADDED, GEANY_FILETYPES_DIFF, 6);
+}
+
+
static void styleset_latex_init(void)
{
GKeyFile *config = g_key_file_new();
@@ -788,7 +840,7 @@
SSM (sci, SCI_SETLEXER, SCLEX_LATEX, 0);
SSM(sci, SCI_SETKEYWORDS, 0, (sptr_t) types[GEANY_FILETYPES_LATEX]->keywords[0]);
- SSM (sci, SCI_SETWORDCHARS, 0, (sptr_t) types[GEANY_FILETYPES_LATEX]->wordchars);
+ SSM(sci, SCI_SETWORDCHARS, 0, (sptr_t) types[GEANY_FILETYPES_LATEX]->wordchars);
styleset_set_style(sci, STYLE_DEFAULT, GEANY_FILETYPES_LATEX, 0);
styleset_set_style(sci, SCE_L_DEFAULT, GEANY_FILETYPES_LATEX, 0);
@@ -846,8 +898,8 @@
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_SETPROPERTY, (sptr_t) "phpscript.mode", (sptr_t) "1");
+ SSM(sci, SCI_SETLEXER, SCLEX_HTML, 0);
SSM(sci, SCI_AUTOCSETMAXHEIGHT, app->autocompletion_max_height, 0);
@@ -2529,3 +2581,97 @@
styleset_set_style(sci, SCE_C_GLOBALCLASS, GEANY_FILETYPES_D, 18);
}
+
+static void styleset_ferite_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.ferite", NULL);
+ gchar *f = g_strconcat(app->configdir, G_DIR_SEPARATOR_S GEANY_FILEDEFS_SUBDIR G_DIR_SEPARATOR_S "filetypes.ferite", 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_FERITE] = g_new(style_set, 1);
+ styleset_get_hex(config, config_home, "styling", "default", "0x000000", "0xffffff", "false", types[GEANY_FILETYPES_FERITE]->styling[0]);
+ styleset_get_hex(config, config_home, "styling", "comment", "0xff0000", "0xffffff", "false", types[GEANY_FILETYPES_FERITE]->styling[1]);
+ styleset_get_hex(config, config_home, "styling", "commentline", "0xff0000", "0xffffff", "false", types[GEANY_FILETYPES_FERITE]->styling[2]);
+ styleset_get_hex(config, config_home, "styling", "commentdoc", "0xff0000", "0xffffff", "false", types[GEANY_FILETYPES_FERITE]->styling[3]);
+ styleset_get_hex(config, config_home, "styling", "number", "0x007f00", "0xffffff", "false", types[GEANY_FILETYPES_FERITE]->styling[4]);
+ styleset_get_hex(config, config_home, "styling", "word", "0x00007f", "0xffffff", "true", types[GEANY_FILETYPES_FERITE]->styling[5]);
+ styleset_get_hex(config, config_home, "styling", "word2", "0x991111", "0xffffff", "true", types[GEANY_FILETYPES_FERITE]->styling[6]);
+ styleset_get_hex(config, config_home, "styling", "string", "0xff901e", "0xffffff", "false", types[GEANY_FILETYPES_FERITE]->styling[7]);
+ styleset_get_hex(config, config_home, "styling", "character", "0xff901e", "0xffffff", "false", types[GEANY_FILETYPES_FERITE]->styling[8]);
+ styleset_get_hex(config, config_home, "styling", "uuid", "0x404080", "0xffffff", "false", types[GEANY_FILETYPES_FERITE]->styling[9]);
+ styleset_get_hex(config, config_home, "styling", "preprocessor", "0x007f7f", "0xffffff", "false", types[GEANY_FILETYPES_FERITE]->styling[10]);
+ styleset_get_hex(config, config_home, "styling", "operator", "0x301010", "0xffffff", "false", types[GEANY_FILETYPES_FERITE]->styling[11]);
+ styleset_get_hex(config, config_home, "styling", "identifier", "0x000000", "0xffffff", "false", types[GEANY_FILETYPES_FERITE]->styling[12]);
+ styleset_get_hex(config, config_home, "styling", "stringeol", "0x000000", "0xe0c0e0", "false", types[GEANY_FILETYPES_FERITE]->styling[13]);
+ styleset_get_hex(config, config_home, "styling", "verbatim", "0x101030", "0xffffff", "false", types[GEANY_FILETYPES_FERITE]->styling[14]);
+ styleset_get_hex(config, config_home, "styling", "regex", "0x105090", "0xffffff", "false", types[GEANY_FILETYPES_FERITE]->styling[15]);
+ styleset_get_hex(config, config_home, "styling", "commentlinedoc", "0xff0000", "0xffffff", "true", types[GEANY_FILETYPES_FERITE]->styling[16]);
+ styleset_get_hex(config, config_home, "styling", "commentdockeyword", "0xff0000", "0xffffff", "true", types[GEANY_FILETYPES_FERITE]->styling[17]);
+ styleset_get_hex(config, config_home, "styling", "globalclass", "0x1111bb", "0xffffff", "true", types[GEANY_FILETYPES_FERITE]->styling[18]);
+ styleset_get_int(config, config_home, "styling", "styling_within_preprocessor", 1, 0, types[GEANY_FILETYPES_FERITE]->styling[19]);
+
+ types[GEANY_FILETYPES_FERITE]->keywords = g_new(gchar*, 4);
+ styleset_get_keywords(config, config_home, "keywords", "primary", GEANY_FILETYPES_FERITE, 0, "false null self super true abstract alias arguments attribute_missing break case class closure conformsToProtocol constructor default deliver destructor diliver do else extends final fix for function if iferr implements include instanceof method_missing modifies namespace new private protected protocol public recipient rename return static switch uses using while");
+ styleset_get_keywords(config, config_home, "keywords", "types", GEANY_FILETYPES_FERITE, 1, "number string array object void");
+ styleset_get_keywords(config, config_home, "keywords", "docComment", GEANY_FILETYPES_FERITE, 2, "@brief @class @declaration @description @end @example @extends @function @group @implements @modifies @module @namespace @param @protocol @return @return @static @type @variable @warning");
+ types[GEANY_FILETYPES_FERITE]->keywords[3] = NULL;
+
+ styleset_get_wordchars(config, config_home, GEANY_FILETYPES_FERITE, GEANY_WORDCHARS);
+ filetypes_get_config(config, config_home, GEANY_FILETYPES_FERITE);
+
+ g_key_file_free(config);
+ g_key_file_free(config_home);
+ g_free(f0);
+ g_free(f);
+}
+
+
+void styleset_ferite(ScintillaObject *sci)
+{
+ if (types[GEANY_FILETYPES_FERITE] == NULL) styleset_ferite_init();
+
+ styleset_common(sci, 5);
+
+ SSM(sci, SCI_SETWORDCHARS, 0, (sptr_t) types[GEANY_FILETYPES_FERITE]->wordchars);
+ SSM(sci, SCI_AUTOCSETMAXHEIGHT, app->autocompletion_max_height, 0);
+
+ SSM(sci, SCI_SETLEXER, SCLEX_CPP, 0);
+
+ //SSM(sci, SCI_SETCONTROLCHARSYMBOL, 32, 0);
+
+ SSM(sci, SCI_SETKEYWORDS, 0, (sptr_t) types[GEANY_FILETYPES_FERITE]->keywords[0]);
+ SSM(sci, SCI_SETKEYWORDS, 1, (sptr_t) types[GEANY_FILETYPES_FERITE]->keywords[1]);
+ SSM(sci, SCI_SETKEYWORDS, 2, (sptr_t) types[GEANY_FILETYPES_FERITE]->keywords[2]);
+
+ styleset_set_style(sci, STYLE_DEFAULT, GEANY_FILETYPES_FERITE, 0);
+ styleset_set_style(sci, SCE_C_DEFAULT, GEANY_FILETYPES_FERITE, 0);
+ styleset_set_style(sci, SCE_C_COMMENT, GEANY_FILETYPES_FERITE, 1);
+ styleset_set_style(sci, SCE_C_COMMENTLINE, GEANY_FILETYPES_FERITE, 2);
+ styleset_set_style(sci, SCE_C_COMMENTDOC, GEANY_FILETYPES_FERITE, 3);
+ styleset_set_style(sci, SCE_C_NUMBER, GEANY_FILETYPES_FERITE, 4);
+ styleset_set_style(sci, SCE_C_WORD, GEANY_FILETYPES_FERITE, 5);
+ styleset_set_style(sci, SCE_C_WORD2, GEANY_FILETYPES_FERITE, 6);
+ styleset_set_style(sci, SCE_C_STRING, GEANY_FILETYPES_FERITE, 7);
+ styleset_set_style(sci, SCE_C_CHARACTER, GEANY_FILETYPES_FERITE, 8);
+ styleset_set_style(sci, SCE_C_UUID, GEANY_FILETYPES_FERITE, 9);
+ styleset_set_style(sci, SCE_C_PREPROCESSOR, GEANY_FILETYPES_FERITE, 10);
+ styleset_set_style(sci, SCE_C_OPERATOR, GEANY_FILETYPES_FERITE, 11);
+ styleset_set_style(sci, SCE_C_IDENTIFIER, GEANY_FILETYPES_FERITE, 12);
+ styleset_set_style(sci, SCE_C_STRINGEOL, GEANY_FILETYPES_FERITE, 13);
+ styleset_set_style(sci, SCE_C_VERBATIM, GEANY_FILETYPES_FERITE, 14);
+ styleset_set_style(sci, SCE_C_REGEX, GEANY_FILETYPES_FERITE, 15);
+ styleset_set_style(sci, SCE_C_COMMENTLINEDOC, GEANY_FILETYPES_FERITE, 16);
+ styleset_set_style(sci, SCE_C_COMMENTDOCKEYWORD, GEANY_FILETYPES_FERITE, 17);
+
+ SSM(sci, SCI_STYLESETFORE, SCE_C_COMMENTDOCKEYWORDERROR, invert(0x0000ff));
+ SSM(sci, SCI_STYLESETBACK, SCE_C_COMMENTDOCKEYWORDERROR, invert(0xffffff));
+ SSM(sci, SCI_STYLESETITALIC, SCE_C_COMMENTDOCKEYWORDERROR, TRUE);
+
+ // is used for local structs and typedefs
+ styleset_set_style(sci, SCE_C_GLOBALCLASS, GEANY_FILETYPES_FERITE, 18);
+}
+
Modified: trunk/src/highlighting.h
===================================================================
--- trunk/src/highlighting.h 2006-08-26 17:12:55 UTC (rev 764)
+++ trunk/src/highlighting.h 2006-08-27 17:39:34 UTC (rev 765)
@@ -92,4 +92,8 @@
void styleset_fortran(ScintillaObject *sci);
+void styleset_diff(ScintillaObject *sci);
+
+void styleset_ferite(ScintillaObject *sci);
+
#endif
Modified: trunk/src/msgwindow.c
===================================================================
--- trunk/src/msgwindow.c 2006-08-26 17:12:55 UTC (rev 764)
+++ trunk/src/msgwindow.c 2006-08-27 17:39:34 UTC (rev 765)
@@ -415,6 +415,16 @@
field_idx_file = 2;
break;
}
+ case GEANY_FILETYPES_FERITE:
+ {
+ // Error: Parse Error: on line 5 in "/misc/tmp/testfiles_geany/hello.fe"
+ pattern = " \"";
+ field_min_len = 10;
+ field_idx_line = 5;
+ field_idx_file = 8;
+ break;
+ }
+
default: return;
}
@@ -441,8 +451,11 @@
if (strncmp(fields[field_idx_file], "./", 2) == 0) skip_dot_slash = 2;
// get the build directory to get the path to look for other files
- *filename = g_strconcat(build_info.dir, G_DIR_SEPARATOR_S,
- fields[field_idx_file] + skip_dot_slash, NULL);
+ if (! utils_is_absolute_path(fields[field_idx_file]))
+ *filename = g_strconcat(build_info.dir, G_DIR_SEPARATOR_S,
+ fields[field_idx_file] + skip_dot_slash, NULL);
+ else
+ *filename = g_strdup(fields[field_idx_file]);
g_strfreev(fields);
}
Modified: trunk/tagmanager/c.c
===================================================================
--- trunk/tagmanager/c.c 2006-08-26 17:12:55 UTC (rev 764)
+++ trunk/tagmanager/c.c 2006-08-27 17:39:34 UTC (rev 765)
@@ -76,7 +76,7 @@
KEYWORD_SYNCHRONIZED,
KEYWORD_TEMPLATE, KEYWORD_THROW, KEYWORD_THROWS, KEYWORD_TRANSIENT,
KEYWORD_TRY, KEYWORD_TYPEDEF, KEYWORD_TYPENAME,
- KEYWORD_UNION, KEYWORD_UNSIGNED, KEYWORD_USING,
+ KEYWORD_UNION, KEYWORD_UNSIGNED, KEYWORD_USES, KEYWORD_USING,
KEYWORD_VIRTUAL, KEYWORD_VOID, KEYWORD_VOLATILE,
KEYWORD_WCHAR_T
} keywordId;
@@ -234,6 +234,7 @@
static langType Lang_cpp;
static langType Lang_java;
static langType Lang_d;
+static langType Lang_ferite;
/* Used to index into the CKinds table. */
typedef enum {
@@ -326,6 +327,7 @@
{ "typename", KEYWORD_TYPENAME, { 0, 1, 0 } },
{ "union", KEYWORD_UNION, { 1, 1, 0 } },
{ "unsigned", KEYWORD_UNSIGNED, { 1, 1, 0 } },
+ { "uses", KEYWORD_USES, { 0, 1, 0 } },
{ "using", KEYWORD_USING, { 0, 1, 0 } },
{ "virtual", KEYWORD_VIRTUAL, { 0, 1, 0 } },
{ "void", KEYWORD_VOID, { 1, 1, 1 } },
@@ -709,7 +711,7 @@
*/
if (! partial)
st->member.access = st->member.accessDefault;
-
+
/* Init first token */
if (!partial)
initToken(st->firstToken);
@@ -820,7 +822,9 @@
static const char* accessField (const statementInfo *const st)
{
const char* result = NULL;
- if ((isLanguage (Lang_cpp) || isLanguage (Lang_d)) && st->scope == SCOPE_FRIEND)
+
+ if ((isLanguage (Lang_cpp) || isLanguage (Lang_d) || isLanguage (Lang_ferite)) &&
+ st->scope == SCOPE_FRIEND)
result = "friend";
else if (st->member.access != ACCESS_UNDEFINED)
result = accessString (st->member.access);
@@ -867,7 +871,8 @@
vStringValue (st->parentClasses);
}
if (st->implementation != IMP_DEFAULT &&
- (isLanguage (Lang_cpp) || isLanguage (Lang_java) || isLanguage (Lang_d)))
+ (isLanguage (Lang_cpp) || isLanguage (Lang_java) ||
+ isLanguage (Lang_d) || isLanguage (Lang_ferite)))
{
tag->extensionFields.implementation =
implementationString (st->implementation);
@@ -878,7 +883,7 @@
}
if ((TRUE == st->gotArgs) && (TRUE == Option.extensionFields.argList) &&
((TAG_FUNCTION == type) || (TAG_METHOD == type) || (TAG_PROTOTYPE == type))) {
-
+
if (1) {
tag->extensionFields.arglist = getArglistFromPos(
tag->filePosition, tag->name);
@@ -886,7 +891,7 @@
}
break;
}
-
+
if ((TAG_FIELD == tag->type) || (TAG_MEMBER == tag->type) ||
(TAG_EXTERN_VAR == tag->type) || (TAG_TYPEDEF == tag->type) ||
(TAG_VARIABLE == tag->type) || (TAG_METHOD == tag->type) ||
@@ -901,7 +906,8 @@
static void addContextSeparator (vString *const scope)
{
- if (isLanguage (Lang_c) || isLanguage (Lang_cpp) || isLanguage (Lang_d))
+ if (isLanguage (Lang_c) || isLanguage (Lang_cpp) ||
+ isLanguage (Lang_d) || isLanguage (Lang_ferite))
vStringCatS (scope, "::");
else if (isLanguage (Lang_java))
vStringCatS (scope, ".");
@@ -1004,9 +1010,17 @@
if (isType (token, TOKEN_NAME) && vStringLength (token->name) > 0 /* &&
includeTag (type, isFileScope) */)
{
- vString *scope = vStringNew ();
+ vString *scope;
tagEntryInfo e;
+ // take only functions which are introduced by "function ..."
+ if (type == TAG_FUNCTION && isLanguage (Lang_ferite) &&
+ strncmp("function", st->firstToken->name->buffer, 8) != 0)
+ {
+ return;
+ }
+
+ scope = vStringNew ();
initTagEntry (&e, vStringValue (token->name));
e.lineNumber = token->lineNumber;
@@ -1427,7 +1441,7 @@
{
if (isMember (st))
{
- if (isLanguage (Lang_cpp) || isLanguage (Lang_d))
+ if (isLanguage (Lang_cpp) || isLanguage (Lang_d) || isLanguage (Lang_ferite))
{
int c = skipToNonWhite ();
@@ -1982,7 +1996,8 @@
{
if (vStringLength (st->context->name) > 0)
{
- if (isLanguage (Lang_c) || isLanguage (Lang_cpp) || isLanguage (Lang_d))
+ if (isLanguage (Lang_c) || isLanguage (Lang_cpp) ||
+ isLanguage (Lang_d) || isLanguage (Lang_ferite))
vStringCatS (st->context->name, "::");
else if (isLanguage (Lang_java))
vStringCatS (st->context->name, ".");
@@ -2005,7 +2020,7 @@
else
{
cppUngetc (c);
- if ((isLanguage (Lang_cpp) || isLanguage (Lang_d)) && (
+ if ((isLanguage (Lang_cpp) || isLanguage (Lang_d) || isLanguage (Lang_ferite)) && (
st->declaration == DECL_CLASS || st->declaration == DECL_STRUCT))
{
readParents (st, ':');
@@ -2132,7 +2147,7 @@
default: parseGeneralToken (st, c); break;
}
} while (isType (token, TOKEN_NONE));
-
+
/* We want to know about non-keyword variable types */
if (TOKEN_NONE == st->firstToken->type)
{
@@ -2407,9 +2422,15 @@
static void initializeDParser (const langType language)
{
Lang_d = language;
- buildKeywordHash (language, 17);
+ buildKeywordHash (language, 1);
}
+static void initializeFeriteParser (const langType language)
+{
+ Lang_ferite = language;
+ buildKeywordHash (language, 1);
+}
+
extern parserDefinition* CParser (void)
{
static const char *const extensions [] = { "c", "pc", "sc", NULL };
@@ -2425,8 +2446,7 @@
extern parserDefinition* CppParser (void)
{
static const char *const extensions [] = {
- "c++", "cc", "cp", "cpp", "cxx", "h", "h++", "hh", "hp", "hpp", "hxx",
-"i",
+ "c++", "cc", "cp", "cpp", "cxx", "h", "h++", "hh", "hp", "hpp", "hxx", "i",
#ifndef CASE_INSENSITIVE_FILENAMES
"C", "H",
#endif
@@ -2465,5 +2485,16 @@
return def;
}
+extern parserDefinition* FeriteParser (void)
+{
+ static const char *const extensions [] = { "fe", NULL };
+ parserDefinition* def = parserNew ("Ferite");
+ def->kinds = CKinds;
+ def->kindCount = KIND_COUNT (CKinds);
+ def->extensions = extensions;
+ def->parser2 = findCTags;
+ def->initialize = initializeFeriteParser;
+ return def;
+}
/* vi:set tabstop=8 shiftwidth=4: */
Modified: trunk/tagmanager/parsers.h
===================================================================
--- trunk/tagmanager/parsers.h 2006-08-26 17:12:55 UTC (rev 764)
+++ trunk/tagmanager/parsers.h 2006-08-27 17:39:34 UTC (rev 765)
@@ -33,7 +33,8 @@
TclParser, \
ShParser, \
DParser, \
- FortranParser
+ FortranParser, \
+ FeriteParser
/*
langType of each parser
@@ -56,6 +57,7 @@
16 ShParser
17 DParser
18 FortranParser
+19 FeriteParser
*/
#endif /* _PARSERS_H */
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