mirror of
https://github.com/davidhalter/jedi.git
synced 2025-12-09 23:34:45 +08:00
Fix an context issue in completions.
This commit is contained in:
@@ -70,6 +70,14 @@ def get_user_scope(module_context, position):
|
|||||||
return module_context.create_context(user_stmt)
|
return module_context.create_context(user_stmt)
|
||||||
|
|
||||||
|
|
||||||
|
def get_flow_scope_node(module_node, position):
|
||||||
|
node = module_node.get_leaf_for_position(position, include_prefixes=True)
|
||||||
|
while not isinstance(node, (tree.Scope, tree.Flow)):
|
||||||
|
node = node.parent
|
||||||
|
|
||||||
|
return node
|
||||||
|
|
||||||
|
|
||||||
class Completion:
|
class Completion:
|
||||||
def __init__(self, evaluator, module, code_lines, position, call_signatures_method):
|
def __init__(self, evaluator, module, code_lines, position, call_signatures_method):
|
||||||
self._evaluator = evaluator
|
self._evaluator = evaluator
|
||||||
@@ -176,11 +184,12 @@ class Completion:
|
|||||||
def _global_completions(self):
|
def _global_completions(self):
|
||||||
context = get_user_scope(self._module_context, self._position)
|
context = get_user_scope(self._module_context, self._position)
|
||||||
debug.dbg('global completion scope: %s', context)
|
debug.dbg('global completion scope: %s', context)
|
||||||
|
flow_scope_node = get_flow_scope_node(self._module_node, self._position)
|
||||||
filters = get_global_filters(
|
filters = get_global_filters(
|
||||||
self._evaluator,
|
self._evaluator,
|
||||||
context,
|
context,
|
||||||
self._position,
|
self._position,
|
||||||
origin_scope=self._module_node
|
origin_scope=flow_scope_node
|
||||||
)
|
)
|
||||||
completion_names = []
|
completion_names = []
|
||||||
for filter in filters:
|
for filter in filters:
|
||||||
|
|||||||
@@ -242,6 +242,11 @@ if 0:
|
|||||||
#?
|
#?
|
||||||
nested
|
nested
|
||||||
|
|
||||||
|
if False:
|
||||||
|
in_false = 1
|
||||||
|
#? ['in_false']
|
||||||
|
in_false
|
||||||
|
|
||||||
# -----------------
|
# -----------------
|
||||||
# True objects like modules
|
# True objects like modules
|
||||||
# -----------------
|
# -----------------
|
||||||
|
|||||||
Reference in New Issue
Block a user