Python: fix parsing of variables assigned to triple quoted strings
Fixes #262.
This commit is contained in:
parent
0e5d699a13
commit
d8aaa59f9a
@ -727,6 +727,38 @@ static void findPythonTags (void)
|
|||||||
|
|
||||||
checkParent(nesting_levels, indent, parent);
|
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. */
|
/* Deal with multiline string start. */
|
||||||
longstring = find_triple_start(cp, &longStringLiteral);
|
longstring = find_triple_start(cp, &longStringLiteral);
|
||||||
if (longstring)
|
if (longstring)
|
||||||
@ -787,40 +819,6 @@ static void findPythonTags (void)
|
|||||||
addNestingLevel(nesting_levels, indent, name, is_class);
|
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 */
|
/* Find and parse imports */
|
||||||
parseImports(line);
|
parseImports(line);
|
||||||
}
|
}
|
||||||
|
|||||||
@ -1,2 +1,3 @@
|
|||||||
# format=tagmanager
|
# format=tagmanager
|
||||||
dummyÌ1Ö0
|
dummyÌ1Ö0
|
||||||
|
include_fileÌ16384Ö0
|
||||||
|
|||||||
Loading…
x
Reference in New Issue
Block a user