SF.net SVN: geany:[5227] trunk
ntrel at users.sourceforge.net
ntrel at xxxxx
Tue Sep 14 11:57:38 UTC 2010
Revision: 5227
http://geany.svn.sourceforge.net/geany/?rev=5227&view=rev
Author: ntrel
Date: 2010-09-14 11:57:38 +0000 (Tue, 14 Sep 2010)
Log Message:
-----------
Parse D function template names.
Modified Paths:
--------------
trunk/ChangeLog
trunk/tagmanager/c.c
Modified: trunk/ChangeLog
===================================================================
--- trunk/ChangeLog 2010-09-14 11:29:42 UTC (rev 5226)
+++ trunk/ChangeLog 2010-09-14 11:57:38 UTC (rev 5227)
@@ -3,6 +3,8 @@
* src/main.c:
Ignore directories passed on the command-line (based on patch by
Erik de Castro Lopo, thanks).
+ * tagmanager/c.c:
+ Parse D function template names.
2010-09-13 Nick Treleaven <nick(dot)treleaven(at)btinternet(dot)com>
Modified: trunk/tagmanager/c.c
===================================================================
--- trunk/tagmanager/c.c 2010-09-14 11:29:42 UTC (rev 5226)
+++ trunk/tagmanager/c.c 2010-09-14 11:57:38 UTC (rev 5227)
@@ -144,6 +144,7 @@
DECL_EVENT,
DECL_SIGNAL,
DECL_FUNCTION,
+ DECL_FUNCTION_TEMPLATE,
DECL_IGNORE, /* non-taggable "declaration" */
DECL_INTERFACE,
DECL_MODULE,
@@ -1155,6 +1156,7 @@
case DECL_CLASS: type = TAG_CLASS; break;
case DECL_ENUM: type = TAG_ENUM; break;
case DECL_FUNCTION: type = TAG_FUNCTION; break;
+ case DECL_FUNCTION_TEMPLATE: type = TAG_FUNCTION; break;
case DECL_INTERFACE:type = TAG_INTERFACE; break;
case DECL_NAMESPACE:type = TAG_NAMESPACE; break;
case DECL_STRUCT: type = TAG_STRUCT; break;
@@ -2498,6 +2500,10 @@
token->type = TOKEN_NAME;
processName (st);
st->gotParenName = TRUE;
+ if (isLanguage(Lang_d) && c == '(' && isType (prev, TOKEN_NAME)) {
+ st->declaration = DECL_FUNCTION_TEMPLATE;
+ copyToken (st->blockName, prev);
+ }
}
else if (! st->gotArgs && info.isParamList)
{
@@ -2853,7 +2859,9 @@
{
if (isType (prev, TOKEN_ARGS))
{
- if (st->haveQualifyingName)
+ if (st->declaration == DECL_FUNCTION_TEMPLATE)
+ qualifyFunctionTag (st, st->blockName);
+ else if (st->haveQualifyingName)
{
st->declaration = DECL_FUNCTION;
if (isType (prev2, TOKEN_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