Branch: refs/heads/master Author: Colomban Wendling ban@herbesfolles.org Committer: Colomban Wendling ban@herbesfolles.org Date: Mon, 24 Nov 2014 01:55:44 UTC Commit: f2b368e2cc507f9b074ff12f412ea222d273bb84 https://github.com/geany/geany/commit/f2b368e2cc507f9b074ff12f412ea222d273bb...
Log Message: ----------- javascript: Report function signature
Modified Paths: -------------- tagmanager/ctags/js.c tests/ctags/1795612.js.tags tests/ctags/1850914.js.tags tests/ctags/1878155.js.tags tests/ctags/1880687.js.tags tests/ctags/2023624.js.tags tests/ctags/3470609.js.tags tests/ctags/Makefile.am tests/ctags/arraylist.js.tags tests/ctags/bracematch.js.tags tests/ctags/bug1950327.js.tags tests/ctags/bug2888482.js.tags tests/ctags/bug3036476.js.tags tests/ctags/bug3571233.js.tags tests/ctags/complex-return.js.tags tests/ctags/js-class-related-unterminated.js.tags tests/ctags/js-scope.js.tags tests/ctags/js-signature.js tests/ctags/js-signature.js.tags tests/ctags/js-sub-block-scope.js.tags tests/ctags/js-unknown-construct-nesting.js.tags tests/ctags/jsFunc_tutorial.js.tags tests/ctags/no_terminator.js.tags tests/ctags/parenthesis-rvalue.js.tags tests/ctags/regexp.js.tags tests/ctags/secondary_fcn_name.js.tags tests/ctags/shebang.js.tags tests/ctags/simple.js.tags tests/ctags/ui5.controller.js.tags
Modified: tagmanager/ctags/js.c 147 lines changed, 103 insertions(+), 44 deletions(-) =================================================================== @@ -219,7 +219,7 @@ static void deleteToken (tokenInfo *const token) * Tag generation functions */
-static void makeJsTag (tokenInfo *const token, const jsKind kind) +static void makeJsTag (tokenInfo *const token, const jsKind kind, vString *const signature) { if (JsKinds [kind].enabled && ! token->ignoreTag ) { @@ -256,14 +256,30 @@ static void makeJsTag (tokenInfo *const token, const jsKind kind) e.extensionFields.scope[1] = vStringValue (fullscope); }
- makeTagEntry (&e); + if (signature && vStringLength(signature)) + { + size_t i; + /* sanitize signature by replacing all control characters with a + * space (because it's simple). + * there should never be any junk in a valid signature, but who + * knows what the user wrote and CTags doesn't cope well with weird + * characters. */ + for (i = 0; i < signature->length; i++) + { + unsigned char c = (unsigned char) signature->buffer[i]; + if (c < 0x20 /* below space */ || c == 0x7F /* DEL */) + signature->buffer[i] = ' '; + } + e.extensionFields.arglist = vStringValue(signature); + }
+ makeTagEntry (&e); vStringDelete (fullscope); } }
-static void makeClassTag (tokenInfo *const token) -{ +static void makeClassTag (tokenInfo *const token, vString *const signature) +{ vString * fulltag;
if ( ! token->ignoreTag ) @@ -283,14 +299,14 @@ static void makeClassTag (tokenInfo *const token) if ( ! stringListHas(ClassNames, vStringValue (fulltag)) ) { stringListAdd (ClassNames, vStringNewCopy (fulltag)); - makeJsTag (token, JSTAG_CLASS); + makeJsTag (token, JSTAG_CLASS, signature); } vStringDelete (fulltag); } }
-static void makeFunctionTag (tokenInfo *const token) -{ +static void makeFunctionTag (tokenInfo *const token, vString *const signature) +{ vString * fulltag;
if ( ! token->ignoreTag ) @@ -310,7 +326,7 @@ static void makeFunctionTag (tokenInfo *const token) if ( ! stringListHas(FunctionNames, vStringValue (fulltag)) ) { stringListAdd (FunctionNames, vStringNewCopy (fulltag)); - makeJsTag (token, JSTAG_FUNCTION); + makeJsTag (token, JSTAG_FUNCTION, signature); } vStringDelete (fulltag); } @@ -390,8 +406,7 @@ static void parseIdentifier (vString *const string, const int firstChar) c = fileGetc (); } while (isIdentChar (c)); vStringTerminate (string); - if (!isspace (c)) - fileUngetc (c); /* unget non-identifier character */ + fileUngetc (c); /* unget non-identifier character */ }
static keywordId analyzeToken (vString *const name) @@ -404,24 +419,34 @@ static keywordId analyzeToken (vString *const name) return result; }
-static void readToken (tokenInfo *const token) +static void readTokenFull (tokenInfo *const token, vString *const repr) { int c; + int i;
token->type = TOKEN_UNDEFINED; token->keyword = KEYWORD_NONE; vStringClear (token->string);
getNextChar: + i = 0; do { c = fileGetc (); + i++; } while (c == '\t' || c == ' ' || c == '\n');
token->lineNumber = getSourceLineNumber (); token->filePosition = getInputFilePosition ();
+ if (repr) + { + if (i > 1) + vStringPut (repr, ' '); + vStringPut (repr, c); + } + switch (c) { case EOF: longjmp (Exception, (int)ExceptionEOF); break; @@ -443,6 +468,11 @@ static void readToken (tokenInfo *const token) parseString (token->string, c); token->lineNumber = getSourceLineNumber (); token->filePosition = getInputFilePosition (); + if (repr) + { + vStringCat (repr, token->string); + vStringPut (repr, c); + } break;
case '\': @@ -482,6 +512,8 @@ static void readToken (tokenInfo *const token) } else { + if (repr) /* remove the / we added */ + repr->buffer[--repr->length] = 0; if (d == '*') { do @@ -533,6 +565,8 @@ static void readToken (tokenInfo *const token) token->type = TOKEN_IDENTIFIER; else token->type = TOKEN_KEYWORD; + if (repr && vStringLength (token->string) > 1) + vStringCatS (repr, vStringValue (token->string) + 1); } break; } @@ -540,6 +574,11 @@ static void readToken (tokenInfo *const token) LastTokenType = token->type; }
+static void readToken (tokenInfo *const token) +{ + readTokenFull (token, NULL); +} + static void copyToken (tokenInfo *const dest, tokenInfo *const src) { dest->nestLevel = src->nestLevel; @@ -555,7 +594,7 @@ static void copyToken (tokenInfo *const dest, tokenInfo *const src) * Token parsing functions */
-static void skipArgumentList (tokenInfo *const token) +static void skipArgumentList (tokenInfo *const token, vString *const repr) { int nest_level = 0;
@@ -569,9 +608,11 @@ static void skipArgumentList (tokenInfo *const token) if (isType (token, TOKEN_OPEN_PAREN)) /* arguments? */ { nest_level++; + if (repr) + vStringPut (repr, '('); while (! (isType (token, TOKEN_CLOSE_PAREN) && (nest_level == 0))) { - readToken (token); + readTokenFull (token, repr); if (isType (token, TOKEN_OPEN_PAREN)) { nest_level++; @@ -661,7 +702,7 @@ static boolean findCmdTerm (tokenInfo *const token) } else if ( isType (token, TOKEN_OPEN_PAREN) ) { - skipArgumentList(token); + skipArgumentList(token, NULL); } else if ( isType (token, TOKEN_OPEN_SQUARE) ) { @@ -698,7 +739,7 @@ static void parseSwitch (tokenInfo *const token) * Handle nameless functions, these will only * be considered methods. */ - skipArgumentList(token); + skipArgumentList(token, NULL); }
if (isType (token, TOKEN_OPEN_CURLY)) @@ -742,7 +783,7 @@ static boolean parseLoop (tokenInfo *const token, tokenInfo *const parent) * Handle nameless functions, these will only * be considered methods. */ - skipArgumentList(token); + skipArgumentList(token, NULL); }
if (isType (token, TOKEN_OPEN_CURLY)) @@ -792,7 +833,7 @@ static boolean parseLoop (tokenInfo *const token, tokenInfo *const parent) * Handle nameless functions, these will only * be considered methods. */ - skipArgumentList(token); + skipArgumentList(token, NULL); } if (! isType (token, TOKEN_SEMICOLON)) is_terminated = FALSE; @@ -861,7 +902,7 @@ static boolean parseIf (tokenInfo *const token, tokenInfo *const parent) * Handle nameless functions, these will only * be considered methods. */ - skipArgumentList(token); + skipArgumentList(token, NULL); }
if (isType (token, TOKEN_OPEN_CURLY)) @@ -886,6 +927,7 @@ static boolean parseIf (tokenInfo *const token, tokenInfo *const parent) static void parseFunction (tokenInfo *const token) { tokenInfo *const name = newToken (); + vString *const signature = vStringNew (); boolean is_class = FALSE;
/* @@ -909,19 +951,20 @@ static void parseFunction (tokenInfo *const token) }
if ( isType (token, TOKEN_OPEN_PAREN) ) - skipArgumentList(token); + skipArgumentList(token, signature);
if ( isType (token, TOKEN_OPEN_CURLY) ) { is_class = parseBlock (token, name); if ( is_class ) - makeClassTag (name); + makeClassTag (name, signature); else - makeFunctionTag (name); + makeFunctionTag (name, signature); }
findCmdTerm (token);
+ vStringDelete (signature); deleteToken (name); }
@@ -1062,17 +1105,19 @@ static boolean parseMethods (tokenInfo *const token, tokenInfo *const class) readToken (token); if ( isKeyword (token, KEYWORD_function) ) { + vString *const signature = vStringNew (); + readToken (token); if ( isType (token, TOKEN_OPEN_PAREN) ) { - skipArgumentList(token); + skipArgumentList(token, signature); }
if (isType (token, TOKEN_OPEN_CURLY)) { has_methods = TRUE; addToScope (name, class->string); - makeJsTag (name, JSTAG_METHOD); + makeJsTag (name, JSTAG_METHOD, signature); parseBlock (token, name);
/* @@ -1081,6 +1126,8 @@ static boolean parseMethods (tokenInfo *const token, tokenInfo *const class) */ readToken (token); } + + vStringDelete (signature); } else { @@ -1101,7 +1148,7 @@ static boolean parseMethods (tokenInfo *const token, tokenInfo *const class) } else if (isType (token, TOKEN_OPEN_PAREN)) { - skipArgumentList (token); + skipArgumentList (token, NULL); } else if (isType (token, TOKEN_OPEN_SQUARE)) { @@ -1117,9 +1164,9 @@ static boolean parseMethods (tokenInfo *const token, tokenInfo *const class) has_methods = TRUE; addToScope (name, class->string); if (has_child_methods) - makeJsTag (name, JSTAG_CLASS); + makeJsTag (name, JSTAG_CLASS, NULL); else - makeJsTag (name, JSTAG_PROPERTY); + makeJsTag (name, JSTAG_PROPERTY, NULL); } } } @@ -1256,7 +1303,7 @@ static boolean parseStatement (tokenInfo *const token, tokenInfo *const parent, * } * */ - makeClassTag (name); + makeClassTag (name, NULL); is_class = TRUE;
/* @@ -1271,9 +1318,10 @@ static boolean parseStatement (tokenInfo *const token, tokenInfo *const parent, readToken (token); if ( isKeyword(token, KEYWORD_NONE) ) { + vString *const signature = vStringNew (); + vStringCopy(saveScope, token->scope); addToScope(token, name->string); - makeJsTag (token, JSTAG_METHOD);
readToken (method_body_token); vStringCopy (method_body_token->scope, token->scope); @@ -1283,11 +1331,15 @@ static boolean parseStatement (tokenInfo *const token, tokenInfo *const parent, isType (method_body_token, TOKEN_OPEN_CURLY)) ) { if ( isType (method_body_token, TOKEN_OPEN_PAREN) ) - skipArgumentList(method_body_token); + skipArgumentList(method_body_token, + vStringLength (signature) == 0 ? signature : NULL); else readToken (method_body_token); }
+ makeJsTag (token, JSTAG_METHOD, signature); + vStringDelete (signature); + if ( isType (method_body_token, TOKEN_OPEN_CURLY)) { parseBlock (method_body_token, token); @@ -1329,7 +1381,7 @@ static boolean parseStatement (tokenInfo *const token, tokenInfo *const parent, }
if ( isType (token, TOKEN_OPEN_PAREN) ) - skipArgumentList(token); + skipArgumentList(token, NULL);
if ( isType (token, TOKEN_OPEN_SQUARE) ) skipArrayList(token); @@ -1365,7 +1417,7 @@ static boolean parseStatement (tokenInfo *const token, tokenInfo *const parent, * var g_var2; */ if (isType (token, TOKEN_SEMICOLON)) - makeJsTag (name, JSTAG_VARIABLE); + makeJsTag (name, JSTAG_VARIABLE, NULL); } /* * Statement has ended. @@ -1390,6 +1442,8 @@ static boolean parseStatement (tokenInfo *const token, tokenInfo *const parent,
if ( isKeyword (token, KEYWORD_function) ) { + vString *const signature = vStringNew (); + readToken (token);
if ( isKeyword (token, KEYWORD_NONE) && @@ -1417,7 +1471,7 @@ static boolean parseStatement (tokenInfo *const token, tokenInfo *const parent, }
if ( isType (token, TOKEN_OPEN_PAREN) ) - skipArgumentList(token); + skipArgumentList(token, signature);
if (isType (token, TOKEN_OPEN_CURLY)) { @@ -1429,23 +1483,25 @@ static boolean parseStatement (tokenInfo *const token, tokenInfo *const parent, */ if ( is_inside_class ) { - makeJsTag (name, JSTAG_METHOD); + makeJsTag (name, JSTAG_METHOD, signature); if ( vStringLength(secondary_name->string) > 0 ) - makeFunctionTag (secondary_name); + makeFunctionTag (secondary_name, signature); parseBlock (token, name); } else { is_class = parseBlock (token, name); if ( is_class ) - makeClassTag (name); + makeClassTag (name, signature); else - makeFunctionTag (name); + makeFunctionTag (name, signature);
if ( vStringLength(secondary_name->string) > 0 ) - makeFunctionTag (secondary_name); + makeFunctionTag (secondary_name, signature); } } + + vStringDelete (signature); } else if (isType (token, TOKEN_OPEN_CURLY)) { @@ -1460,7 +1516,7 @@ static boolean parseStatement (tokenInfo *const token, tokenInfo *const parent, */ has_methods = parseMethods(token, name); if (has_methods) - makeJsTag (name, JSTAG_CLASS); + makeJsTag (name, JSTAG_CLASS, NULL); else { /* @@ -1496,7 +1552,7 @@ static boolean parseStatement (tokenInfo *const token, tokenInfo *const parent, if ( ! stringListHas(FunctionNames, vStringValue (fulltag)) && ! stringListHas(ClassNames, vStringValue (fulltag)) ) { - makeJsTag (name, JSTAG_VARIABLE); + makeJsTag (name, JSTAG_VARIABLE, NULL); } vStringDelete (fulltag); } @@ -1524,7 +1580,7 @@ static boolean parseStatement (tokenInfo *const token, tokenInfo *const parent,
readToken (token); if ( isType (token, TOKEN_OPEN_PAREN) ) - skipArgumentList(token); + skipArgumentList(token, NULL);
if (isType (token, TOKEN_SEMICOLON)) { @@ -1532,15 +1588,18 @@ static boolean parseStatement (tokenInfo *const token, tokenInfo *const parent, { if ( is_var ) { - makeJsTag (name, JSTAG_VARIABLE); + makeJsTag (name, JSTAG_VARIABLE, NULL); } else { if ( is_class ) { - makeClassTag (name); + makeClassTag (name, NULL); } else { - makeFunctionTag (name); + /* FIXME: we cannot really get a meaningful + * signature from a `new Function()` call, + * so for now just don't set any */ + makeFunctionTag (name, NULL); } } } @@ -1584,7 +1643,7 @@ static boolean parseStatement (tokenInfo *const token, tokenInfo *const parent, if ( ! stringListHas(FunctionNames, vStringValue (fulltag)) && ! stringListHas(ClassNames, vStringValue (fulltag)) ) { - makeJsTag (name, JSTAG_VARIABLE); + makeJsTag (name, JSTAG_VARIABLE, NULL); } vStringDelete (fulltag); }
Modified: tests/ctags/1795612.js.tags 4 lines changed, 2 insertions(+), 2 deletions(-) =================================================================== @@ -1,5 +1,5 @@ # format=tagmanager RPC�1�Test�0 -asyncMethod�128�Test.RPC�0 -asyncRequest�128�Test.RPC�0 +asyncMethod�128�( uri, method, params, callback)�Test.RPC�0 +asyncRequest�128�( uri, data, callback)�Test.RPC�0 request_id�64�Test.RPC�0
Modified: tests/ctags/1850914.js.tags 2 lines changed, 1 insertions(+), 1 deletions(-) =================================================================== @@ -1,4 +1,4 @@ # format=tagmanager -objLiteralMethod�128�objectLiteral�0 +objLiteralMethod�128�()�objectLiteral�0 objLiteralProperty�64�objectLiteral�0 objectLiteral�1�0
Modified: tests/ctags/1878155.js.tags 2 lines changed, 1 insertions(+), 1 deletions(-) =================================================================== @@ -1,4 +1,4 @@ # format=tagmanager RE�1�0 foo�16384�0 -my_function�16�0 +my_function�16�()�0
Modified: tests/ctags/1880687.js.tags 80 lines changed, 40 insertions(+), 40 deletions(-) =================================================================== @@ -1,42 +1,42 @@ # format=tagmanager MyClass�1�0 -MyClass_sub1�128�MyClass�0 -MyClass_sub2�128�MyClass�0 -a�16�0 -aa�16�0 -aa_sub1�16�aa�0 -aa_sub2�16�aa�0 -b�16�0 -baz�16�f�0 -c�16�0 -d�16�0 -e�16�0 -f�16�0 -g�16�0 -h�16�0 -i�16�0 -j�16�0 -k�16�0 -l�16�0 -m�16�0 -n�16�0 -o�16�0 -p�16�0 -q�16�0 -r�16�0 -s�16�0 -t�16�0 -u�16�0 -v�16�0 -w�16�0 -w_sub1�16�w�0 -w_sub2�16�w�0 -x�16�0 -x_sub1�16�x�0 -x_sub2�16�x�0 -y�16�0 -y_sub1�16�y�0 -y_sub2�16�y�0 -z�16�0 -z_sub1�16�z�0 -z_sub2�16�z�0 +MyClass_sub1�128�(x)�MyClass�0 +MyClass_sub2�128�(x)�MyClass�0 +a�16�(flag)�0 +aa�16�()�0 +aa_sub1�16�()�aa�0 +aa_sub2�16�()�aa�0 +b�16�()�0 +baz�16�()�f�0 +c�16�(flag)�0 +d�16�()�0 +e�16�(flag)�0 +f�16�()�0 +g�16�(flag)�0 +h�16�()�0 +i�16�(flag)�0 +j�16�()�0 +k�16�(flag)�0 +l�16�()�0 +m�16�(flag)�0 +n�16�()�0 +o�16�()�0 +p�16�()�0 +q�16�()�0 +r�16�(flag)�0 +s�16�()�0 +t�16�(flag)�0 +u�16�(flag)�0 +v�16�(flag)�0 +w�16�()�0 +w_sub1�16�(x)�w�0 +w_sub2�16�()�w�0 +x�16�()�0 +x_sub1�16�()�x�0 +x_sub2�16�()�x�0 +y�16�()�0 +y_sub1�16�()�y�0 +y_sub2�16�()�y�0 +z�16�()�0 +z_sub1�16�()�z�0 +z_sub2�16�()�z�0
Modified: tests/ctags/2023624.js.tags 4 lines changed, 2 insertions(+), 2 deletions(-) =================================================================== @@ -1,3 +1,3 @@ # format=tagmanager -f1�16�0 -f2�16�0 +f1�16�()�0 +f2�16�()�0
Modified: tests/ctags/3470609.js.tags 6 lines changed, 3 insertions(+), 3 deletions(-) =================================================================== @@ -1,13 +1,13 @@ # format=tagmanager array�64�root�0 decimal�64�root�0 -f�16�0 +f�16�()�0 id�64�root�0 -method�128�root�0 +method�128�()�root�0 neg�64�root�0 parentheses�64�root�0 root�1�0 string�64�root�0 -subFunction�128�root.subObject�0 +subFunction�128�()�root.subObject�0 subObject�1�root�0 subProperty�64�root.subObject�0
Modified: tests/ctags/Makefile.am 1 lines changed, 1 insertions(+), 0 deletions(-) =================================================================== @@ -161,6 +161,7 @@ test_sources = \ java_enum.java \ js-class-related-unterminated.js \ js-scope.js \ + js-signature.js \ js-sub-block-scope.js \ js-unknown-construct-nesting.js \ jsFunc_tutorial.js \
Modified: tests/ctags/arraylist.js.tags 4 lines changed, 2 insertions(+), 2 deletions(-) =================================================================== @@ -3,7 +3,7 @@ a b�16384�0 bar�64�class.test1�0 c�16384�0 -class�1�0 +class�1�()�0 foo�64�class.test1�0 test1�1�class�0 -test3�128�class�0 +test3�128�()�class�0
Modified: tests/ctags/bracematch.js.tags 10 lines changed, 5 insertions(+), 5 deletions(-) =================================================================== @@ -1,7 +1,7 @@ # format=tagmanager -Container�16�0 +Container�16�()�0 MyClass�1�0 -insert�128�MyClass�0 -wrap�128�MyClass�0 -x�16�Container�0 -y�16�Container�0 +insert�128�(element, insertions)�MyClass�0 +wrap�128�(element, wrapper, attributes)�MyClass�0 +x�16�()�Container�0 +y�16�()�Container�0
Modified: tests/ctags/bug1950327.js.tags 12 lines changed, 6 insertions(+), 6 deletions(-) =================================================================== @@ -2,13 +2,13 @@ *�64�container.dirtyTab�0 Different�1�0 TabChrome�1�0 -createTabTile�128�Different�0 -createTabTile�128�TabChrome�0 -destroyTabTile�128�Different�0 -destroyTabTile�128�TabChrome�0 +createTabTile�128�(browser)�Different�0 +createTabTile�128�(browser)�TabChrome�0 +destroyTabTile�128�(tile)�Different�0 +destroyTabTile�128�(tile)�TabChrome�0 dirtyTab�1�container�0 -init�128�Different�0 -init�128�TabChrome�0 +init�128�()�Different�0 +init�128�()�TabChrome�0 snapshot�64�container.dirtyTab�0 title�64�container.dirtyTab�0 url�64�container.dirtyTab�0
Modified: tests/ctags/bug2888482.js.tags 4 lines changed, 2 insertions(+), 2 deletions(-) =================================================================== @@ -1,3 +1,3 @@ # format=tagmanager -onsubmit�16�editFormEl�0 -scrollEditBox�16�0 +onsubmit�16�()�editFormEl�0 +scrollEditBox�16�()�0
Modified: tests/ctags/bug3036476.js.tags 6 lines changed, 3 insertions(+), 3 deletions(-) =================================================================== @@ -1,5 +1,5 @@ # format=tagmanager container�16384�0 -method1�16�container.object�0 -method2�16�container.object�0 -object�16�container�0 +method1�16�()�container.object�0 +method2�16�()�container.object�0 +object�16�()�container�0
Modified: tests/ctags/bug3571233.js.tags 18 lines changed, 9 insertions(+), 9 deletions(-) =================================================================== @@ -1,11 +1,11 @@ # format=tagmanager MyClass�1�0 -MyClass�16�0 -function1�16�0 -function2�16�0 -method2�128�MyClass�0 -nestedFunction1�16�MyClass.method2�0 -nestedFunction2�16�MyClass.method2�0 -nestedFunction3�16�function1�0 -nestedFunction4�16�function2�0 -nestedFunction5�16�function2�0 +MyClass�16�()�0 +function1�16�()�0 +function2�16�()�0 +method2�128�()�MyClass�0 +nestedFunction1�16�()�MyClass.method2�0 +nestedFunction2�16�()�MyClass.method2�0 +nestedFunction3�16�()�function1�0 +nestedFunction4�16�()�function2�0 +nestedFunction5�16�()�function2�0
Modified: tests/ctags/complex-return.js.tags 34 lines changed, 17 insertions(+), 17 deletions(-) =================================================================== @@ -1,18 +1,18 @@ # format=tagmanager -c2m1�128�class2�0 -c2m2�128�class2�0 -c2m3�128�class2�0 -c3m1�128�class3�0 -c3m2�128�class3�0 -class1�1�0 -class2�1�0 -class3�1�0 -class4�1�0 -func1�16�0 -func2�16�0 -method1�128�class1�0 -method1�128�class4�0 -method2�128�class1�0 -method2�128�class4�0 -method3�128�class1�0 -method4�128�class1�0 +c2m1�128�()�class2�0 +c2m2�128�(f)�class2�0 +c2m3�128�(f)�class2�0 +c3m1�128�()�class3�0 +c3m2�128�()�class3�0 +class1�1�()�0 +class2�1�()�0 +class3�1�()�0 +class4�1�()�0 +func1�16�()�0 +func2�16�()�0 +method1�128�()�class1�0 +method1�128�()�class4�0 +method2�128�()�class1�0 +method2�128�()�class4�0 +method3�128�()�class1�0 +method4�128�()�class1�0
Modified: tests/ctags/js-class-related-unterminated.js.tags 24 lines changed, 12 insertions(+), 12 deletions(-) =================================================================== @@ -1,16 +1,16 @@ # format=tagmanager A�64�Cls�0 -B�1�Cls�0 -C�1�Cls�0 +B�1�(a, b)�Cls�0 +C�1�()�Cls�0 Cls�1�0 -Sub�1�Cls.B�0 +Sub�1�()�Cls.B�0 dyn1�128�Cls.B.Sub�0 -m1�128�Cls.B�0 -m2�128�Cls.B�0 -m3�128�Cls.B�0 -m4�128�Cls.B�0 -m5�128�Cls.B�0 -m6�128�Cls.B�0 -main�16�0 -n1�128�Cls.C�0 -n2�128�Cls.C�0 +m1�128�(a)�Cls.B�0 +m2�128�(b)�Cls.B�0 +m3�128�(c)�Cls.B�0 +m4�128�(d)�Cls.B�0 +m5�128�(e)�Cls.B�0 +m6�128�(f)�Cls.B�0 +main�16�()�0 +n1�128�()�Cls.C�0 +n2�128�()�Cls.C�0
Modified: tests/ctags/js-scope.js.tags 6 lines changed, 3 insertions(+), 3 deletions(-) =================================================================== @@ -1,4 +1,4 @@ # format=tagmanager -A�1�0 -m1�128�A�0 -m2�128�A�0 +A�1�()�0 +m1�128�()�A�0 +m2�128�()�A�0
Modified: tests/ctags/js-signature.js 38 lines changed, 38 insertions(+), 0 deletions(-) =================================================================== @@ -0,0 +1,38 @@ + +function f1() { +} +function f2(arg1, arg2) { +} +function f3( + arg1, // first + arg2, // second + arg3 // last +) { + // ... +} +function f4(a, b, c) { +} + +function Cls(name) { + this.name = name; +} +Cls.prototype = { + get_name: function() { + return this.name; + }, + set_name: function(name) { + this.name = name; + }, +} + +Cls.prototype.hello = function(tpl) { + if (tpl == undefined) tpl = "hello {}"; + return tpl.replace ('{}', this.name); +} + +main = function() { + c = new Cls("John"); + print(c.hello()); +} + +main();
Modified: tests/ctags/js-signature.js.tags 10 lines changed, 10 insertions(+), 0 deletions(-) =================================================================== @@ -0,0 +1,10 @@ +# format=tagmanager +Cls�1�(name)�0 +f1�16�()�0 +f2�16�(arg1, arg2)�0 +f3�16�( arg1, arg2, arg3 )�0 +f4�16�(a, b, c)�0 +get_name�128�()�Cls�0 +hello�128�(tpl)�Cls�0 +main�16�()�0 +set_name�128�(name)�Cls�0
Modified: tests/ctags/js-sub-block-scope.js.tags 14 lines changed, 7 insertions(+), 7 deletions(-) =================================================================== @@ -1,8 +1,8 @@ # format=tagmanager -bar�16�parent�0 -foo�16�parent�0 -hello�16�parent.foo�0 -hello2�16�parent.bar�0 -hi�16�parent.foo�0 -hi2�16�parent.bar�0 -parent�16�0 +bar�16�()�parent�0 +foo�16�()�parent�0 +hello�16�()�parent.foo�0 +hello2�16�()�parent.bar�0 +hi�16�()�parent.foo�0 +hi2�16�()�parent.bar�0 +parent�16�()�0
Modified: tests/ctags/js-unknown-construct-nesting.js.tags 6 lines changed, 3 insertions(+), 3 deletions(-) =================================================================== @@ -1,5 +1,5 @@ # format=tagmanager -aa�128�o�0 -bb�128�o�0 -cc�128�o�0 +aa�128�()�o�0 +bb�128�(a)�o�0 +cc�128�()�o�0 o�1�0
Modified: tests/ctags/jsFunc_tutorial.js.tags 88 lines changed, 44 insertions(+), 44 deletions(-) =================================================================== @@ -1,30 +1,30 @@ # format=tagmanager -Ball1�16�0 -Ball3�16�0 -D1�16�0 -D2�16�0 -D2A�16�0 +Ball1�16�()�0 +Ball3�16�()�0 +D1�16�(a, b)�0 +D2�16�(a, b)�0 +D2A�16�(a, b)�0 D3�16�0 D4�16�0 -D5�16�0 -DT1�16�0 -DT2�16�0 -DT2A�16�0 -DT3�16�0 -DT4�1�0 -DT5�1�0 -DT6�1�0 -DT7�1�0 -DT7A�1�0 -DT8�1�0 -DT9�1�0 -PT1�16�0 -PT2�1�0 -PT3�1�0 -add�16�myObject�0 -addSalary�128�PT3�0 -addSalaryFunction�1�0 -addSalaryFunctionDT9�1�0 +D5�16�(myOperator)�0 +DT1�16�()�0 +DT2�16�(message)�0 +DT2A�16�(message)�0 +DT3�16�()�0 +DT4�1�(message, specifiedName)�0 +DT5�1�(color, specifiedName, owner, weight)�0 +DT6�1�(name, salary, mySupervisor)�0 +DT7�1�(name, salary)�0 +DT7A�1�(name, salary)�0 +DT8�1�(name, salary)�0 +DT9�1�(name, salary)�0 +PT1�16�()�0 +PT2�1�(name, color)�0 +PT3�1�(name, salary)�0 +add�16�(a,b)�myObject�0 +addSalary�128�(addition)�PT3�0 +addSalaryFunction�1�(addition)�0 +addSalaryFunctionDT9�1�(addition)�0 ball0�16384�0 ball1�16384�0 ball2�16384�0 @@ -40,32 +40,32 @@ boss boss1�16384�0 boss2�16384�0 boss3�16384�0 -calculate�16�getHalfOf7�0 -calculate�16�getHalfOf8�0 -calculate8�16�0 -getHalfOf7�16�0 -getHalfOf8�16�0 -getSalary�128�DT7�0 -getSalary�128�DT7A�0 -getSalary�128�DT8�0 -getSalary�128�PT3�0 -getSalaryFunctionDT9�16�0 +calculate�16�(number)�getHalfOf7�0 +calculate�16�(number)�getHalfOf8�0 +calculate8�16�(number)�0 +getHalfOf7�16�(num1, num2, num3)�0 +getHalfOf8�16�(num1, num2, num3)�0 +getSalary�128�()�DT7�0 +getSalary�128�()�DT7A�0 +getSalary�128�()�DT8�0 +getSalary�128�()�PT3�0 +getSalaryFunctionDT9�16�()�0 livesIn�128�PT2�0 manager�16384�0 -myFunction4�16�0 -myFunction5�16�0 -myFunction6�16�0 -myFunction6A�16�0 -myFunction6AE�16�0 -myFunction6B�16�0 -myFunction6E�16�0 +myFunction4�16�(message)�0 +myFunction5�16�()�0 +myFunction6�16�()�0 +myFunction6A�16�()�0 +myFunction6AE�16�()�0 +myFunction6B�16�()�0 +myFunction6E�16�()�0 myObject�16384�0 my_global_var1�16384�0 object1�16384�0 object2�16384�0 object3�16384�0 price�128�PT2�0 -savedFunc6B�16�0 -sayName4A�16�0 +savedFunc6B�16�()�0 +sayName4A�16�(name)�0 teamLeader�16384�0 -theAdd�16�0 +theAdd�16�(a, b)�0
Modified: tests/ctags/no_terminator.js.tags 10 lines changed, 5 insertions(+), 5 deletions(-) =================================================================== @@ -1,6 +1,6 @@ # format=tagmanager -checkForUpdate�16�0 -checkForUpdate2�16�0 -getParent�16�0 -ts_resortTable�16�0 -ts_sort_currency�16�0 +checkForUpdate�16�()�0 +checkForUpdate2�16�()�0 +getParent�16�(el, pTagName)�0 +ts_resortTable�16�(lnk)�0 +ts_sort_currency�16�(a,b)�0
Modified: tests/ctags/parenthesis-rvalue.js.tags 24 lines changed, 12 insertions(+), 12 deletions(-) =================================================================== @@ -5,19 +5,19 @@ a1 a2�16384�0 b�64�d1�0 b�64�d2�0 -b1�16�0 -b1sub�16�b1�0 -b2�16�0 -b2sub�16�b2�0 -b3�16�0 -b3sub�16�b3�0 +b1�16�()�0 +b1sub�16�()�b1�0 +b2�16�()�0 +b2sub�16�()�b2�0 +b3�16�()�0 +b3sub�16�()�b3�0 c1�16384�0 c2�16384�0 d1�1�0 d2�1�0 -e1�16�0 -e1sub�16�e1�0 -e2�16�0 -e2sub�16�e2�0 -e3�16�0 -e3sub�16�e3�0 +e1�16�()�0 +e1sub�16�()�e1�0 +e2�16�()�0 +e2sub�16�()�e2�0 +e3�16�()�0 +e3sub�16�()�e3�0
Modified: tests/ctags/regexp.js.tags 4 lines changed, 2 insertions(+), 2 deletions(-) =================================================================== @@ -1,6 +1,6 @@ # format=tagmanager -func1�16�0 -func2�16�0 +func1�16�()�0 +func2�16�()�0 no_re1�16384�0 no_re2�16384�0 no_re3�16384�0
Modified: tests/ctags/secondary_fcn_name.js.tags 8 lines changed, 4 insertions(+), 4 deletions(-) =================================================================== @@ -1,6 +1,6 @@ # format=tagmanager -D1�16�0 -D2�16�0 -D2A�16�0 +D1�16�(a, b)�0 +D2�16�(a, b)�0 +D2A�16�(a, b)�0 my_global_var1�16384�0 -theAdd�16�0 +theAdd�16�(a, b)�0
Modified: tests/ctags/shebang.js.tags 2 lines changed, 1 insertions(+), 1 deletions(-) =================================================================== @@ -1,2 +1,2 @@ # format=tagmanager -f�16�0 +f�16�()�0
Modified: tests/ctags/simple.js.tags 34 lines changed, 17 insertions(+), 17 deletions(-) =================================================================== @@ -1,25 +1,25 @@ # format=tagmanager Database�1�0 -ValidClassOne�1�testlib.extras�0 -ValidClassTwo�1�0 -calculate�16�getHalfOf�0 +ValidClassOne�1�(a,b)�testlib.extras�0 +ValidClassTwo�1�()�0 +calculate�16�(number)�getHalfOf�0 executeQueryString�128�Database�0 -getHalfOf�16�0 +getHalfOf�16�(num1, num2, num3)�0 getTodaysDate�128�Database�0 -innerThree�16�validFunctionThree�0 -invalidInnerFunction�16�0 +innerThree�16�(a,b)�validFunctionThree�0 +invalidInnerFunction�16�(a,b)�0 my_global_var1�16384�0 my_global_var2�16384�0 my_global_var3�16384�0 -my_global_var4�16�0 +my_global_var4�16�()�0 my_global_var4�16384�0 -validFunctionFive�16�testlib�0 -validFunctionFour�16�extra�0 -validFunctionOne�16�0 -validFunctionSix�16�testlib.core�0 -validFunctionThree�16�0 -validFunctionTwo�16�0 -validMethodFour�128�ValidClassTwo�0 -validMethodOne�128�testlib.extras.ValidClassOne�0 -validMethodThree�128�ValidClassTwo�0 -validMethodTwo�128�testlib.extras.ValidClassOne�0 +validFunctionFive�16�(a,b)�testlib�0 +validFunctionFour�16�(a,b)�extra�0 +validFunctionOne�16�(a,b)�0 +validFunctionSix�16�(a,b)�testlib.core�0 +validFunctionThree�16�(a,b)�0 +validFunctionTwo�16�(a,b)�0 +validMethodFour�128�()�ValidClassTwo�0 +validMethodOne�128�(a,b)�testlib.extras.ValidClassOne�0 +validMethodThree�128�()�ValidClassTwo�0 +validMethodTwo�128�(a,b)�testlib.extras.ValidClassOne�0
Modified: tests/ctags/ui5.controller.js.tags 10 lines changed, 5 insertions(+), 5 deletions(-) =================================================================== @@ -1,6 +1,6 @@ # format=tagmanager -onInit�128�app.my_form�0 -refreshForm�128�app.my_form�0 -refreshSettlements�128�app.my_form�0 -setRefreshed�128�app.my_form�0 -successfulRequest�128�app.my_form�0 +onInit�128�()�app.my_form�0 +refreshForm�128�(AUFNR)�app.my_form�0 +refreshSettlements�128�(AUFNR)�app.my_form�0 +setRefreshed�128�(value)�app.my_form�0 +successfulRequest�128�(data)�app.my_form�0
-------------- This E-Mail was brought to you by github_commit_mail.py (Source: https://github.com/geany/infrastructure).