diff --git a/jedi/api/completion.py b/jedi/api/completion.py index 376814a1..30b32f05 100644 --- a/jedi/api/completion.py +++ b/jedi/api/completion.py @@ -291,6 +291,8 @@ class Completion: ) elif nonterminals[-1] in ('trailer', 'dotted_name') and nodes[-1] == '.': dot = self._module_node.get_leaf_for_position(self._position) + if dot.type == "newline": + dot = dot.get_previous_leaf() if dot.type == "endmarker": # This is a bit of a weird edge case, maybe we can somehow # generalize this. diff --git a/test/test_api/test_interpreter.py b/test/test_api/test_interpreter.py index 1b80f986..eb00b044 100644 --- a/test/test_api/test_interpreter.py +++ b/test/test_api/test_interpreter.py @@ -867,3 +867,9 @@ def test_star_import_completions(): assert 'dump' in names assert 'dumps' in names + + +def test_whitespace_after_dot_completion(Script): + # From #1954 + completions = jedi.Interpreter("object. \n", []).complete(1, 8) + assert "mro" in [c.name for c in completions]