Use names_dicts now for all completions.

This commit is contained in:
Dave Halter
2015-01-07 23:43:49 +01:00
parent dd40991669
commit f5e687bc22
2 changed files with 14 additions and 8 deletions

View File

@@ -34,7 +34,7 @@ from jedi.evaluate import compiled
from jedi.evaluate import imports
from jedi.evaluate.cache import memoize_default
from jedi.evaluate.helpers import FakeName, get_module_names
from jedi.evaluate.finder import get_names_of_scope, filter_definition_names
from jedi.evaluate.finder import global_names_dict_generator, filter_definition_names
from jedi.evaluate import analysis
# Jedi uses lots and lots of recursion. By setting this a little bit higher, we
@@ -226,13 +226,19 @@ class Script(object):
def _simple_complete(self, path, dot, like):
if not path and not dot:
scope_names_generator = get_names_of_scope(self._evaluator,
self._parser.user_scope(),
self._pos)
names_dicts = global_names_dict_generator(
self._evaluator,
er.wrap(self._evaluator, self._parser.user_scope()),
self._pos
)
completions = []
for scope, name_list in scope_names_generator:
for c in name_list:
completions.append((c, scope))
for names_dict, pos in names_dicts:
names = list(chain.from_iterable(names_dict.values()))
if not names:
continue
names = filter_definition_names(names, self._parser.user_stmt(), pos)
for name in names:
completions.append((name, self._parser.user_scope()))
elif self._get_under_cursor_stmt(path) is None:
return []
else:

View File

@@ -293,7 +293,7 @@ class UserContextParser(object):
return scan(self.module()) or self.module()
else:
return user_stmt.parent
return user_stmt.get_parent_scope(include_flows=True)
def module(self):
return self._parser().module