Branch: refs/heads/master Author: Colomban Wendling ban@herbesfolles.org Committer: Colomban Wendling ban@herbesfolles.org Date: Fri, 21 Sep 2012 23:27:11 Commit: 877b0477c401e9c359cbf93e04989b7aeccc257e https://github.com/geany/geany/commit/877b0477c401e9c359cbf93e04989b7aeccc25...
Log Message: ----------- Set scope information for JavaScript tags
Instead of adding the scope to the tag name, properly add it as the tag's scope.
Closes #3570192.
Modified Paths: -------------- tagmanager/ctags/js.c tagmanager/src/tm_tag.c
Modified: tagmanager/ctags/js.c 35 files changed, 12 insertions(+), 23 deletions(-) =================================================================== @@ -212,7 +212,7 @@ static void deleteToken (tokenInfo *const token) * Tag generation functions */
-static void makeConstTag (tokenInfo *const token, const jsKind kind) +static void makeJsTag (tokenInfo *const token, const jsKind kind) { if (JsKinds [kind].enabled && ! token->ignoreTag ) { @@ -225,31 +225,20 @@ static void makeConstTag (tokenInfo *const token, const jsKind kind) e.kindName = JsKinds [kind].name; e.kind = JsKinds [kind].letter;
- makeTagEntry (&e); - } -} - -static void makeJsTag (tokenInfo *const token, const jsKind kind) -{ - vString * fulltag; - - if (JsKinds [kind].enabled && ! token->ignoreTag ) - { - /* - * If a scope has been added to the token, change the token - * string to include the scope when making the tag. - */ if ( vStringLength(token->scope) > 0 ) { - fulltag = vStringNew (); - vStringCopy(fulltag, token->scope); - vStringCatS (fulltag, "."); - vStringCatS (fulltag, vStringValue(token->string)); - vStringTerminate(fulltag); - vStringCopy(token->string, fulltag); - vStringDelete (fulltag); + jsKind parent_kind = JSTAG_CLASS; + + /* if we're creating a function (and not a method), + * guess we're inside another function */ + if (kind == JSTAG_FUNCTION) + parent_kind = JSTAG_FUNCTION; + + e.extensionFields.scope[0] = JsKinds [parent_kind].name; + e.extensionFields.scope[1] = vStringValue (token->scope); } - makeConstTag (token, kind); + + makeTagEntry (&e); } }
Modified: tagmanager/src/tm_tag.c 3 files changed, 2 insertions(+), 1 deletions(-) =================================================================== @@ -154,7 +154,8 @@ gboolean tm_tag_init(TMTag *tag, TMSourceFile *file, const tagEntryInfo *tag_ent tag->atts.entry.arglist = g_strdup(tag_entry->extensionFields.arglist); if ((NULL != tag_entry->extensionFields.scope[1]) && (isalpha(tag_entry->extensionFields.scope[1][0]) || - tag_entry->extensionFields.scope[1][0] == '_')) + tag_entry->extensionFields.scope[1][0] == '_' || + tag_entry->extensionFields.scope[1][0] == '$')) tag->atts.entry.scope = g_strdup(tag_entry->extensionFields.scope[1]); if (tag_entry->extensionFields.inheritance != NULL) tag->atts.entry.inheritance = g_strdup(tag_entry->extensionFields.inheritance);
-------------- This E-Mail was brought to you by github_commit_mail.py (Source: TBD).