Revision: 1330 http://geany-plugins.svn.sourceforge.net/geany-plugins/?rev=1330&view=re... Author: colombanw Date: 2010-05-01 18:12:33 +0000 (Sat, 01 May 2010)
Log Message: ----------- GeanyGenDoc: Don't use a hard-coded list of what can have arguments
Always generate arguments list if the tag have one. In the same spirit, always generate the "returns" symbol too even when it doesn't make sense; simply let the template use it or not.
Modified Paths: -------------- trunk/geanygendoc/src/ggd.c
Modified: trunk/geanygendoc/src/ggd.c =================================================================== --- trunk/geanygendoc/src/ggd.c 2010-05-01 17:49:41 UTC (rev 1329) +++ trunk/geanygendoc/src/ggd.c 2010-05-01 18:12:33 UTC (rev 1330) @@ -146,19 +146,16 @@ GeanyDocument *doc, const TMTag *tag) { - CtplEnviron *env; - GList *children = NULL; - GPtrArray *tag_array = doc->tm_file->tags_array; + CtplEnviron *env; + GList *children = NULL; + GPtrArray *tag_array = doc->tm_file->tags_array; + gboolean returns;
env = ctpl_environ_new (); ctpl_environ_push_string (env, "cursor", GGD_CURSOR_IDENTIFIER); ctpl_environ_push_string (env, "symbol", tag->name); - /* get arguments & return type if appropriate */ - if (tag->type & (tm_tag_function_t | - tm_tag_macro_with_arg_t | - tm_tag_prototype_t | - tm_tag_method_t)) { - gboolean returns; + /* get argument list it it exists */ + if (tag->atts.entry.arglist) { CtplValue *v;
v = get_arg_list_from_string (ft, tag->atts.entry.arglist); @@ -166,11 +163,13 @@ ctpl_environ_push (env, "argument_list", v); ctpl_value_free (v); } - returns = ! (tag->atts.entry.var_type != NULL && - /* C-style none return type hack */ - strcmp ("void", tag->atts.entry.var_type) == 0); - ctpl_environ_push_int (env, "returns", returns); } + /* get return type -- no matter if the return concept is pointless for that + * particular tag, it's up to the rule to use it when it makes sense */ + returns = ! (tag->atts.entry.var_type != NULL && + /* C-style none return type hack */ + strcmp ("void", tag->atts.entry.var_type) == 0); + ctpl_environ_push_int (env, "returns", returns); /* get direct children tags */ children = ggd_tag_find_children (tag_array, tag, FILETYPE_ID (doc->file_type), 0);
This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site.