SF.net SVN: geany:[4163] trunk

eht16 at users.sourceforge.net eht16 at xxxxx
Sun Sep 6 20:57:42 UTC 2009


Revision: 4163
          http://geany.svn.sourceforge.net/geany/?rev=4163&view=rev
Author:   eht16
Date:     2009-09-06 20:57:42 +0000 (Sun, 06 Sep 2009)

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

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

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

Modified: trunk/ChangeLog
===================================================================
--- trunk/ChangeLog	2009-09-06 16:51:11 UTC (rev 4162)
+++ trunk/ChangeLog	2009-09-06 20:57:42 UTC (rev 4163)
@@ -25,6 +25,12 @@
    replace_target() to the plugin API
    (patch by Eugene Arshinov, thanks).
    Add new plugin signal: "document-filetype-set" (closes #2852286).
+ * data/filetype_extensions.conf, data/filetypes.txt2tags, src/about.c,
+   src/filetypes.c, src/filetypes.h, src/plugindata.h, src/symbols.c,
+   tagmanager/Makefile.am, tagmanager/makefile.win32,
+   tagmanager/parsers.h, tagmanager/txt2tags.c, tagmanager/txt2tags.c,
+   wscript, THANKS:
+   Add new filetype: Txt2Tags (patch by Eric Forgeot, thanks).
 
 
 2009-09-04  Nick Treleaven  <nick(dot)treleaven(at)btinternet(dot)com>

Modified: trunk/THANKS
===================================================================
--- trunk/THANKS	2009-09-06 16:51:11 UTC (rev 4162)
+++ trunk/THANKS	2009-09-06 20:57:42 UTC (rev 4163)
@@ -67,6 +67,7 @@
 Jesse Mayes <plasmasheep(at)gmail(dot)com> - Tango'ish Save All icon
 Eugene Arshinov <earshinov(at)gmail(dot)com> - Reload color schemes, split lines KB patches, and more
 Jon Strait <jstrait(at)moonloop(dot)net> - Markdown filetype patch
+Forgeot Eric <eforgeot(at)yahoo(dot)fr> - Txt2Tags filetype patch
 
 Translators:
 ------------

Modified: trunk/data/filetype_extensions.conf
===================================================================
--- trunk/data/filetype_extensions.conf	2009-09-06 16:51:11 UTC (rev 4162)
+++ trunk/data/filetype_extensions.conf	2009-09-06 20:57:42 UTC (rev 4163)
@@ -43,6 +43,7 @@
 Po=*.po;*.pot;
 LaTeX=*.tex;*.sty;*.idx;*.ltx;
 reStructuredText=*.rest;*.reST;*.rst;
+txt2tags=*.t2t;
 SQL=*.sql;
 YAML=*.yaml;*.yml;
 None=*;

Added: trunk/data/filetypes.txt2tags
===================================================================
--- trunk/data/filetypes.txt2tags	                        (rev 0)
+++ trunk/data/filetypes.txt2tags	2009-09-06 20:57:42 UTC (rev 4163)
@@ -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=txt2tags
+
+


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

Modified: trunk/src/about.c
===================================================================
--- trunk/src/about.c	2009-09-06 16:51:11 UTC (rev 4162)
+++ trunk/src/about.c	2009-09-06 20:57:42 UTC (rev 4163)
@@ -82,7 +82,7 @@
 static const gchar *contributors =
 "Alexander Rodin, Andrew Rowland, Anh Phạm, blackdog, Bo Lorentsen, Bob Doan, Bronisław Białek, Catalin Marinas, "
 "Chris Macksey, Christoph Berg, Colomban Wendling, Conrad Steenberg, Daniel Richard G., Dave Moore, Dirk Weber, "
-"Elias Pschernig, Eugene Arshinov, Felipe Pena, François Cami, "
+"Elias Pschernig, Eric Forgeot, Eugene Arshinov, Felipe Pena, François Cami, "
 "Giuseppe Torelli, Guillaume de Rorthais, Guillaume Hoffmann, Herbert Voss, Jason Oster, Jean-François Wauthy, Jeff Pohlmeyer, "
 "Jesse Mayes, John Gabriele, Jon Strait, Josef Whiter, Kevin Ellwood, Kristoffer A. Tjernås, Marko Peric, Matti Mårds, Moritz Barsnick, "
 "Peter Strand, Philipp Gildein, Pierre Joye, Rob van der Linde, Robert McGinley, Roland Baudin, S Jagannathan, Saleem Abdulrasool, "

Modified: trunk/src/filetypes.c
===================================================================
--- trunk/src/filetypes.c	2009-09-06 16:51:11 UTC (rev 4162)
+++ trunk/src/filetypes.c	2009-09-06 20:57:42 UTC (rev 4163)
@@ -379,6 +379,17 @@
 	ft->comment_open = NULL;
 	ft->comment_close = NULL;
 	ft->group = GEANY_FILETYPE_GROUP_MISC;
+	
+#define TXT2TAGS
+	ft = filetypes[GEANY_FILETYPES_TXT2TAGS];
+	ft->lang = 37;
+	ft->name = g_strdup("Txt2tags");
+	filetype_make_title(ft, TITLE_SOURCE_FILE);
+	ft->extension = g_strdup("t2t");
+	ft->pattern = utils_strv_new("*.t2t", "*.txt2tags", NULL);
+	ft->comment_open = NULL;
+	ft->comment_close = NULL;
+	ft->group = GEANY_FILETYPE_GROUP_MISC;
 
 #define SH
 	ft = filetypes[GEANY_FILETYPES_SH];

Modified: trunk/src/filetypes.h
===================================================================
--- trunk/src/filetypes.h	2009-09-06 16:51:11 UTC (rev 4162)
+++ trunk/src/filetypes.h	2009-09-06 20:57:42 UTC (rev 4163)
@@ -78,6 +78,7 @@
 	GEANY_FILETYPES_ADA,
 	GEANY_FILETYPES_CMAKE,
 	GEANY_FILETYPES_MARKDOWN,
+	GEANY_FILETYPES_TXT2TAGS,
 	/* ^ append items here */
 	GEANY_MAX_BUILT_IN_FILETYPES	/* Don't use this, use filetypes_array->len instead */
 }

