forked from VimPlug/jedi
On import problem with name completion of modules.
This commit is contained in:
@@ -133,12 +133,12 @@ class Script(object):
|
|||||||
def get_completions(user_stmt, bs):
|
def get_completions(user_stmt, bs):
|
||||||
if user_stmt is None:
|
if user_stmt is None:
|
||||||
module = self._parser.module()
|
module = self._parser.module()
|
||||||
importer = helpers.check_error_statements(
|
importer, only_modules = helpers.check_error_statements(
|
||||||
self._evaluator, module, self._pos
|
self._evaluator, module, self._pos
|
||||||
)
|
)
|
||||||
#print(importer.completion_names(self._evaluator, True))
|
#print(importer.completion_names(self._evaluator, True))
|
||||||
if importer is not None:
|
if importer is not None:
|
||||||
names = importer.completion_names(self._evaluator, True)
|
names = importer.completion_names(self._evaluator, only_modules)
|
||||||
return [(name, module) for name in names]
|
return [(name, module) for name in names]
|
||||||
elif isinstance(user_stmt, pr.Import):
|
elif isinstance(user_stmt, pr.Import):
|
||||||
# TODO this paragraph is necessary, but not sure it works.
|
# TODO this paragraph is necessary, but not sure it works.
|
||||||
|
|||||||
@@ -50,6 +50,7 @@ def importer_from_error_statement(evaluator, module, error_statement, pos):
|
|||||||
|
|
||||||
names = []
|
names = []
|
||||||
level = 0
|
level = 0
|
||||||
|
only_modules = True
|
||||||
for typ, nodes in error_statement.stack:
|
for typ, nodes in error_statement.stack:
|
||||||
if typ == 'dotted_name':
|
if typ == 'dotted_name':
|
||||||
names += check_dotted(nodes)
|
names += check_dotted(nodes)
|
||||||
@@ -61,5 +62,7 @@ def importer_from_error_statement(evaluator, module, error_statement, pos):
|
|||||||
level += len(node.value)
|
level += len(node.value)
|
||||||
elif isinstance(node, pt.Name) and node.end_pos < pos:
|
elif isinstance(node, pt.Name) and node.end_pos < pos:
|
||||||
names.append(node)
|
names.append(node)
|
||||||
|
elif node == 'import' and node.end_pos < pos:
|
||||||
|
only_modules = False
|
||||||
|
|
||||||
return imports.get_importer(evaluator, names, module, level)
|
return imports.get_importer(evaluator, names, module, level), only_modules
|
||||||
|
|||||||
Reference in New Issue
Block a user