1
0
forked from VimPlug/jedi

Replace names_dicts with filters in trailer completion.

This commit is contained in:
Dave Halter
2016-10-12 02:34:50 +02:00
parent 862e4a6176
commit 482103e796
3 changed files with 5 additions and 12 deletions

View File

@@ -1,5 +1,3 @@
from itertools import chain
from jedi.parser import token
from jedi.parser import tree
from jedi import debug
@@ -10,7 +8,6 @@ from jedi.evaluate import imports
from jedi.api import keywords
from jedi.evaluate import compiled
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
@@ -198,13 +195,8 @@ class Completion:
completion_names = []
debug.dbg('trailer completion scopes: %s', scopes)
for s in scopes:
names = []
for names_dict in s.names_dicts(search_global=False):
names += chain.from_iterable(names_dict.values())
completion_names += filter_definition_names(
names, self._module.get_statement_for_position(self._position)
)
for filter in s.get_filters(search_global=False):
completion_names += filter.values()
return completion_names
def _parse_dotted_names(self, nodes):

View File

@@ -157,7 +157,7 @@ class CompiledObject(Base):
def names_dicts(self, search_global, is_instance=False):
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)
@memoize_method

View File

@@ -554,7 +554,8 @@ class Class(use_metaclass(CachedMetaClass, Wrapper)):
else:
for scope in self.py__mro__():
if isinstance(scope, compiled.CompiledObject):
raise NotImplementedError
for filter in scope.get_filters():
yield filter
else:
yield ParserTreeFilter(self._evaluator, self.base)