SF.net SVN: geany:[4211] trunk

eht16 at users.sourceforge.net eht16 at xxxxx
Sun Sep 20 18:46:56 UTC 2009


Revision: 4211
          http://geany.svn.sourceforge.net/geany/?rev=4211&view=rev
Author:   eht16
Date:     2009-09-20 18:46:56 +0000 (Sun, 20 Sep 2009)

Log Message:
-----------
Add new filetype: Abc (patch by Eric Forgeot, thanks).

Modified Paths:
--------------
    trunk/ChangeLog
    trunk/data/filetype_extensions.conf
    trunk/src/filetypes.c
    trunk/src/filetypes.h
    trunk/src/symbols.c
    trunk/tagmanager/Makefile.am
    trunk/tagmanager/makefile.win32
    trunk/tagmanager/parsers.h
    trunk/wscript

Added Paths:
-----------
    trunk/data/filetypes.abc
    trunk/tagmanager/abc.c

Modified: trunk/ChangeLog
===================================================================
--- trunk/ChangeLog	2009-09-17 18:08:21 UTC (rev 4210)
+++ trunk/ChangeLog	2009-09-20 18:46:56 UTC (rev 4211)
@@ -1,3 +1,12 @@
+2009-09-20  Enrico Tröger  <enrico(dot)troeger(at)uvena(dot)de>
+
+ * src/filetypes.c, src/filetypes.h, src/symbols.c,
+   tagmanager/parsers.h, tagmanager/makefile.win32,
+   tagmanager/abc.c, tagmanager/Makefile.am, data/filetypes.abc,
+   data/filetype_extensions.conf, wscript:
+
+
+
 2009-09-17  Enrico Tröger  <enrico(dot)troeger(at)uvena(dot)de>
 
  * src/printing.c:

Modified: trunk/data/filetype_extensions.conf
===================================================================
--- trunk/data/filetype_extensions.conf	2009-09-17 18:08:21 UTC (rev 4210)
+++ trunk/data/filetype_extensions.conf	2009-09-20 18:46:56 UTC (rev 4211)
@@ -3,6 +3,7 @@
 # See Geany's main documentation for details.
 [Extensions]
 ASM=*.asm;
+Abc=*.abc;*.abp;
 Ada=*.adb;*.ads;
 C=*.c;*.h;
 C++=*.cpp;*.cxx;*.c++;*.cc;*.h;*.hpp;*.hxx;*.h++;*.hh;*.C;*.H;

Added: trunk/data/filetypes.abc
===================================================================
--- trunk/data/filetypes.abc	                        (rev 0)
+++ trunk/data/filetypes.abc	2009-09-20 18:46:56 UTC (rev 4211)
@@ -0,0 +1,9 @@
+# For complete documentation of this file, please see Geany's main documentation
+[styling]
+# no syntax highlighting yet
+
+[settings]
+# default extension used when saving files
+extension=abc
+
+


Property changes on: trunk/data/filetypes.abc
___________________________________________________________________
Added: keywords
   + Author Date Id Revision
Added: svn:keywords
   + Author Date Id Revision
Added: svn:eol-style
   + native

Modified: trunk/src/filetypes.c
===================================================================
--- trunk/src/filetypes.c	2009-09-17 18:08:21 UTC (rev 4210)
+++ trunk/src/filetypes.c	2009-09-20 18:46:56 UTC (rev 4211)
@@ -391,6 +391,17 @@
 	ft->comment_close = NULL;
 	ft->group = GEANY_FILETYPE_GROUP_MISC;
 
+#define ABC
+	ft = filetypes[GEANY_FILETYPES_ABC];
+	ft->lang = 38;
+	ft->name = g_strdup("Abc");
+	filetype_make_title(ft, TITLE_SOURCE_FILE);
+	ft->extension = g_strdup("abc");
+	ft->pattern = utils_strv_new("*.abc", "*.abp", NULL);
+	ft->comment_open = NULL;
+	ft->comment_close = NULL;
+	ft->group = GEANY_FILETYPE_GROUP_MISC;
+
 #define SH
 	ft = filetypes[GEANY_FILETYPES_SH];
 	ft->lang = 16;

