SF.net SVN: geany:[5262] trunk

ntrel at users.sourceforge.net ntrel at xxxxx
Thu Sep 30 13:50:33 UTC 2010


Revision: 5262
          http://geany.svn.sourceforge.net/geany/?rev=5262&view=rev
Author:   ntrel
Date:     2010-09-30 13:50:33 +0000 (Thu, 30 Sep 2010)

Log Message:
-----------
Add symbol_list_sort_mode per-filetype setting, set to sort by line
number by default for Markdown, reStructuredText and Txt2Tags.
Add utils_get_setting() macro for reading a key from a home or
system keyfile.
Move GeanyFiletypePrivate to filetypesprivate.h.

Modified Paths:
--------------
    trunk/ChangeLog
    trunk/data/filetypes.markdown
    trunk/data/filetypes.restructuredtext
    trunk/data/filetypes.txt2tags
    trunk/doc/geany.html
    trunk/doc/geany.txt
    trunk/src/document.c
    trunk/src/filetypes.c
    trunk/src/filetypes.h
    trunk/src/utils.h

Added Paths:
-----------
    trunk/src/filetypesprivate.h

Modified: trunk/ChangeLog
===================================================================
--- trunk/ChangeLog	2010-09-27 07:08:49 UTC (rev 5261)
+++ trunk/ChangeLog	2010-09-30 13:50:33 UTC (rev 5262)
@@ -1,3 +1,16 @@
+2010-09-30  Nick Treleaven  <nick(dot)treleaven(at)btinternet(dot)com>
+
+ * src/utils.h, src/filetypesprivate.h, src/filetypes.c,
+   src/filetypes.h, src/document.c, doc/geany.txt, doc/geany.html,
+   data/filetypes.txt2tags, data/filetypes.markdown,
+   data/filetypes.restructuredtext:
+   Add symbol_list_sort_mode per-filetype setting, set to sort by line
+   number by default for Markdown, reStructuredText and Txt2Tags.
+   Add utils_get_setting() macro for reading a key from a home or
+   system keyfile.
+   Move GeanyFiletypePrivate to filetypesprivate.h.
+
+
 2010-09-25  Enrico Tröger  <enrico(dot)troeger(at)uvena(dot)de>
 
  * src/editor.c:

Modified: trunk/data/filetypes.markdown
===================================================================
--- trunk/data/filetypes.markdown	2010-09-27 07:08:49 UTC (rev 5261)
+++ trunk/data/filetypes.markdown	2010-09-30 13:50:33 UTC (rev 5262)
@@ -23,4 +23,7 @@
 # default extension used when saving files
 extension=mdml
 
+# sort tags by appearance
+symbol_list_sort_mode=1
 
+

Modified: trunk/data/filetypes.restructuredtext
===================================================================
--- trunk/data/filetypes.restructuredtext	2010-09-27 07:08:49 UTC (rev 5261)
+++ trunk/data/filetypes.restructuredtext	2010-09-30 13:50:33 UTC (rev 5262)
@@ -10,7 +10,7 @@
 #wordchars=_abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789
 
 # if only single comment char is supported like # in this file, leave comment_close blank
-comment_open=.. 
+comment_open=..
 #comment_close=
 # this is an alternative way, so multiline comments are used
 #comment_open=/*
@@ -26,3 +26,6 @@
 
 # context action command (please see Geany's main documentation for details)
 context_action_cmd=
+
+# sort tags by appearance
+symbol_list_sort_mode=1

Modified: trunk/data/filetypes.txt2tags
===================================================================
--- trunk/data/filetypes.txt2tags	2010-09-27 07:08:49 UTC (rev 5261)
+++ trunk/data/filetypes.txt2tags	2010-09-30 13:50:33 UTC (rev 5262)
@@ -28,6 +28,9 @@
 # default extension used when saving files
 extension=txt2tags
 
+# sort tags by appearance
+symbol_list_sort_mode=1
+
 [keywords]
 primary=includeconf options toc
 

Modified: trunk/doc/geany.html
===================================================================
--- trunk/doc/geany.html	2010-09-27 07:08:49 UTC (rev 5261)
+++ trunk/doc/geany.html	2010-09-30 13:50:33 UTC (rev 5262)
@@ -4354,6 +4354,28 @@
 <dd>A filetype name to setup syntax highlighting from another filetype.
 This must not be recursive, i.e. it should be a filetype name that
 doesn't use the lexer_filetype key itself.</dd>
