forked from VimPlug/jedi
Start using names_dicts for completion as well.
This commit is contained in:
@@ -256,6 +256,9 @@ class LazyNamesDict(object):
|
||||
def __init__(self, compiled_obj):
|
||||
self._compiled_obj = compiled_obj
|
||||
|
||||
def __iter__(self):
|
||||
return (v[0].value for v in self.values())
|
||||
|
||||
@memoize_method
|
||||
def __getitem__(self, name):
|
||||
try:
|
||||
@@ -266,10 +269,9 @@ class LazyNamesDict(object):
|
||||
|
||||
def values(self):
|
||||
obj = self._compiled_obj.obj
|
||||
names = dir(obj)
|
||||
|
||||
values = []
|
||||
for name in names:
|
||||
for name in dir(obj):
|
||||
try:
|
||||
values.append(self[name])
|
||||
except KeyError:
|
||||
@@ -487,7 +489,7 @@ def _create_from_name(module, parent, name):
|
||||
builtin = Builtin(_builtins)
|
||||
magic_function_class = CompiledObject(type(load_module), parent=builtin)
|
||||
generator_obj = CompiledObject(_a_generator(1.0))
|
||||
type_names = [] # Need this, because it's return in get_defined_names.
|
||||
type_names = [] # Need this, because its part of the result of get_defined_names.
|
||||
type_names = builtin.get_by_name('type').get_defined_names()
|
||||
none_obj = builtin.get_by_name('None')
|
||||
false_obj = builtin.get_by_name('False')
|
||||
|
||||
@@ -309,6 +309,9 @@ class LazyInstanceDict(object):
|
||||
return [get_instance_el(self._evaluator, self._instance, var, True)
|
||||
for var in self._dct[name]]
|
||||
|
||||
def values(self):
|
||||
return [self[key] for key in self._dct]
|
||||
|
||||
|
||||
class InstanceName(pr.Name):
|
||||
def __init__(self, origin_name, parent):
|
||||
@@ -466,8 +469,12 @@ class Class(use_metaclass(CachedMetaClass, Wrapper)):
|
||||
|
||||
@memoize_default(default=())
|
||||
def py__bases__(self, evaluator):
|
||||
args = param.Arguments(self._evaluator, self.base.get_super_arglist() or ())
|
||||
return list(chain.from_iterable(args.eval_args()))
|
||||
arglist = self.base.get_super_arglist()
|
||||
if arglist:
|
||||
args = param.Arguments(self._evaluator, arglist)
|
||||
return list(chain.from_iterable(args.eval_args()))
|
||||
else:
|
||||
return [compiled.object_obj]
|
||||
|
||||
def py__call__(self, evaluator, params):
|
||||
return [Instance(evaluator, self, params)]
|
||||
@@ -508,6 +515,7 @@ class Class(use_metaclass(CachedMetaClass, Wrapper)):
|
||||
yield self.names_dict
|
||||
else:
|
||||
for scope in self.py__mro__(self._evaluator):
|
||||
print(scope)
|
||||
yield scope.names_dict
|
||||
|
||||
def is_class(self):
|
||||
|
||||
Reference in New Issue
Block a user