Modified: trunk/src/filetypes.h
===================================================================
--- trunk/src/filetypes.h	2009-09-17 18:08:21 UTC (rev 4210)
+++ trunk/src/filetypes.h	2009-09-20 18:46:56 UTC (rev 4211)
@@ -79,6 +79,7 @@
 	GEANY_FILETYPES_CMAKE,
 	GEANY_FILETYPES_MARKDOWN,
 	GEANY_FILETYPES_TXT2TAGS,
+	GEANY_FILETYPES_ABC,
 	/* ^ append items here */
 	GEANY_MAX_BUILT_IN_FILETYPES	/* Don't use this, use filetypes_array->len instead */
 }

Modified: trunk/src/symbols.c
===================================================================
--- trunk/src/symbols.c	2009-09-17 18:08:21 UTC (rev 4210)
+++ trunk/src/symbols.c	2009-09-20 18:46:56 UTC (rev 4211)
@@ -696,6 +696,7 @@
 		}
 		case GEANY_FILETYPES_REST:
 		case GEANY_FILETYPES_TXT2TAGS:
+		case GEANY_FILETYPES_ABC:
 		{
 			tag_list_add_groups(tag_store,
 				&(tv_iters.tag_namespace), _("Chapter"), NULL,

Modified: trunk/tagmanager/Makefile.am
===================================================================
--- trunk/tagmanager/Makefile.am	2009-09-17 18:08:21 UTC (rev 4210)
+++ trunk/tagmanager/Makefile.am	2009-09-20 18:46:56 UTC (rev 4211)
@@ -34,6 +34,7 @@
 	strlist.h\
 	args.c\
 	args.h\
+	abc.c\
 	basic.c\
 	c.c\
 	conf.c\

Added: trunk/tagmanager/abc.c
===================================================================
--- trunk/tagmanager/abc.c	                        (rev 0)
+++ trunk/tagmanager/abc.c	2009-09-20 18:46:56 UTC (rev 4211)
@@ -0,0 +1,127 @@
+/*
+*   Copyright (c) 2009, Eric Forgeot
+*
+*   Based on work by Jon Strait
+*
+*   This source code is released for free distribution under the terms of the
+*   GNU General Public License.
+*
+*   This module contains functions for generating tags for Abc files.
+*/
+
+/*
+*   INCLUDE FILES
+*/
+#include "general.h"	/* must always come first */
+
+#include <ctype.h>
+#include <string.h>
+
+#include "parse.h"
+#include "read.h"
+#include "vstring.h"
+
+/*
+*   DATA DEFINITIONS
+*/
+
+static kindOption AbcKinds[] = {
+	{ TRUE, 'm', "member", "sections" },
+	{ TRUE, 's', "struct",  "header1"}
+};
+
+/*
+*   FUNCTION DEFINITIONS
+*/
+
+/* checks if str is all the same character */
+/*static boolean issame(const char *str)
+{
+	char first = *str;
+
+	while (*(++str))
+	{
+		if (*str && *str != first)
+			return FALSE;
+	}
+	return TRUE;
+}*/
+
+
+static void makeAbcTag (const vString* const name, boolean name_before)
+{
+	tagEntryInfo e;
+	initTagEntry (&e, vStringValue(name));
+
+	if (name_before)
+		e.lineNumber--;	/* we want the line before the underline chars */
+	e.kindName = AbcKinds[0].name;
+	e.kind = AbcKinds[0].letter;
+
+	makeTagEntry(&e);
+}
+
+/*static void makeAbcTag2 (const vString* const name, boolean name_before)
+{
+	tagEntryInfo e;
+	initTagEntry (&e, vStringValue(name));
+
+	if (name_before)
+		e.lineNumber--;
+	e.kindName = "struct";
+	e.kind = 's';
+
+	makeTagEntry(&e);
+}*/
+
+static void findAbcTags (void)
+{
+	vString *name = vStringNew();
+	const unsigned char *line;
+
+	while ((line = fileReadLine()) != NULL)
+	{
+		/*int name_len = vStringLength(name);*/
+
+		/* underlines must be the same length or more */
+		/*if (name_len > 0 &&	(line[0] == '=' || line[0] == '-') && issame((const char*) line))
+		{
+			makeAbcTag(name, TRUE);
+		}*/
+/*		if (line[1] == '%') {
+			vStringClear(name);
+			vStringCatS(name, (const char *) line);
+			vStringTerminate(name);
+			makeAbcTag(name, FALSE);
+		}*/
+		if (line[0] == 'T') {
+			/*vStringClear(name);*/
+			vStringCatS(name, " / ");
+			vStringCatS(name, (const char *) line);
+			vStringTerminate(name);
+			makeAbcTag(name, FALSE);
+		}
+		else {
+			vStringClear (name);
+			if (! isspace(*line))
+				vStringCatS(name, (const char*) line);
+			vStringTerminate(name);
+		}
+	}
+	vStringDelete (name);
+}
+
+extern parserDefinition* AbcParser (void)
+{
+	static const char *const patterns [] = { "*.abc", NULL };
+	static const char *const extensions [] = { "abc", NULL };
+	parserDefinition* const def = parserNew ("Abc");
+
+	def->kinds = AbcKinds;
+	def->kindCount = KIND_COUNT (AbcKinds);
+	def->patterns = patterns;
+	def->extensions = extensions;
+	def->parser = findAbcTags;
+	return def;
+}
+


Property changes on: trunk/tagmanager/abc.c
___________________________________________________________________
Added: svn:mime-type
   + text/x-csrc
Added: svn:keywords
   + Author Date Id Revision
Added: svn:eol-style
   + native

Modified: trunk/tagmanager/makefile.win32
===================================================================
--- trunk/tagmanager/makefile.win32	2009-09-17 18:08:21 UTC (rev 4210)
+++ trunk/tagmanager/makefile.win32	2009-09-20 18:46:56 UTC (rev 4211)
@@ -39,7 +39,7 @@
 clean:
 	-$(RM) deps.mak *.o $(COMPLIB)
 
-$(COMPLIB): args.o c.o fortran.o make.o conf.o pascal.o perl.o php.o diff.o vhdl.o lua.o js.o \
+$(COMPLIB): abc.o args.o c.o fortran.o make.o conf.o pascal.o perl.o php.o diff.o vhdl.o lua.o js.o \
 actionscript.o nsis.o \
 haskell.o haxe.o html.o python.o lregex.o rest.o sh.o ctags.o entry.o get.o keyword.o nestlevel.o \
 options.o \

Modified: trunk/tagmanager/parsers.h
===================================================================
--- trunk/tagmanager/parsers.h	2009-09-17 18:08:21 UTC (rev 4210)
+++ trunk/tagmanager/parsers.h	2009-09-20 18:46:56 UTC (rev 4211)
@@ -52,7 +52,8 @@
     ActionScriptParser, \
     NsisParser, \
     MarkdownParser, \
-    Txt2tagsParser
+    Txt2tagsParser, \
+    AbcParser
 /*
 langType of each parser
  0	CParser
@@ -93,6 +94,7 @@
 35  NsisParser
 36  MarkdownParser
 37  Txt2tagsParser
+38  AbcParser
 */
 #endif	/* _PARSERS_H */
 

Modified: trunk/wscript
===================================================================
--- trunk/wscript	2009-09-17 18:08:21 UTC (rev 4210)
+++ trunk/wscript	2009-09-20 18:46:56 UTC (rev 4211)
@@ -61,7 +61,7 @@
 
 
 tagmanager_sources = [
-	'tagmanager/args.c', 'tagmanager/actionscript.c', 'tagmanager/asm.c',
+	'tagmanager/args.c', 'tagmanager/abc.c', 'tagmanager/actionscript.c', 'tagmanager/asm.c',
 	'tagmanager/basic.c', 'tagmanager/c.c',
 	'tagmanager/conf.c', 'tagmanager/css.c', 'tagmanager/ctags.c', 'tagmanager/diff.c',
 	'tagmanager/docbook.c', 'tagmanager/entry.c', 'tagmanager/fortran.c', 'tagmanager/get.c',


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