1
0
forked from VimPlug/jedi

Goto didn't work well on imports in __init__.py files.

Fixes #956.
This commit is contained in:
Dave Halter
2017-09-11 21:48:37 +02:00
parent c05f1d3ccc
commit 619acbd2ca
10 changed files with 56 additions and 13 deletions

View File

@@ -223,9 +223,9 @@ class Script(object):
:rtype: list of :class:`classes.Definition`
"""
def filter_follow_imports(names):
def filter_follow_imports(names, follow_classes):
for name in names:
if isinstance(name, (imports.ImportName, TreeNameDefinition)):
if isinstance(name, follow_classes):
for context in name.infer():
yield context.name
else:
@@ -233,7 +233,13 @@ class Script(object):
names = self._goto()
if follow_imports:
names = filter_follow_imports(names)
# TODO really, sure? TreeNameDefinition? Should probably not follow
# that.
follow_classes = (imports.ImportName, TreeNameDefinition)
else:
follow_classes = (imports.SubModuleName,)
names = filter_follow_imports(names, follow_classes)
defs = [classes.Definition(self._evaluator, d) for d in set(names)]
return helpers.sorted_definitions(defs)