forked from VimPlug/jedi
Replace names_dicts with filters in trailer completion.
This commit is contained in:
@@ -1,5 +1,3 @@
|
|||||||
from itertools import chain
|
|
||||||
|
|
||||||
from jedi.parser import token
|
from jedi.parser import token
|
||||||
from jedi.parser import tree
|
from jedi.parser import tree
|
||||||
from jedi import debug
|
from jedi import debug
|
||||||
@@ -10,7 +8,6 @@ from jedi.evaluate import imports
|
|||||||
from jedi.api import keywords
|
from jedi.api import keywords
|
||||||
from jedi.evaluate import compiled
|
from jedi.evaluate import compiled
|
||||||
from jedi.evaluate.helpers import call_of_leaf
|
from jedi.evaluate.helpers import call_of_leaf
|
||||||
from jedi.evaluate.finder import global_names_dict_generator, filter_definition_names
|
|
||||||
from jedi.evaluate.filters import get_global_filters
|
from jedi.evaluate.filters import get_global_filters
|
||||||
|
|
||||||
|
|
||||||
@@ -198,13 +195,8 @@ class Completion:
|
|||||||
completion_names = []
|
completion_names = []
|
||||||
debug.dbg('trailer completion scopes: %s', scopes)
|
debug.dbg('trailer completion scopes: %s', scopes)
|
||||||
for s in scopes:
|
for s in scopes:
|
||||||
names = []
|
for filter in s.get_filters(search_global=False):
|
||||||
for names_dict in s.names_dicts(search_global=False):
|
completion_names += filter.values()
|
||||||
names += chain.from_iterable(names_dict.values())
|
|
||||||
|
|
||||||
completion_names += filter_definition_names(
|
|
||||||
names, self._module.get_statement_for_position(self._position)
|
|
||||||
)
|
|
||||||
return completion_names
|
return completion_names
|
||||||
|
|
||||||
def _parse_dotted_names(self, nodes):
|
def _parse_dotted_names(self, nodes):
|
||||||
|
|||||||
@@ -157,7 +157,7 @@ class CompiledObject(Base):
|
|||||||
def names_dicts(self, search_global, is_instance=False):
|
def names_dicts(self, search_global, is_instance=False):
|
||||||
return self._names_dict_ensure_one_dict(is_instance)
|
return self._names_dict_ensure_one_dict(is_instance)
|
||||||
|
|
||||||
def get_filters(self, search_global, is_instance=False, until_position=None):
|
def get_filters(self, search_global=False, is_instance=False, until_position=None):
|
||||||
yield self._ensure_one_filter(is_instance)
|
yield self._ensure_one_filter(is_instance)
|
||||||
|
|
||||||
@memoize_method
|
@memoize_method
|
||||||
|
|||||||
@@ -554,7 +554,8 @@ class Class(use_metaclass(CachedMetaClass, Wrapper)):
|
|||||||
else:
|
else:
|
||||||
for scope in self.py__mro__():
|
for scope in self.py__mro__():
|
||||||
if isinstance(scope, compiled.CompiledObject):
|
if isinstance(scope, compiled.CompiledObject):
|
||||||
raise NotImplementedError
|
for filter in scope.get_filters():
|
||||||
|
yield filter
|
||||||
else:
|
else:
|
||||||
yield ParserTreeFilter(self._evaluator, self.base)
|
yield ParserTreeFilter(self._evaluator, self.base)
|
||||||
|
|
||||||
|
|||||||
Reference in New Issue
Block a user