+<dt>symbol_list_sort_mode</dt>
+<dd><p class="first">What the default symbol list sort order should be.</p>
+<table border="1" class="last docutils">
+<colgroup>
+<col width="12%" />
+<col width="88%" />
+</colgroup>
+<thead valign="bottom">
+<tr><th class="head">Value</th>
+<th class="head">Meaning</th>
+</tr>
+</thead>
+<tbody valign="top">
+<tr><td>0</td>
+<td>Sort tags by name</td>
+</tr>
+<tr><td>1</td>
+<td>Sort tags by appearance (line number)</td>
+</tr>
+</tbody>
+</table>
+</dd>
 </dl>
 </div>
 <div class="section">
@@ -6185,7 +6207,7 @@
 <div class="footer">
 <hr class="footer" />
 <a class="reference" href="geany.txt">View document source</a>.
-Generated on: 2010-09-23 16:20 UTC.
+Generated on: 2010-09-23 18:04 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	2010-09-27 07:08:49 UTC (rev 5261)
+++ trunk/doc/geany.txt	2010-09-30 13:50:33 UTC (rev 5262)
@@ -3667,7 +3667,17 @@
     This must not be recursive, i.e. it should be a filetype name that
     doesn't use the lexer_filetype key itself.
 
+symbol_list_sort_mode
+    What the default symbol list sort order should be.
 
+    =====   =====================================
+    Value   Meaning
+    =====   =====================================
+    0       Sort tags by name
+    1       Sort tags by appearance (line number)
+    =====   =====================================
+
+
 [build_settings] Section
 ````````````````````````
 

Modified: trunk/src/document.c
===================================================================
--- trunk/src/document.c	2010-09-27 07:08:49 UTC (rev 5261)
+++ trunk/src/document.c	2010-09-30 13:50:33 UTC (rev 5262)
@@ -78,6 +78,7 @@
 #include "navqueue.h"
 #include "win32.h"
 #include "search.h"
+#include "filetypesprivate.h"
 
 
 GeanyFilePrefs file_prefs;
@@ -2472,6 +2473,7 @@
 		editor_set_indentation_guides(doc->editor);
 		build_menu_update(doc);
 		queue_colourise(doc);
+		doc->priv->symbol_list_sort_mode = type->priv->symbol_list_sort_mode;
 	}
 
 	document_update_tag_list(doc, TRUE);

Modified: trunk/src/filetypes.c
===================================================================
--- trunk/src/filetypes.c	2010-09-27 07:08:49 UTC (rev 5261)
+++ trunk/src/filetypes.c	2010-09-30 13:50:33 UTC (rev 5262)
@@ -34,6 +34,7 @@
 
 #include "geany.h"
 #include "filetypes.h"
+#include "filetypesprivate.h"
 #include "highlighting.h"
 #include "support.h"
 #include "templates.h"
@@ -43,29 +44,11 @@
 #include "utils.h"
 #include "sciwrappers.h"
 #include "ui_utils.h"
+#include "symbols.h"
 
 #include <stdlib.h>
 
-#ifdef HAVE_REGEX_H
-# include <regex.h>
-#else
-# include "gnuregex.h"
-#endif
 
-
-/* Private GeanyFiletype fields */
-typedef struct GeanyFiletypePrivate
-{
-	GtkWidget	*menu_item;			/* holds a pointer to the menu item for this filetype */
-	gboolean	keyfile_loaded;
-	regex_t		error_regex;
-	gboolean	error_regex_compiled;
-	gchar		*last_string; /* last one compiled */
-	gboolean	custom;
-}
-GeanyFiletypePrivate;
-
-
 GPtrArray *filetypes_array = NULL;	/* Dynamic array of filetype pointers */
 
 static GHashTable *filetypes_hash = NULL;	/* Hash of filetype pointers based on name keys */
@@ -1264,12 +1247,14 @@
 		g_free(result);
 	}
 
+	ft->priv->symbol_list_sort_mode = utils_get_setting(integer, configh, config, "settings",
+		"symbol_list_sort_mode", SYMBOLS_SORT_BY_NAME);
+
 	/* read build settings */
 	build_load_menu(config, GEANY_BCS_FT, (gpointer)ft);
 	build_load_menu(configh, GEANY_BCS_HOME_FT, (gpointer)ft);
 }
 
