diff --git a/tagmanager/ctags/python.c b/tagmanager/ctags/python.c index 2eb685f60..3010258f3 100644 --- a/tagmanager/ctags/python.c +++ b/tagmanager/ctags/python.c @@ -727,6 +727,38 @@ static void findPythonTags (void) checkParent(nesting_levels, indent, parent); + /* Find global and class variables */ + variable = findVariable(line); + if (variable) + { + const char *start = variable; + char *arglist; + boolean parent_is_class; + + vStringClear (name); + while (isIdentifierCharacter ((int) *start)) + { + vStringPut (name, (int) *start); + ++start; + } + vStringTerminate (name); + + parent_is_class = constructParentString(nesting_levels, indent, parent); + if (varIsLambda (variable, &arglist)) + { + /* show class members or top-level script lambdas only */ + if (parent_is_class || vStringLength(parent) == 0) + makeFunctionTag (name, parent, parent_is_class, arglist); + eFree (arglist); + } + else + { + /* skip variables in methods */ + if (parent_is_class || vStringLength(parent) == 0) + makeVariableTag (name, parent); + } + } + /* Deal with multiline string start. */ longstring = find_triple_start(cp, &longStringLiteral); if (longstring) @@ -787,40 +819,6 @@ static void findPythonTags (void) addNestingLevel(nesting_levels, indent, name, is_class); } } - /* Find global and class variables */ - variable = findVariable(line); - if (variable) - { - const char *start = variable; - char *arglist; - boolean parent_is_class; - - vStringClear (name); - while (isIdentifierCharacter ((int) *start)) - { - vStringPut (name, (int) *start); - ++start; - } - vStringTerminate (name); - - parent_is_class = constructParentString(nesting_levels, indent, parent); - if (varIsLambda (variable, &arglist)) - { - /* show class members or top-level script lambdas only */ - if (parent_is_class || vStringLength(parent) == 0) - makeFunctionTag (name, parent, parent_is_class, arglist); - if (arglist != NULL) - eFree (arglist); - } - else - { - /* skip variables in methods */ - if (! parent_is_class && vStringLength(parent) > 0) - continue; - - makeVariableTag (name, parent); - } - } /* Find and parse imports */ parseImports(line); } diff --git a/tests/ctags/bug1906062.py.tags b/tests/ctags/bug1906062.py.tags index b31d287f9..afc9afe51 100644 --- a/tests/ctags/bug1906062.py.tags +++ b/tests/ctags/bug1906062.py.tags @@ -1,2 +1,3 @@ # format=tagmanager dummyÌ1Ö0 +include_fileÌ16384Ö0