mirror of
https://github.com/davidhalter/jedi.git
synced 2026-05-16 21:44:56 +08:00
Use names_dicts now for all completions.
This commit is contained in:
+13
-7
@@ -34,7 +34,7 @@ from jedi.evaluate import compiled
|
|||||||
from jedi.evaluate import imports
|
from jedi.evaluate import imports
|
||||||
from jedi.evaluate.cache import memoize_default
|
from jedi.evaluate.cache import memoize_default
|
||||||
from jedi.evaluate.helpers import FakeName, get_module_names
|
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
|
from jedi.evaluate import analysis
|
||||||
|
|
||||||
# Jedi uses lots and lots of recursion. By setting this a little bit higher, we
|
# 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):
|
def _simple_complete(self, path, dot, like):
|
||||||
if not path and not dot:
|
if not path and not dot:
|
||||||
scope_names_generator = get_names_of_scope(self._evaluator,
|
names_dicts = global_names_dict_generator(
|
||||||
self._parser.user_scope(),
|
self._evaluator,
|
||||||
self._pos)
|
er.wrap(self._evaluator, self._parser.user_scope()),
|
||||||
|
self._pos
|
||||||
|
)
|
||||||
completions = []
|
completions = []
|
||||||
for scope, name_list in scope_names_generator:
|
for names_dict, pos in names_dicts:
|
||||||
for c in name_list:
|
names = list(chain.from_iterable(names_dict.values()))
|
||||||
completions.append((c, scope))
|
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:
|
elif self._get_under_cursor_stmt(path) is None:
|
||||||
return []
|
return []
|
||||||
else:
|
else:
|
||||||
|
|||||||
@@ -293,7 +293,7 @@ class UserContextParser(object):
|
|||||||
|
|
||||||
return scan(self.module()) or self.module()
|
return scan(self.module()) or self.module()
|
||||||
else:
|
else:
|
||||||
return user_stmt.parent
|
return user_stmt.get_parent_scope(include_flows=True)
|
||||||
|
|
||||||
def module(self):
|
def module(self):
|
||||||
return self._parser().module
|
return self._parser().module
|
||||||
|
|||||||
Reference in New Issue
Block a user