diff --git a/jedi/api/completion.py b/jedi/api/completion.py index 672fbeb9..9006faf7 100644 --- a/jedi/api/completion.py +++ b/jedi/api/completion.py @@ -201,7 +201,8 @@ class Completion: completion_names = [] debug.dbg('trailer completion contexts: %s', contexts) for context in contexts: - for filter in context.get_filters(search_global=False, origin_scope=user_context): + for filter in context.get_filters( + search_global=False, origin_scope=user_context.get_node()): completion_names += filter.values() return completion_names diff --git a/jedi/evaluate/context.py b/jedi/evaluate/context.py index b30bd596..938ec2d5 100644 --- a/jedi/evaluate/context.py +++ b/jedi/evaluate/context.py @@ -8,6 +8,9 @@ class Context(object): self.evaluator = evaluator self.parent_context = parent_context + def get_node(self): + return None + def get_parent_flow_context(self): return self.parent_context diff --git a/jedi/evaluate/representation.py b/jedi/evaluate/representation.py index dad77b73..2fd45a9c 100644 --- a/jedi/evaluate/representation.py +++ b/jedi/evaluate/representation.py @@ -613,6 +613,9 @@ class FunctionExecutionContext(Executed): #self.names_dict = funcdef.names_dict #self._copied_funcdef = funcdef + def get_node(self): + return self.funcdef + @memoize_default(default=set()) @recursion.execution_recursion_decorator def get_return_values(self, check_yields=False): @@ -774,6 +777,9 @@ class ModuleContext(use_metaclass(CachedMetaClass, context.TreeContext, Wrapper) self.module_node = module_node self.path = None + def get_node(self): + return self.module_node + def names_dicts(self, search_global): yield self.base.names_dict yield self._module_attributes_dict()