-
 /* simple wrapper function to print file errors in DEBUG mode */
 static void load_system_keyfile(GKeyFile *key_file, const gchar *file, GKeyFileFlags flags,
 		GeanyFiletype *ft)

Modified: trunk/src/filetypes.h
===================================================================
--- trunk/src/filetypes.h	2010-09-27 07:08:49 UTC (rev 5261)
+++ trunk/src/filetypes.h	2010-09-30 13:50:33 UTC (rev 5262)
@@ -129,8 +129,9 @@
 	struct GeanyFiletypePrivate	*priv;	/* must be last, append fields before this item */
 #ifdef GEANY_PRIVATE
 	/* Do not use following fields in plugins */
-	GeanyBuildCommand *filecmds;	/* these need to be visible since used in build.c so not in private part */
-	GeanyBuildCommand *ftdefcmds;	/* filetype dependent defaults for non_ft commands */
+	/* TODO: move these fields into filetypesprivate.h */
+	GeanyBuildCommand *filecmds;
+	GeanyBuildCommand *ftdefcmds;
 	GeanyBuildCommand *execcmds;
 	GeanyBuildCommand *homefilecmds;
 	GeanyBuildCommand *homeexeccmds;

Added: trunk/src/filetypesprivate.h
===================================================================
--- trunk/src/filetypesprivate.h	                        (rev 0)
+++ trunk/src/filetypesprivate.h	2010-09-30 13:50:33 UTC (rev 5262)
@@ -0,0 +1,49 @@
+/*
+ *      filetypesprivate.h - this file is part of Geany, a fast and lightweight IDE
+ *
+ *      Copyright 2008-2010 Enrico Tröger <enrico(dot)troeger(at)uvena(dot)de>
+ *      Copyright 2008-2010 Nick Treleaven <nick(dot)treleaven(at)btinternet(dot)com>
+ *
+ *      This program is free software; you can redistribute it and/or modify
+ *      it under the terms of the GNU General Public License as published by
+ *      the Free Software Foundation; either version 2 of the License, or
+ *      (at your option) any later version.
+ *
+ *      This program is distributed in the hope that it will be useful,
+ *      but WITHOUT ANY WARRANTY; without even the implied warranty of
+ *      MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+ *      GNU General Public License for more details.
+ *
+ *      You should have received a copy of the GNU General Public License
+ *      along with this program; if not, write to the Free Software
+ *      Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston,
+ *      MA 02110-1301, USA.
+ *
+ *  $Id$
+ */
+
+
+#ifndef GEANY_FILETYPES_PRIVATE_H
+#define GEANY_FILETYPES_PRIVATE_H
+
+#ifdef HAVE_REGEX_H
+# include <regex.h>
+#else
+# include "gnuregex.h"
+#endif
+
+
+/* Private GeanyFiletype fields */
+typedef struct GeanyFiletypePrivate
+{
+	GtkWidget	*menu_item;			/* holds a pointer to the menu item for this filetype */
+	gboolean	keyfile_loaded;
+	regex_t		error_regex;
+	gboolean	error_regex_compiled;
+	gchar		*last_string; /* last one compiled */
+	gboolean	custom;
+	gint		symbol_list_sort_mode;
+}
+GeanyFiletypePrivate;
+
+#endif


Property changes on: trunk/src/filetypesprivate.h
___________________________________________________________________
Added: svn:keywords
   + Author Date Id Revision
Added: svn:eol-style
   + native

Modified: trunk/src/utils.h
===================================================================
--- trunk/src/utils.h	2010-09-27 07:08:49 UTC (rev 5261)
+++ trunk/src/utils.h	2010-09-30 13:50:33 UTC (rev 5262)
@@ -57,6 +57,14 @@
 #define utils_strdupa(str) \
 	strcpy(g_alloca(strlen(str) + 1), str)
 
+/* Get a keyfile setting, using the home keyfile if the key exists,
+ * otherwise system keyfile. */
+#define utils_get_setting(type, home, sys, group, key, default_val)\
+	(g_key_file_has_key(home, group, key, NULL)) ?\
+		utils_get_setting_##type(home, group, key, default_val) :\
+		utils_get_setting_##type(sys, group, key, default_val)
+
+
 /** Iterates all the items in @a array using pointers.
  * @param item pointer to an item in @a array.
  * @param array C array to traverse.


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