forked from VimPlug/jedi
Refactor our create_context constructs.
This commit is contained in:
@@ -174,7 +174,6 @@ class BaseDefinition(object):
|
|||||||
yield name.string_name
|
yield name.string_name
|
||||||
name.api_type
|
name.api_type
|
||||||
parent_context = name.parent_context
|
parent_context = name.parent_context
|
||||||
print(parent_context)
|
|
||||||
while parent_context is not None:
|
while parent_context is not None:
|
||||||
try:
|
try:
|
||||||
method = parent_context.py__name__
|
method = parent_context.py__name__
|
||||||
|
|||||||
@@ -53,7 +53,6 @@ def get_user_scope(module_context, position):
|
|||||||
Returns the scope in which the user resides. This includes flows.
|
Returns the scope in which the user resides. This includes flows.
|
||||||
"""
|
"""
|
||||||
user_stmt = module_context.module_node.get_statement_for_position(position)
|
user_stmt = module_context.module_node.get_statement_for_position(position)
|
||||||
evaluator = module_context.evaluator
|
|
||||||
if user_stmt is None:
|
if user_stmt is None:
|
||||||
def scan(scope):
|
def scan(scope):
|
||||||
for s in scope.children:
|
for s in scope.children:
|
||||||
@@ -66,15 +65,10 @@ def get_user_scope(module_context, position):
|
|||||||
|
|
||||||
scanned_node = scan(module_context.module_node)
|
scanned_node = scan(module_context.module_node)
|
||||||
if scanned_node:
|
if scanned_node:
|
||||||
return evaluator.create_context(module_context, scanned_node)
|
return module_context.create_context(scanned_node, node_is_context=True)
|
||||||
return module_context
|
return module_context
|
||||||
else:
|
else:
|
||||||
scope_node = user_stmt.get_parent_scope(include_flows=True)
|
return module_context.create_context(user_stmt)
|
||||||
return evaluator.create_context(module_context, scope_node)
|
|
||||||
|
|
||||||
# TODO need something like this in this func?
|
|
||||||
#if not context.is_scope(): # Might be a flow (if/while/etc).
|
|
||||||
#context = context.get_parent_scope()
|
|
||||||
|
|
||||||
|
|
||||||
class Completion:
|
class Completion:
|
||||||
@@ -236,7 +230,10 @@ class Completion:
|
|||||||
cls = leaf.get_parent_until(tree.Class)
|
cls = leaf.get_parent_until(tree.Class)
|
||||||
if isinstance(cls, (tree.Class, tree.Function)):
|
if isinstance(cls, (tree.Class, tree.Function)):
|
||||||
# Complete the methods that are defined in the super classes.
|
# Complete the methods that are defined in the super classes.
|
||||||
random_context = self._module_context.create_context(cls)
|
random_context = self._module_context.create_context(
|
||||||
|
cls,
|
||||||
|
node_is_context=True
|
||||||
|
)
|
||||||
else:
|
else:
|
||||||
return
|
return
|
||||||
|
|
||||||
|
|||||||
@@ -544,7 +544,7 @@ class Evaluator(object):
|
|||||||
raise DeprecationWarning
|
raise DeprecationWarning
|
||||||
return element
|
return element
|
||||||
|
|
||||||
def create_context(self, base_context, node):
|
def create_context(self, base_context, node, node_is_context=False):
|
||||||
def parent_scope(node):
|
def parent_scope(node):
|
||||||
while True:
|
while True:
|
||||||
node = node.parent
|
node = node.parent
|
||||||
@@ -594,7 +594,7 @@ class Evaluator(object):
|
|||||||
|
|
||||||
base_node = base_context.get_node()
|
base_node = base_context.get_node()
|
||||||
|
|
||||||
if node.is_scope():
|
if node_is_context and node.is_scope():
|
||||||
scope_node = node
|
scope_node = node
|
||||||
else:
|
else:
|
||||||
scope_node = parent_scope(node)
|
scope_node = parent_scope(node)
|
||||||
|
|||||||
@@ -53,8 +53,8 @@ class Context(object):
|
|||||||
return self.evaluator.find_types(
|
return self.evaluator.find_types(
|
||||||
self, name_or_str, name_context, position, search_global, is_goto)
|
self, name_or_str, name_context, position, search_global, is_goto)
|
||||||
|
|
||||||
def create_context(self, node):
|
def create_context(self, node, node_is_context=False):
|
||||||
return self.evaluator.create_context(self, node)
|
return self.evaluator.create_context(self, node, node_is_context)
|
||||||
|
|
||||||
def is_class(self):
|
def is_class(self):
|
||||||
return False
|
return False
|
||||||
|
|||||||
Reference in New Issue
Block a user