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 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):

View File

@@ -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

View File

@@ -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)