Branch: refs/heads/master Author: elextr elextr@gmail.com Committer: elextr elextr@gmail.com Date: Thu, 06 Jun 2013 03:10:06 UTC Commit: 2fdcad6290d487d83d0135ada240db36c2368cbf https://github.com/geany/geany/commit/2fdcad6290d487d83d0135ada240db36c2368c...
Log Message: ----------- Allow Javascript new operator to apply to any object constructor
js.c only allowed keywords 'function' 'Function' or 'Object' after 'new' but js syntax allows any constructor function:
var name = new constructor_function( args );
ie an identifier where js.c allowed only keywords. So changed js.c to allow any identifier as well as the keywords.
Modified Paths: -------------- tagmanager/ctags/js.c
Modified: tagmanager/ctags/js.c 20 files changed, 15 insertions(+), 5 deletions(-) =================================================================== @@ -1112,6 +1112,7 @@ static boolean parseStatement (tokenInfo *const token, boolean is_inside_class) tokenInfo *const method_body_token = newToken (); vString * saveScope = vStringNew (); boolean is_class = FALSE; + boolean is_var = FALSE; boolean is_terminated = TRUE; boolean is_global = FALSE; boolean has_methods = FALSE; @@ -1495,9 +1496,11 @@ static boolean parseStatement (tokenInfo *const token, boolean is_inside_class) else if (isKeyword (token, KEYWORD_new)) { readToken (token); + is_var = isType (token, TOKEN_IDENTIFIER); if ( isKeyword (token, KEYWORD_function) || isKeyword (token, KEYWORD_capital_function) || - isKeyword (token, KEYWORD_capital_object) ) + isKeyword (token, KEYWORD_capital_object) || + is_var ) { if ( isKeyword (token, KEYWORD_capital_object) ) is_class = TRUE; @@ -1510,11 +1513,18 @@ static boolean parseStatement (tokenInfo *const token, boolean is_inside_class) { if ( token->nestLevel == 0 ) { - if ( is_class ) + if ( is_var ) { - makeClassTag (name); - } else { - makeFunctionTag (name); + makeJsTag (name, JSTAG_VARIABLE); + } + else + { + if ( is_class ) + { + makeClassTag (name); + } else { + makeFunctionTag (name); + } } } }
-------------- This E-Mail was brought to you by github_commit_mail.py (Source: https://github.com/geany/infrastructure).