Modified: trunk/src/plugindata.h
===================================================================
--- trunk/src/plugindata.h	2009-09-06 16:51:11 UTC (rev 4162)
+++ trunk/src/plugindata.h	2009-09-06 20:57:42 UTC (rev 4163)
@@ -50,7 +50,7 @@
 enum {
 	/** The Application Programming Interface (API) version, incremented
 	 * whenever any plugin data types are modified or appended to. */
-	GEANY_API_VERSION = 154,
+	GEANY_API_VERSION = 155,
 
 	/** The Application Binary Interface (ABI) version, incremented whenever
 	 * existing fields in the plugin data types have to be changed or reordered. */

Modified: trunk/src/symbols.c
===================================================================
--- trunk/src/symbols.c	2009-09-06 16:51:11 UTC (rev 4162)
+++ trunk/src/symbols.c	2009-09-06 20:57:42 UTC (rev 4163)
@@ -695,6 +695,7 @@
 			break;
 		}
 		case GEANY_FILETYPES_REST:
+		case GEANY_FILETYPES_TXT2TAGS:
 		{
 			tag_list_add_groups(tag_store,
 				&(tv_iters.tag_namespace), _("Chapter"), NULL,

Modified: trunk/tagmanager/Makefile.am
===================================================================
--- trunk/tagmanager/Makefile.am	2009-09-06 16:51:11 UTC (rev 4162)
+++ trunk/tagmanager/Makefile.am	2009-09-06 20:57:42 UTC (rev 4163)
@@ -61,6 +61,7 @@
 	python.c\
 	tcl.c\
 	sh.c\
+	txt2tags.c\
 	vhdl.c\
 	actionscript.c\
 	nsis.c\

Modified: trunk/tagmanager/makefile.win32
===================================================================
--- trunk/tagmanager/makefile.win32	2009-09-06 16:51:11 UTC (rev 4162)
+++ trunk/tagmanager/makefile.win32	2009-09-06 20:57:42 UTC (rev 4163)
@@ -43,7 +43,7 @@
 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 \
-parse.o basic.o read.o sort.o strlist.o latex.o markdown.o matlab.o docbook.o tcl.o ruby.o asm.o sql.o css.o \
+parse.o basic.o read.o sort.o strlist.o latex.o markdown.o matlab.o docbook.o tcl.o ruby.o asm.o sql.o text2tags.o css.o \
 vstring.o regex.o tm_workspace.o tm_work_object.o tm_source_file.o tm_project.o tm_tag.o \
 tm_symbol.o tm_file_entry.o tm_tagmanager.o
 	$(AR) rc $@ $^

Modified: trunk/tagmanager/parsers.h
===================================================================
--- trunk/tagmanager/parsers.h	2009-09-06 16:51:11 UTC (rev 4162)
+++ trunk/tagmanager/parsers.h	2009-09-06 20:57:42 UTC (rev 4163)
@@ -51,7 +51,8 @@
     ValaParser, \
     ActionScriptParser, \
     NsisParser, \
-    MarkdownParser
+    MarkdownParser, \
+    Txt2tagsParser
 /*
 langType of each parser
  0	CParser
@@ -91,6 +92,7 @@
 34  ActionScriptParser
 35  NsisParser
 36  MarkdownParser
+37  Txt2tagsParser
 */
 #endif	/* _PARSERS_H */
 

Added: trunk/tagmanager/txt2tags.c
===================================================================
--- trunk/tagmanager/txt2tags.c	                        (rev 0)
+++ trunk/tagmanager/txt2tags.c	2009-09-06 20:57:42 UTC (rev 4163)
@@ -0,0 +1,118 @@
+/*
+*   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 Txt2tags 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 Txt2tagsKinds[] = {
+	{ TRUE, 'v', "members", "sections" },
+	{ TRUE, 's', "struct",  "header1"}
+};
+
+/*
+*   FUNCTION DEFINITIONS
+*/
+
+static void makeTxt2tagsTag (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 = "variable";
+	e.kind = 'v';
+
+	makeTagEntry(&e);
+}
+
+static void makeTxt2tagsTag2 (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 findTxt2tagsTags (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))
+		{
+			makeTxt2tagsTag(name, TRUE);
+		}*/
+		if (line[0] == '=') {
+ 			/*vStringClear(name);*/
+			vStringCatS(name, (const char *) line);
+			vStringTerminate(name);
+			makeTxt2tagsTag(name, FALSE);
+		}
+		/*else if (line[0] == "=") {
+			vStringClear(name);
+			vStringCatS(name, (const char *) line);
+			vStringTerminate(name);
+			makeTxt2tagsTag(name, FALSE);
+		}*/
+		else if (line[0] == '°') {
+			/*vStringClear(name);*/
+			vStringCatS(name, (const char *) line);
+			vStringTerminate(name);
+			makeTxt2tagsTag2(name, FALSE);
+		}
+		else {
+			vStringClear (name);
+			if (! isspace(*line))
+				vStringCatS(name, (const char*) line);
+			vStringTerminate(name);
+		}
+	}
+	vStringDelete (name);
+}
+
+extern parserDefinition* Txt2tagsParser (void)
+{
+	static const char *const patterns [] = { "*.t2t", NULL };
+	static const char *const extensions [] = { "t2t", NULL };
+	parserDefinition* const def = parserNew ("Txt2tags");
+
+	def->kinds = Txt2tagsKinds;
+	def->kindCount = KIND_COUNT (Txt2tagsKinds);
+	def->patterns = patterns;
+	def->extensions = extensions;
+	def->parser = findTxt2tagsTags;
+	return def;
+}
+


