SF.net SVN: geany:[4339] trunk
ntrel at users.sourceforge.net
ntrel at xxxxx
Mon Oct 19 14:24:44 UTC 2009
Revision: 4339
http://geany.svn.sourceforge.net/geany/?rev=4339&view=rev
Author: ntrel
Date: 2009-10-19 14:24:40 +0000 (Mon, 19 Oct 2009)
Log Message:
-----------
Add filetype "tag_parser" key so custom filetypes can use an existing
tag parser.
Add tm_source_file_get_named_lang().
Modified Paths:
--------------
trunk/ChangeLog
trunk/doc/geany.html
trunk/doc/geany.txt
trunk/src/document.c
trunk/src/filetypes.c
trunk/src/filetypes.h
trunk/tagmanager/include/tm_source_file.h
trunk/tagmanager/tm_source_file.c
Modified: trunk/ChangeLog
===================================================================
--- trunk/ChangeLog 2009-10-19 12:15:42 UTC (rev 4338)
+++ trunk/ChangeLog 2009-10-19 14:24:40 UTC (rev 4339)
@@ -2,6 +2,12 @@
* doc/geany.txt, doc/geany.html:
Add 'Custom filetypes' section.
+ * src/filetypes.c, src/filetypes.h, src/document.c,
+ doc/geany.txt, doc/geany.html, tagmanager/tm_source_file.c,
+ tagmanager/include/tm_source_file.h:
+ Add filetype "tag_parser" key so custom filetypes can use an existing
+ tag parser.
+ Add tm_source_file_get_named_lang().
2009-10-19 Frank Lanitz <frank(at)frank(dot)uvena(dot)de>
Modified: trunk/doc/geany.html
===================================================================
--- trunk/doc/geany.html 2009-10-19 12:15:42 UTC (rev 4338)
+++ trunk/doc/geany.html 2009-10-19 14:24:40 UTC (rev 4339)
@@ -6,7 +6,7 @@
<meta name="generator" content="Docutils 0.4: http://docutils.sourceforge.net/" />
<title>Geany</title>
<meta name="authors" content="Enrico Tröger Nick Treleaven Frank Lanitz" />
-<meta name="date" content="2009-10-15" />
+<meta name="date" content="2009-10-19" />
<style type="text/css">
/*
@@ -139,7 +139,7 @@
<br />Nick Treleaven
<br />Frank Lanitz</td></tr>
<tr><th class="docinfo-name">Date:</th>
-<td>2009-10-15</td></tr>
+<td>2009-10-19</td></tr>
<tr><th class="docinfo-name">Version:</th>
<td>0.19</td></tr>
</tbody>
@@ -3972,6 +3972,7 @@
<tt class="docutils literal"><span class="pre">filetype_extensions.conf</span></tt>).</li>
<li>Filetype settings in the [settings] section (see <a class="reference" href="#format">Format</a>).</li>
<li>Build commands.</li>
+<li>Tag parsing (<tt class="docutils literal"><span class="pre">tag_parser</span></tt> key).</li>
</ul>
</div>
<div class="section">
@@ -4116,6 +4117,8 @@
context_action_cmd=firefox "<a class="reference" href="http://www.php.net/%s">http://www.php.net/%s</a>"</p>
<p class="last"><em>Example:</em> <tt class="docutils literal"><span class="pre">context_action_cmd=devhelp</span> <span class="pre">-s</span> <span class="pre">"%s"</span></tt></p>
</dd>
+<dt>tag_parser</dt>
+<dd>The TagManager language name, e.g. "C".</dd>
</dl>
</div>
<div class="section">
@@ -5750,7 +5753,7 @@
<div class="footer">
<hr class="footer" />
<a class="reference" href="geany.txt">View document source</a>.
-Generated on: 2009-10-19 12:10 UTC.
+Generated on: 2009-10-19 14:14 UTC.
Generated by <a class="reference" href="http://docutils.sourceforge.net/">Docutils</a> from <a class="reference" href="http://docutils.sourceforge.net/rst.html">reStructuredText</a> source.
</div>
Modified: trunk/doc/geany.txt
===================================================================
--- trunk/doc/geany.txt 2009-10-19 12:15:42 UTC (rev 4338)
+++ trunk/doc/geany.txt 2009-10-19 14:24:40 UTC (rev 4339)
@@ -3335,6 +3335,7 @@
``filetype_extensions.conf``).
* Filetype settings in the [settings] section (see `Format`_).
* Build commands.
+* Tag parsing (``tag_parser`` key).
System files
^^^^^^^^^^^^
@@ -3502,7 +3503,10 @@
*Example:* ``context_action_cmd=devhelp -s "%s"``
+tag_parser
+ The TagManager language name, e.g. "C".
+
[build_settings] Section
````````````````````````
Modified: trunk/src/document.c
===================================================================
--- trunk/src/document.c 2009-10-19 12:15:42 UTC (rev 4338)
+++ trunk/src/document.c 2009-10-19 14:24:40 UTC (rev 4339)
@@ -2321,8 +2321,11 @@
if (doc->tm_file == NULL)
{
gchar *locale_filename = utils_get_locale_from_utf8(doc->file_name);
+ const gchar *name;
- doc->tm_file = tm_source_file_new(locale_filename, FALSE, doc->file_type->name);
+ /* lookup the name rather than using filetype name to support custom filetypes */
+ name = tm_source_file_get_lang_name(doc->file_type->lang);
+ doc->tm_file = tm_source_file_new(locale_filename, FALSE, name);
g_free(locale_filename);
if (doc->tm_file)
Modified: trunk/src/filetypes.c
===================================================================
--- trunk/src/filetypes.c 2009-10-19 12:15:42 UTC (rev 4338)
+++ trunk/src/filetypes.c 2009-10-19 14:24:40 UTC (rev 4339)
@@ -1235,10 +1235,18 @@
filetypes[ft_id]->context_action_cmd = result;
}
+ result = utils_get_setting_string(configh, "settings", "tag_parser", NULL);
+ if (!result)
+ result = utils_get_setting_string(config, "settings", "tag_parser", NULL);
+ if (result)
+ {
+ ft->lang = tm_source_file_get_named_lang(result);
+ g_free(result);
+ }
+
/* read build settings */
build_load_menu(config, GEANY_BCS_FT, (gpointer)ft);
build_load_menu(configh, GEANY_BCS_HOME_FT, (gpointer)ft);
-
}
Modified: trunk/src/filetypes.h
===================================================================
--- trunk/src/filetypes.h 2009-10-19 12:15:42 UTC (rev 4338)
+++ trunk/src/filetypes.h 2009-10-19 14:24:40 UTC (rev 4339)
@@ -109,7 +109,7 @@
/** Represents the langType of tagmanager (see the table
* in tagmanager/parsers.h), -1 represents all, -2 none. */
langType lang;
- gchar *name; /**< Used as name for tagmanager. E.g. "C". */
+ gchar *name; /**< Short name, e.g. "C". */
gchar *title; /**< Shown in the file open dialog. E.g. "C source file". */
gchar *extension; /**< Default file extension for new files, or @c NULL. */
gchar **pattern; /**< Array of filename-matching wildcard strings. */
Modified: trunk/tagmanager/include/tm_source_file.h
===================================================================
--- trunk/tagmanager/include/tm_source_file.h 2009-10-19 12:15:42 UTC (rev 4338)
+++ trunk/tagmanager/include/tm_source_file.h 2009-10-19 14:24:40 UTC (rev 4339)
@@ -144,6 +144,12 @@
*/
const gchar *tm_source_file_get_lang_name(gint lang);
+/* Gets the language index for \a name.
+ \param name The language name.
+ \return The language index, or -2.
+*/
+gint tm_source_file_get_named_lang(const gchar *name);
+
#ifdef __cplusplus
}
#endif
Modified: trunk/tagmanager/tm_source_file.c
===================================================================
--- trunk/tagmanager/tm_source_file.c 2009-10-19 12:15:42 UTC (rev 4338)
+++ trunk/tagmanager/tm_source_file.c 2009-10-19 14:24:40 UTC (rev 4339)
@@ -323,3 +323,15 @@
return getLanguageName(lang);
}
+gint tm_source_file_get_named_lang(const gchar *name)
+{
+ if (NULL == LanguageTable)
+ {
+ initializeParsing();
+ installLanguageMapDefaults();
+ if (NULL == TagEntryFunction)
+ TagEntryFunction = tm_source_file_tags;
+ }
+ return getNamedLanguage(name);
+}
+
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