Revision: 903 http://svn.sourceforge.net/geany/?rev=903&view=rev Author: eht16 Date: 2006-10-18 13:11:05 -0700 (Wed, 18 Oct 2006)
Log Message: ----------- Use "::" as context separator only for C++, otherwise use ".". Detect module declarations in D and put them in the symbol list.
Modified Paths: -------------- trunk/ChangeLog trunk/src/treeviews.c trunk/src/utils.c trunk/tagmanager/c.c
Modified: trunk/ChangeLog =================================================================== --- trunk/ChangeLog 2006-10-18 19:35:42 UTC (rev 902) +++ trunk/ChangeLog 2006-10-18 20:11:05 UTC (rev 903) @@ -1,3 +1,10 @@ +2006-10-18 Enrico Tröger enrico.troeger@uvena.de + + * src/utils.c, src/treeviews.c, tagmanager/c.c: + Use "::" as context separator only for C++, otherwise use ".". + Detect module declarations in D and put them in the symbol list. + + 2006-10-18 Nick Treleaven nick.treleaven@btinternet.com
* src/build.c, src/build.h, src/ui_utils.h, src/ui_utils.c, @@ -6,6 +13,7 @@ Move build menu related functions and callbacks to build.c. Renamed ui_update_build_menu -> build_menu_update.
+ 2006-10-17 Nick Treleaven nick.treleaven@btinternet.com
* src/callbacks.c, src/filetypes.h, src/ui_utils.c:
Modified: trunk/src/treeviews.c =================================================================== --- trunk/src/treeviews.c 2006-10-18 19:35:42 UTC (rev 902) +++ trunk/src/treeviews.c 2006-10-18 20:11:05 UTC (rev 903) @@ -180,7 +180,12 @@ break; } case GEANY_FILETYPES_JAVA: + case GEANY_FILETYPES_D: { + // use singular because one file can only belong to one Package / Module + gchar *namespace_name = (doc_list[idx].file_type->id == GEANY_FILETYPES_D) ? + _("Module") : _("Package"); + gtk_tree_store_append(doc_list[idx].tag_store, &(tv.tag_function), NULL); gtk_tree_store_set(doc_list[idx].tag_store, &(tv.tag_function), 0, _("Methods"), -1); gtk_tree_store_append(doc_list[idx].tag_store, &(tv.tag_class), NULL); @@ -194,7 +199,7 @@ //gtk_tree_store_append(doc_list[idx].tag_store, &(tv.tag_variable), NULL); //gtk_tree_store_set(doc_list[idx].tag_store, &(tv.tag_variable), 0, _("Variables"), -1); gtk_tree_store_append(doc_list[idx].tag_store, &(tv.tag_namespace), NULL); - gtk_tree_store_set(doc_list[idx].tag_store, &(tv.tag_namespace), 0, _("Packages"), -1); + gtk_tree_store_set(doc_list[idx].tag_store, &(tv.tag_namespace), 0, namespace_name, -1); gtk_tree_store_append(doc_list[idx].tag_store, &(tv.tag_other), NULL); gtk_tree_store_set(doc_list[idx].tag_store, &(tv.tag_other), 0, _("Other"), -1); break;
Modified: trunk/src/utils.c =================================================================== --- trunk/src/utils.c 2006-10-18 19:35:42 UTC (rev 902) +++ trunk/src/utils.c 2006-10-18 20:11:05 UTC (rev 903) @@ -232,8 +232,12 @@ else utf8_name = tag->name; if ((tag->atts.entry.scope != NULL) && isalpha(tag->atts.entry.scope[0])) { + // context separator + gchar *cosep = (doc_list[idx].file_type->id == GEANY_FILETYPES_CPP) ? "::" : "."; + symbol = g_new0(GeanySymbol, 1); - symbol->str = g_strdup_printf("%s::%s [%ld]", tag->atts.entry.scope, utf8_name, tag->atts.entry.line); + symbol->str = g_strdup_printf("%s%s%s [%ld]", tag->atts.entry.scope, cosep, + utf8_name, tag->atts.entry.line); symbol->type = tag->type; symbol->line = tag->atts.entry.line; tag_names = g_list_prepend(tag_names, symbol);
Modified: trunk/tagmanager/c.c =================================================================== --- trunk/tagmanager/c.c 2006-10-18 19:35:42 UTC (rev 902) +++ trunk/tagmanager/c.c 2006-10-18 20:11:05 UTC (rev 903) @@ -67,7 +67,7 @@ KEYWORD_IMPLEMENTS, KEYWORD_IMPORT, KEYWORD_INLINE, KEYWORD_INT, KEYWORD_INTERFACE, KEYWORD_LONG, - KEYWORD_MUTABLE, + KEYWORD_MUTABLE, KEYWORD_MODULE, KEYWORD_NAMESPACE, KEYWORD_NEW, KEYWORD_NATIVE, KEYWORD_OPERATOR, KEYWORD_OVERLOAD, KEYWORD_PACKAGE, KEYWORD_PRIVATE, KEYWORD_PROTECTED, KEYWORD_PUBLIC, @@ -127,6 +127,7 @@ DECL_FUNCTION, DECL_IGNORE, /* non-taggable "declaration" */ DECL_INTERFACE, + DECL_MODULE, DECL_NAMESPACE, DECL_NOMANGLE, /* C++ name demangling block */ DECL_PACKAGE, @@ -302,6 +303,7 @@ { "int", KEYWORD_INT, { 1, 1, 1 } }, { "interface", KEYWORD_INTERFACE, { 0, 0, 1 } }, { "long", KEYWORD_LONG, { 1, 1, 1 } }, + { "module", KEYWORD_MODULE, { 0, 1, 0 } }, { "mutable", KEYWORD_MUTABLE, { 0, 1, 0 } }, { "namespace", KEYWORD_NAMESPACE, { 0, 1, 0 } }, { "native", KEYWORD_NATIVE, { 0, 0, 1 } }, @@ -809,8 +811,8 @@ case DECL_CLASS: type = TAG_CLASS; break; case DECL_ENUM: type = TAG_ENUM; break; case DECL_FUNCTION: type = TAG_FUNCTION; break; - case DECL_INTERFACE: type = TAG_INTERFACE; break; - case DECL_NAMESPACE: type = TAG_NAMESPACE; break; + case DECL_INTERFACE:type = TAG_INTERFACE; break; + case DECL_NAMESPACE:type = TAG_NAMESPACE; break; case DECL_STRUCT: type = TAG_STRUCT; break; case DECL_UNION: type = TAG_UNION; break;
@@ -1143,6 +1145,8 @@ makeTag (nameToken, st, TRUE, TAG_TYPEDEF); else if (st->declaration == DECL_PACKAGE) makeTag (nameToken, st, FALSE, TAG_PACKAGE); + else if (st->declaration == DECL_MODULE) // handle modules in D as namespaces + makeTag (nameToken, st, FALSE, TAG_NAMESPACE); else if (isValidTypeSpecifier (st->declaration)) { if (isMember (st)) @@ -1343,7 +1347,10 @@ Assert (isType (token, TOKEN_KEYWORD)); readPackageName (token, skipToNonWhite ()); token->type = TOKEN_NAME; - st->declaration = DECL_PACKAGE; + if (isLanguage (Lang_d)) + st->declaration = DECL_MODULE; + else + st->declaration = DECL_PACKAGE; st->gotName = TRUE; st->haveQualifyingName = TRUE; } @@ -1541,6 +1548,7 @@ case KEYWORD_LONG: st->declaration = DECL_BASE; break; case KEYWORD_NAMESPACE: st->declaration = DECL_NAMESPACE; break; case KEYWORD_OPERATOR: readOperator (st); break; + case KEYWORD_MODULE: readPackage (st); break; case KEYWORD_PACKAGE: readPackage (st); break; case KEYWORD_PRIVATE: setAccess (st, ACCESS_PRIVATE); break; case KEYWORD_PROTECTED: setAccess (st, ACCESS_PROTECTED); break;
This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site.