diff --git a/jedi/api/classes.py b/jedi/api/classes.py index be9f4bf9..9a2c9655 100644 --- a/jedi/api/classes.py +++ b/jedi/api/classes.py @@ -370,7 +370,7 @@ class Completion(BaseDefinition): super(Completion, self).__init__(evaluator, name) self._like_name_length = like_name_length - self.stack = stack + self._stack = stack # Completion objects with the same Completion name (which means # duplicate items in the completion) @@ -382,9 +382,8 @@ class Completion(BaseDefinition): and self.type == 'Function': append = '(' - if self.stack is not None: - node_names = list(self.stack.get_node_names(self._evaluator.grammar)) - print(node_names) + if isinstance(self._definition, tree.Param) and self._stack is not None: + node_names = list(self._stack.get_node_names(self._evaluator.grammar)) if 'trailer' in node_names and 'argument' not in node_names: append += '=' diff --git a/jedi/api/completion.py b/jedi/api/completion.py index 0810ce3c..a580fe9d 100644 --- a/jedi/api/completion.py +++ b/jedi/api/completion.py @@ -118,13 +118,13 @@ class Completion: grammar, self._code_lines, self._module, self._position ) except helpers.OnErrorLeaf as e: + self.stack = None if e.error_leaf.value == '.': # After ErrorLeaf's that are dots, we will not do any # completions since this probably just confuses the user. return [] # If we don't have a context, just use global completion. - self.stack = None return self._global_completions() allowed_keywords, allowed_tokens = \