Use tag_list_add_groups() in init_tag_list().

git-svn-id: https://geany.svn.sourceforge.net/svnroot/geany/trunk@1565 ea778897-0a13-0410-b9d1-a72fbfd435f5
This commit is contained in:
Nick Treleaven 2007-05-23 17:20:47 +00:00
parent 7f5da42a22
commit 9d09231c40
2 changed files with 88 additions and 150 deletions

View File

@ -20,6 +20,8 @@
tagmanager/Makefile.am: tagmanager/Makefile.am:
Add Haskell tags support from CTags patch on sf.net written by Peter Add Haskell tags support from CTags patch on sf.net written by Peter
Strand (thanks). Strand (thanks).
* src/symbols.c:
Use tag_list_add_groups() in init_tag_list().
2007-05-22 Nick Treleaven <nick.treleaven@btinternet.com> 2007-05-22 Nick Treleaven <nick.treleaven@btinternet.com>

View File

@ -416,20 +416,19 @@ static void init_tag_iters()
/* Adds symbol list groups in (iter*, title) pairs. /* Adds symbol list groups in (iter*, title) pairs.
* The list must be ended with NULL. */ * The list must be ended with NULL. */
static void G_GNUC_NULL_TERMINATED static void G_GNUC_NULL_TERMINATED
tag_list_add_groups(gint idx, ...) tag_list_add_groups(GtkTreeStore *tree_store, ...)
{ {
va_list args; va_list args;
GtkTreeIter *iter; GtkTreeIter *iter;
va_start(args, idx); va_start(args, tree_store);
for (; iter = va_arg(args, GtkTreeIter*), iter != NULL;) for (; iter = va_arg(args, GtkTreeIter*), iter != NULL;)
{ {
gchar *title = va_arg(args, gchar*); gchar *title = va_arg(args, gchar*);
if (title == NULL) g_assert(title != NULL);
break; gtk_tree_store_append(tree_store, iter, NULL);
gtk_tree_store_append(doc_list[idx].tag_store, iter, NULL); gtk_tree_store_set(tree_store, iter, 0, title, -1);
gtk_tree_store_set(doc_list[idx].tag_store, iter, 0, title, -1);
} }
va_end(args); va_end(args);
} }
@ -438,6 +437,7 @@ tag_list_add_groups(gint idx, ...)
static void init_tag_list(gint idx) static void init_tag_list(gint idx)
{ {
filetype_id ft_id = doc_list[idx].file_type->id; filetype_id ft_id = doc_list[idx].file_type->id;
GtkTreeStore *tag_store = doc_list[idx].tag_store;
init_tag_iters(); init_tag_iters();
@ -445,32 +445,25 @@ static void init_tag_list(gint idx)
{ {
case GEANY_FILETYPES_DIFF: case GEANY_FILETYPES_DIFF:
{ {
gtk_tree_store_append(doc_list[idx].tag_store, &(tv_iters.tag_function), NULL); tag_list_add_groups(tag_store,
gtk_tree_store_set(doc_list[idx].tag_store, &(tv_iters.tag_function), 0, _("Files"), -1); &(tv_iters.tag_function), _("Files"), NULL);
break; break;
} }
case GEANY_FILETYPES_DOCBOOK: case GEANY_FILETYPES_DOCBOOK:
{ {
gtk_tree_store_append(doc_list[idx].tag_store, &(tv_iters.tag_function), NULL); tag_list_add_groups(tag_store,
gtk_tree_store_set(doc_list[idx].tag_store, &(tv_iters.tag_function), 0, _("Chapter"), -1); &(tv_iters.tag_function), _("Chapter"),
gtk_tree_store_append(doc_list[idx].tag_store, &(tv_iters.tag_class), NULL); &(tv_iters.tag_class), _("Section"),
gtk_tree_store_set(doc_list[idx].tag_store, &(tv_iters.tag_class), 0, _("Section"), -1); &(tv_iters.tag_member), _("Sect1"),
gtk_tree_store_append(doc_list[idx].tag_store, &(tv_iters.tag_member), NULL); &(tv_iters.tag_macro), _("Sect2"),
gtk_tree_store_set(doc_list[idx].tag_store, &(tv_iters.tag_member), 0, _("Sect1"), -1); &(tv_iters.tag_variable), _("Sect3"),
gtk_tree_store_append(doc_list[idx].tag_store, &(tv_iters.tag_macro), NULL); &(tv_iters.tag_struct), _("Appendix"),
gtk_tree_store_set(doc_list[idx].tag_store, &(tv_iters.tag_macro), 0, _("Sect2"), -1); &(tv_iters.tag_other), _("Other"), NULL);
gtk_tree_store_append(doc_list[idx].tag_store, &(tv_iters.tag_variable), NULL); // &(tv_iters.tag_namespace), _("Other"), NULL);
gtk_tree_store_set(doc_list[idx].tag_store, &(tv_iters.tag_variable), 0, _("Sect3"), -1);
gtk_tree_store_append(doc_list[idx].tag_store, &(tv_iters.tag_struct), NULL);
gtk_tree_store_set(doc_list[idx].tag_store, &(tv_iters.tag_struct), 0, _("Appendix"), -1);
gtk_tree_store_append(doc_list[idx].tag_store, &(tv_iters.tag_other), NULL);
gtk_tree_store_set(doc_list[idx].tag_store, &(tv_iters.tag_other), 0, _("Other"), -1);
//gtk_tree_store_append(doc_list[idx].tag_store, &(tv_iters.tag_namespace), NULL);
//gtk_tree_store_set(doc_list[idx].tag_store, &(tv_iters.tag_namespace), 0, _("Other"), -1);
break; break;
} }
case GEANY_FILETYPES_HASKELL: case GEANY_FILETYPES_HASKELL:
tag_list_add_groups(idx, tag_list_add_groups(tag_store,
&tv_iters.tag_namespace, _("Module"), &tv_iters.tag_namespace, _("Module"),
&tv_iters.tag_struct, _("Types"), &tv_iters.tag_struct, _("Types"),
&tv_iters.tag_macro, _("Type constructors"), &tv_iters.tag_macro, _("Type constructors"),
@ -479,162 +472,105 @@ static void init_tag_list(gint idx)
break; break;
case GEANY_FILETYPES_LATEX: case GEANY_FILETYPES_LATEX:
{ {
gtk_tree_store_append(doc_list[idx].tag_store, &(tv_iters.tag_function), NULL); tag_list_add_groups(tag_store,
gtk_tree_store_set(doc_list[idx].tag_store, &(tv_iters.tag_function), 0, _("Command"), -1); &(tv_iters.tag_function), _("Command"),
gtk_tree_store_append(doc_list[idx].tag_store, &(tv_iters.tag_class), NULL); &(tv_iters.tag_class), _("Environment"),
gtk_tree_store_set(doc_list[idx].tag_store, &(tv_iters.tag_class), 0, _("Environment"), -1); &(tv_iters.tag_member), _("Section"),
gtk_tree_store_append(doc_list[idx].tag_store, &(tv_iters.tag_member), NULL); &(tv_iters.tag_macro), _("Subsection"),
gtk_tree_store_set(doc_list[idx].tag_store, &(tv_iters.tag_member), 0, _("Section"), -1); &(tv_iters.tag_variable), _("Subsubsection"),
gtk_tree_store_append(doc_list[idx].tag_store, &(tv_iters.tag_macro), NULL); &(tv_iters.tag_struct), _("Label"),
gtk_tree_store_set(doc_list[idx].tag_store, &(tv_iters.tag_macro), 0, _("Subsection"), -1); &(tv_iters.tag_namespace), _("Chapter"),
gtk_tree_store_append(doc_list[idx].tag_store, &(tv_iters.tag_variable), NULL); &(tv_iters.tag_other), _("Other"), NULL);
gtk_tree_store_set(doc_list[idx].tag_store, &(tv_iters.tag_variable), 0, _("Subsubsection"), -1);
gtk_tree_store_append(doc_list[idx].tag_store, &(tv_iters.tag_struct), NULL);
gtk_tree_store_set(doc_list[idx].tag_store, &(tv_iters.tag_struct), 0, _("Label"), -1);
gtk_tree_store_append(doc_list[idx].tag_store, &(tv_iters.tag_namespace), NULL);
gtk_tree_store_set(doc_list[idx].tag_store, &(tv_iters.tag_namespace), 0, _("Chapter"), -1);
gtk_tree_store_append(doc_list[idx].tag_store, &(tv_iters.tag_other), NULL);
gtk_tree_store_set(doc_list[idx].tag_store, &(tv_iters.tag_other), 0, _("Other"), -1);
break; break;
} }
case GEANY_FILETYPES_PERL: case GEANY_FILETYPES_PERL:
{ {
gtk_tree_store_append(doc_list[idx].tag_store, &(tv_iters.tag_class), NULL); tag_list_add_groups(tag_store,
gtk_tree_store_set(doc_list[idx].tag_store, &(tv_iters.tag_class), 0, _("Package"), -1); &(tv_iters.tag_class), _("Package"),
gtk_tree_store_append(doc_list[idx].tag_store, &(tv_iters.tag_function), NULL); &(tv_iters.tag_function), _("Functions"),
gtk_tree_store_set(doc_list[idx].tag_store, &(tv_iters.tag_function), 0, _("Functions"), -1); &(tv_iters.tag_member), _("My"),
gtk_tree_store_append(doc_list[idx].tag_store, &(tv_iters.tag_member), NULL); &(tv_iters.tag_macro), _("Local"),
gtk_tree_store_set(doc_list[idx].tag_store, &(tv_iters.tag_member), 0, _("My"), -1); &(tv_iters.tag_variable), _("Our"), NULL);
gtk_tree_store_append(doc_list[idx].tag_store, &(tv_iters.tag_macro), NULL); //&(tv_iters.tag_struct), _("Label"),
gtk_tree_store_set(doc_list[idx].tag_store, &(tv_iters.tag_macro), 0, _("Local"), -1); //&(tv_iters.tag_namespace), _("Begin"),
gtk_tree_store_append(doc_list[idx].tag_store, &(tv_iters.tag_variable), NULL); //&(tv_iters.tag_other), _("Other"), NULL);
gtk_tree_store_set(doc_list[idx].tag_store, &(tv_iters.tag_variable), 0, _("Our"), -1);
/* gtk_tree_store_append(doc_list[idx].tag_store, &(tv_iters.tag_struct), NULL);
gtk_tree_store_set(doc_list[idx].tag_store, &(tv_iters.tag_struct), 0, _("Label"), -1);
gtk_tree_store_append(doc_list[idx].tag_store, &(tv_iters.tag_namespace), NULL);
gtk_tree_store_set(doc_list[idx].tag_store, &(tv_iters.tag_namespace), 0, _("Begin"), -1);
gtk_tree_store_append(doc_list[idx].tag_store, &(tv_iters.tag_other), NULL);
gtk_tree_store_set(doc_list[idx].tag_store, &(tv_iters.tag_other), 0, _("Other"), -1);
*/
break; break;
} }
case GEANY_FILETYPES_RUBY: case GEANY_FILETYPES_RUBY:
{ {
gtk_tree_store_append(doc_list[idx].tag_store, &(tv_iters.tag_class), NULL); tag_list_add_groups(tag_store,
gtk_tree_store_set(doc_list[idx].tag_store, &(tv_iters.tag_class), 0, _("Classes"), -1); &(tv_iters.tag_class), _("Classes"),
gtk_tree_store_append(doc_list[idx].tag_store, &(tv_iters.tag_member), NULL); &(tv_iters.tag_member), _("Singletons"),
gtk_tree_store_set(doc_list[idx].tag_store, &(tv_iters.tag_member), 0, _("Singletons"), -1); &(tv_iters.tag_macro), _("Mixins"),
gtk_tree_store_append(doc_list[idx].tag_store, &(tv_iters.tag_macro), NULL); &(tv_iters.tag_function), _("Methods"),
gtk_tree_store_set(doc_list[idx].tag_store, &(tv_iters.tag_macro), 0, _("Mixins"), -1); &(tv_iters.tag_struct), _("Members"),
gtk_tree_store_append(doc_list[idx].tag_store, &(tv_iters.tag_function), NULL); &(tv_iters.tag_variable), _("Variables"), NULL);
gtk_tree_store_set(doc_list[idx].tag_store, &(tv_iters.tag_function), 0, _("Methods"), -1); //&(tv_iters.tag_namespace), _("Begin"),
gtk_tree_store_append(doc_list[idx].tag_store, &(tv_iters.tag_struct), NULL); //&(tv_iters.tag_other), _("Other"), NULL);
gtk_tree_store_set(doc_list[idx].tag_store, &(tv_iters.tag_struct), 0, _("Members"), -1);
gtk_tree_store_append(doc_list[idx].tag_store, &(tv_iters.tag_variable), NULL);
gtk_tree_store_set(doc_list[idx].tag_store, &(tv_iters.tag_variable), 0, _("Variables"), -1);
/* gtk_tree_store_append(doc_list[idx].tag_store, &(tv_iters.tag_namespace), NULL);
gtk_tree_store_set(doc_list[idx].tag_store, &(tv_iters.tag_namespace), 0, _("Begin"), -1);
gtk_tree_store_append(doc_list[idx].tag_store, &(tv_iters.tag_other), NULL);
gtk_tree_store_set(doc_list[idx].tag_store, &(tv_iters.tag_other), 0, _("Other"), -1);
*/
break; break;
} }
case GEANY_FILETYPES_PYTHON: case GEANY_FILETYPES_PYTHON:
{ {
gtk_tree_store_append(doc_list[idx].tag_store, &(tv_iters.tag_class), NULL); tag_list_add_groups(tag_store,
gtk_tree_store_set(doc_list[idx].tag_store, &(tv_iters.tag_class), 0, _("Classes"), -1); &(tv_iters.tag_class), _("Classes"),
gtk_tree_store_append(doc_list[idx].tag_store, &(tv_iters.tag_member), NULL); &(tv_iters.tag_member), _("Methods"),
gtk_tree_store_set(doc_list[idx].tag_store, &(tv_iters.tag_member), 0, _("Methods"), -1); &(tv_iters.tag_function), _("Functions"), NULL);
gtk_tree_store_append(doc_list[idx].tag_store, &(tv_iters.tag_function), NULL); //&(tv_iters.tag_macro), _("Mixin"),
gtk_tree_store_set(doc_list[idx].tag_store, &(tv_iters.tag_function), 0, _("Functions"), -1); //&(tv_iters.tag_variable), _("Variables"),
/* gtk_tree_store_append(doc_list[idx].tag_store, &(tv_iters.tag_macro), NULL); //&(tv_iters.tag_struct), _("Members"),
gtk_tree_store_set(doc_list[idx].tag_store, &(tv_iters.tag_macro), 0, _("Mixin"), -1); //&(tv_iters.tag_namespace), _("Begin"),
gtk_tree_store_append(doc_list[idx].tag_store, &(tv_iters.tag_variable), NULL); //&(tv_iters.tag_other), _("Other"), NULL);
gtk_tree_store_set(doc_list[idx].tag_store, &(tv_iters.tag_variable), 0, _("Variables"), -1);
gtk_tree_store_append(doc_list[idx].tag_store, &(tv_iters.tag_struct), NULL);
gtk_tree_store_set(doc_list[idx].tag_store, &(tv_iters.tag_struct), 0, _("Members"), -1);
gtk_tree_store_append(doc_list[idx].tag_store, &(tv_iters.tag_namespace), NULL);
gtk_tree_store_set(doc_list[idx].tag_store, &(tv_iters.tag_namespace), 0, _("Begin"), -1);
gtk_tree_store_append(doc_list[idx].tag_store, &(tv_iters.tag_other), NULL);
gtk_tree_store_set(doc_list[idx].tag_store, &(tv_iters.tag_other), 0, _("Other"), -1);
*/
break; break;
} }
case GEANY_FILETYPES_VHDL: case GEANY_FILETYPES_VHDL:
{ {
gtk_tree_store_append(doc_list[idx].tag_store, &(tv_iters.tag_function), NULL); tag_list_add_groups(tag_store,
gtk_tree_store_set(doc_list[idx].tag_store, &(tv_iters.tag_function), 0, _("Functions"), -1); &(tv_iters.tag_function), _("Functions"),
/* gtk_tree_store_append(doc_list[idx].tag_store, &(tv_iters.tag_class), NULL); //&(tv_iters.tag_class), _("Constants"),
gtk_tree_store_set(doc_list[idx].tag_store, &(tv_iters.tag_class), 0, _("Constants"), -1); //&(tv_iters.tag_member), _("Members"),
gtk_tree_store_append(doc_list[idx].tag_store, &(tv_iters.tag_member), NULL); //&(tv_iters.tag_macro), _("Macros"),
gtk_tree_store_set(doc_list[idx].tag_store, &(tv_iters.tag_member), 0, _("Members"), -1); &(tv_iters.tag_variable), _("Variables"), NULL);
gtk_tree_store_append(doc_list[idx].tag_store, &(tv_iters.tag_macro), NULL); //&(tv_iters.tag_namespace), _("Namespaces"),
gtk_tree_store_set(doc_list[idx].tag_store, &(tv_iters.tag_macro), 0, _("Macros"), -1); //&(tv_iters.tag_struct), _("Signals"),
*/ gtk_tree_store_append(doc_list[idx].tag_store, &(tv_iters.tag_variable), NULL); //&(tv_iters.tag_other), _("Other"), NULL);
gtk_tree_store_set(doc_list[idx].tag_store, &(tv_iters.tag_variable), 0, _("Variables"), -1);
/* gtk_tree_store_append(doc_list[idx].tag_store, &(tv_iters.tag_namespace), NULL);
gtk_tree_store_set(doc_list[idx].tag_store, &(tv_iters.tag_namespace), 0, _("Namespaces"), -1);
gtk_tree_store_append(doc_list[idx].tag_store, &(tv_iters.tag_struct), NULL);
gtk_tree_store_set(doc_list[idx].tag_store, &(tv_iters.tag_struct), 0, _("Signals"), -1);
gtk_tree_store_append(doc_list[idx].tag_store, &(tv_iters.tag_other), NULL);
gtk_tree_store_set(doc_list[idx].tag_store, &(tv_iters.tag_other), 0, _("Other"), -1);
*/
break; break;
} }
case GEANY_FILETYPES_JAVA: case GEANY_FILETYPES_JAVA:
{ {
gtk_tree_store_append(doc_list[idx].tag_store, &(tv_iters.tag_namespace), NULL); tag_list_add_groups(tag_store,
gtk_tree_store_set(doc_list[idx].tag_store, &(tv_iters.tag_namespace), 0, _("Package"), -1); &(tv_iters.tag_namespace), _("Package"),
gtk_tree_store_append(doc_list[idx].tag_store, &(tv_iters.tag_struct), NULL); &(tv_iters.tag_struct), _("Interfaces"),
gtk_tree_store_set(doc_list[idx].tag_store, &(tv_iters.tag_struct), 0, _("Interfaces"), -1); &(tv_iters.tag_class), _("Classes"),
gtk_tree_store_append(doc_list[idx].tag_store, &(tv_iters.tag_class), NULL); &(tv_iters.tag_function), _("Methods"),
gtk_tree_store_set(doc_list[idx].tag_store, &(tv_iters.tag_class), 0, _("Classes"), -1); &(tv_iters.tag_member), _("Members"),
gtk_tree_store_append(doc_list[idx].tag_store, &(tv_iters.tag_function), NULL); // &(tv_iters.tag_macro), _("Macros"),
gtk_tree_store_set(doc_list[idx].tag_store, &(tv_iters.tag_function), 0, _("Methods"), -1); // &(tv_iters.tag_variable), _("Variables"),
gtk_tree_store_append(doc_list[idx].tag_store, &(tv_iters.tag_member), NULL); &(tv_iters.tag_other), _("Other"), NULL);
gtk_tree_store_set(doc_list[idx].tag_store, &(tv_iters.tag_member), 0, _("Members"), -1);
//gtk_tree_store_append(doc_list[idx].tag_store, &(tv_iters.tag_macro), NULL);
//gtk_tree_store_set(doc_list[idx].tag_store, &(tv_iters.tag_macro), 0, _("Macros"), -1);
//gtk_tree_store_append(doc_list[idx].tag_store, &(tv_iters.tag_variable), NULL);
//gtk_tree_store_set(doc_list[idx].tag_store, &(tv_iters.tag_variable), 0, _("Variables"), -1);
gtk_tree_store_append(doc_list[idx].tag_store, &(tv_iters.tag_other), NULL);
gtk_tree_store_set(doc_list[idx].tag_store, &(tv_iters.tag_other), 0, _("Other"), -1);
break; break;
} }
case GEANY_FILETYPES_D: case GEANY_FILETYPES_D:
default: default:
{ {
gchar *namespace_name; gchar *namespace_name = _("Namespaces");
switch (ft_id) if (ft_id == GEANY_FILETYPES_D)
{
case GEANY_FILETYPES_D:
namespace_name = _("Module"); // one file can only belong to one module namespace_name = _("Module"); // one file can only belong to one module
break;
default: tag_list_add_groups(tag_store,
namespace_name = _("Namespaces"); &(tv_iters.tag_namespace), namespace_name,
} &(tv_iters.tag_class), _("Classes"),
gtk_tree_store_append(doc_list[idx].tag_store, &(tv_iters.tag_namespace), NULL); &(tv_iters.tag_function), _("Functions"),
gtk_tree_store_set(doc_list[idx].tag_store, &(tv_iters.tag_namespace), 0, namespace_name, -1); &(tv_iters.tag_member), _("Members"),
gtk_tree_store_append(doc_list[idx].tag_store, &(tv_iters.tag_class), NULL); &(tv_iters.tag_struct), _("Structs / Typedefs"), NULL);
gtk_tree_store_set(doc_list[idx].tag_store, &(tv_iters.tag_class), 0, _("Classes"), -1);
gtk_tree_store_append(doc_list[idx].tag_store, &(tv_iters.tag_function), NULL);
gtk_tree_store_set(doc_list[idx].tag_store, &(tv_iters.tag_function), 0, _("Functions"), -1);
gtk_tree_store_append(doc_list[idx].tag_store, &(tv_iters.tag_member), NULL);
gtk_tree_store_set(doc_list[idx].tag_store, &(tv_iters.tag_member), 0, _("Members"), -1);
gtk_tree_store_append(doc_list[idx].tag_store, &(tv_iters.tag_struct), NULL);
gtk_tree_store_set(doc_list[idx].tag_store, &(tv_iters.tag_struct), 0, _("Structs / Typedefs"), -1);
// TODO: maybe D Mixins could be parsed instead of macros
if (ft_id != GEANY_FILETYPES_D) if (ft_id != GEANY_FILETYPES_D)
{ {
gtk_tree_store_append(doc_list[idx].tag_store, &(tv_iters.tag_macro), NULL); tag_list_add_groups(tag_store,
gtk_tree_store_set(doc_list[idx].tag_store, &(tv_iters.tag_macro), 0, _("Macros"), -1); &(tv_iters.tag_macro), _("Macros"), NULL);
} }
gtk_tree_store_append(doc_list[idx].tag_store, &(tv_iters.tag_variable), NULL); tag_list_add_groups(tag_store,
gtk_tree_store_set(doc_list[idx].tag_store, &(tv_iters.tag_variable), 0, _("Variables"), -1); &(tv_iters.tag_variable), _("Variables"),
gtk_tree_store_append(doc_list[idx].tag_store, &(tv_iters.tag_other), NULL); &(tv_iters.tag_other), _("Other"), NULL);
gtk_tree_store_set(doc_list[idx].tag_store, &(tv_iters.tag_other), 0, _("Other"), -1);
} }
} }
} }