Property changes on: trunk/tagmanager/txt2tags.c
___________________________________________________________________
Added: svn:keywords
   + Author Date Id Revision
Added: svn:eol-style
   + native

Modified: trunk/wscript
===================================================================
--- trunk/wscript	2009-09-06 16:51:11 UTC (rev 4162)
+++ trunk/wscript	2009-09-06 20:57:42 UTC (rev 4163)
@@ -72,7 +72,8 @@
 	'tagmanager/parse.c', 'tagmanager/pascal.c',
 	'tagmanager/perl.c', 'tagmanager/php.c', 'tagmanager/python.c', 'tagmanager/read.c',
 	'tagmanager/rest.c', 'tagmanager/ruby.c', 'tagmanager/sh.c', 'tagmanager/sort.c',
-	'tagmanager/sql.c', 'tagmanager/strlist.c', 'tagmanager/tcl.c', 'tagmanager/tm_file_entry.c',
+	'tagmanager/sql.c', 'tagmanager/strlist.c', 'tagmanager/txt2tags.c', 'tagmanager/tcl.c',
+	'tagmanager/tm_file_entry.c',
 	'tagmanager/tm_project.c', 'tagmanager/tm_source_file.c', 'tagmanager/tm_symbol.c',
 	'tagmanager/tm_tag.c', 'tagmanager/tm_tagmanager.c', 'tagmanager/tm_work_object.c',
 	'tagmanager/tm_workspace.c', 'tagmanager/vhdl.c', 'tagmanager/vstring.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