SF.net SVN: geany:[4426] trunk
ntrel at users.sourceforge.net
ntrel at xxxxx
Mon Nov 16 12:36:43 UTC 2009
Revision: 4426
http://geany.svn.sourceforge.net/geany/?rev=4426&view=rev
Author: ntrel
Date: 2009-11-16 12:36:38 +0000 (Mon, 16 Nov 2009)
Log Message:
-----------
Separate DKinds from CKinds.
Don't generate macro tags for D, Java.
Modified Paths:
--------------
trunk/ChangeLog
trunk/tagmanager/c.c
Modified: trunk/ChangeLog
===================================================================
--- trunk/ChangeLog 2009-11-15 21:06:49 UTC (rev 4425)
+++ trunk/ChangeLog 2009-11-16 12:36:38 UTC (rev 4426)
@@ -1,3 +1,10 @@
+2009-11-16 Nick Treleaven <nick(dot)treleaven(at)btinternet(dot)com>
+
+ * tagmanager/c.c:
+ Separate DKinds from CKinds.
+ Don't generate macro tags for D, Java.
+
+
2009-11-12 Nick Treleaven <nick(dot)treleaven(at)btinternet(dot)com>
* tagmanager/ctags.c, tagmanager/general.h:
Modified: trunk/tagmanager/c.c
===================================================================
--- trunk/tagmanager/c.c 2009-11-15 21:06:49 UTC (rev 4425)
+++ trunk/tagmanager/c.c 2009-11-16 12:36:38 UTC (rev 4426)
@@ -273,7 +273,7 @@
{
CK_UNDEFINED = -1,
CK_CLASS, CK_DEFINE, CK_ENUMERATOR, CK_FUNCTION,
- CK_ENUMERATION, CK_INTERFACE, CK_MEMBER, CK_NAMESPACE, CK_PROTOTYPE,
+ CK_ENUMERATION, CK_MEMBER, CK_NAMESPACE, CK_PROTOTYPE,
CK_STRUCT, CK_TYPEDEF, CK_UNION, CK_VARIABLE,
CK_EXTERN_VARIABLE
} cKind;
@@ -284,7 +284,6 @@
{ TRUE, 'e', "enumerator", "enumerators (values inside an enumeration)"},
{ TRUE, 'f', "function", "function definitions"},
{ TRUE, 'g', "enum", "enumeration names"},
- { TRUE, 'i', "interface", "interfaces"}, /* for D */
{ TRUE, 'm', "member", "class, struct, and union members"},
{ TRUE, 'n', "namespace", "namespaces"},
{ FALSE, 'p', "prototype", "function prototypes"},
@@ -295,6 +294,32 @@
{ FALSE, 'x', "externvar", "external variable declarations"},
};
+/* Used to index into the DKinds table. */
+typedef enum
+{
+ DK_UNDEFINED = -1,
+ DK_CLASS, DK_ENUMERATOR, DK_FUNCTION,
+ DK_ENUMERATION, DK_INTERFACE, DK_MEMBER, DK_NAMESPACE, DK_PROTOTYPE,
+ DK_STRUCT, DK_TYPEDEF, DK_UNION, DK_VARIABLE,
+ DK_EXTERN_VARIABLE
+} dKind;
+
+static kindOption DKinds [] = {
+ { TRUE, 'c', "class", "classes"},
+ { TRUE, 'e', "enumerator", "enumerators (values inside an enumeration)"},
+ { TRUE, 'f', "function", "function definitions"},
+ { TRUE, 'g', "enum", "enumeration names"},
+ { TRUE, 'i', "interface", "interfaces"},
+ { TRUE, 'm', "member", "class, struct, and union members"},
+ { TRUE, 'n', "namespace", "namespaces"},
+ { FALSE, 'p', "prototype", "function prototypes"},
+ { TRUE, 's', "struct", "structure names"},
+ { TRUE, 't', "typedef", "typedefs"},
+ { TRUE, 'u', "union", "union names"},
+ { TRUE, 'v', "variable", "variable definitions"},
+ { FALSE, 'x', "externvar", "external variable declarations"},
+};
+
/* Used to index into the JavaKinds table. */
typedef enum
{
@@ -553,7 +578,15 @@
extern boolean includingDefineTags (void)
{
- return CKinds [CK_DEFINE].enabled;
+ if (isLanguage(Lang_c) ||
+ isLanguage(Lang_cpp) ||
+ isLanguage(Lang_csharp) ||
+ isLanguage(Lang_ferite) ||
+ isLanguage(Lang_glsl) ||
+ isLanguage(Lang_vala))
+ return CKinds [CK_DEFINE].enabled;
+
+ return FALSE;
}
/*
@@ -968,7 +1001,6 @@
case TAG_ENUM: result = CK_ENUMERATION; break;
case TAG_ENUMERATOR: result = CK_ENUMERATOR; break;
case TAG_FUNCTION: result = CK_FUNCTION; break;
- case TAG_INTERFACE: result = CK_INTERFACE; break;
case TAG_MEMBER: result = CK_MEMBER; break;
case TAG_NAMESPACE: result = CK_NAMESPACE; break;
case TAG_PROTOTYPE: result = CK_PROTOTYPE; break;
@@ -1006,6 +1038,30 @@
return result;
}
+static dKind dTagKind (const tagType type)
+{
+ dKind result = DK_UNDEFINED;
+ switch (type)
+ {
+ case TAG_CLASS: result = DK_CLASS; break;
+ case TAG_ENUM: result = DK_ENUMERATION; break;
+ case TAG_ENUMERATOR: result = DK_ENUMERATOR; break;
+ case TAG_FUNCTION: result = DK_FUNCTION; break;
+ case TAG_INTERFACE: result = DK_INTERFACE; break;
+ case TAG_MEMBER: result = DK_MEMBER; break;
+ case TAG_NAMESPACE: result = DK_NAMESPACE; break;
+ case TAG_PROTOTYPE: result = DK_PROTOTYPE; break;
+ case TAG_STRUCT: result = DK_STRUCT; break;
+ case TAG_TYPEDEF: result = DK_TYPEDEF; break;
+ case TAG_UNION: result = DK_UNION; break;
+ case TAG_VARIABLE: result = DK_VARIABLE; break;
+ case TAG_EXTERN_VAR: result = DK_EXTERN_VARIABLE; break;
+
+ default: Assert ("Bad D tag type" == NULL); break;
+ }
+ return result;
+}
+
static valaKind valaTagKind (const tagType type)
{
valaKind result = VK_UNDEFINED;
@@ -1051,6 +1107,8 @@
result = JavaKinds [javaTagKind (type)].name;
else if (isLanguage (Lang_csharp))
result = CsharpKinds [csharpTagKind (type)].name;
+ else if (isLanguage (Lang_d))
+ result = DKinds [dTagKind (type)].name;
else if (isLanguage (Lang_vala))
result = ValaKinds [valaTagKind (type)].name;
else
@@ -1063,6 +1121,8 @@
int result;
if (isLanguage (Lang_csharp))
result = CsharpKinds [csharpTagKind (type)].letter;
+ else if (isLanguage (Lang_d))
+ result = DKinds [dTagKind (type)].letter;
else if (isLanguage (Lang_java))
result = JavaKinds [javaTagKind (type)].letter;
else if (isLanguage (Lang_vala))
@@ -3072,8 +3132,8 @@
{
static const char *const extensions [] = { "d", "di", NULL };
parserDefinition* def = parserNew ("D");
- def->kinds = CKinds;
- def->kindCount = KIND_COUNT (CKinds);
+ def->kinds = DKinds;
+ def->kindCount = KIND_COUNT (DKinds);
def->extensions = extensions;
def->parser2 = findCTags;
def->initialize = initializeDParser;
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