1
0
forked from VimPlug/jedi

Simplify the interpreter completion.

This commit is contained in:
Dave Halter
2015-01-08 18:30:49 +01:00
parent ed7500bfaa
commit 81c4792349
2 changed files with 9 additions and 37 deletions

View File

@@ -18,34 +18,13 @@ from jedi.evaluate import iterable
from jedi.evaluate import representation as er
class InterpreterNamespace(pt.Module):
def __init__(self, evaluator, namespace, parser_module):
self.namespace = namespace
self.parser_module = parser_module
self._evaluator = evaluator
for key, value in self.namespace.items():
arr = self.parser_module.names_dict.setdefault(key, [])
arr.append(LazyName(self._evaluator, parser_module, key, value))
@underscore_memoization
def get_defined_names(self):
raise NotImplementedError
for name in self.parser_module.get_defined_names():
yield name
for key, value in self.namespace.items():
yield LazyName(self._evaluator, key, value)
@underscore_memoization
def used_names(self):
raise NotImplementedError
for name in self.parser_module.get_defined_names():
yield name
for key, value in self.namespace.items():
yield LazyName(self._evaluator, key, value)
def __getattr__(self, name):
return getattr(self.parser_module, name)
def add_namespaces_to_parser(evaluator, namespaces, parser_module):
for namespace in namespaces:
for key, value in namespace.items():
# Name lookups in an ast tree work by checking names_dict.
# Therefore we just add fake names to that and we're done.
arr = parser_module.names_dict.setdefault(key, [])
arr.append(LazyName(evaluator, parser_module, key, value))
class LazyName(helpers.FakeName):
@@ -124,10 +103,3 @@ class LazyName(helpers.FakeName):
@parent.setter
def parent(self, value):
"""Needed because of the ``representation.Simple`` super class."""
def create(evaluator, namespace, parser_module):
ns = InterpreterNamespace(evaluator, namespace, parser_module)
#for attr_name in pt.SCOPE_CONTENTS:
# for something in getattr(parser_module, attr_name):
# something.parent = ns