From 384b2ad014ef623821872803a72ef4b8d5c2bc12 Mon Sep 17 00:00:00 2001 From: Dave Halter Date: Sat, 16 May 2020 00:46:46 +0200 Subject: [PATCH] Fix an about dict completions --- jedi/parser_utils.py | 2 ++ test/test_api/test_completion.py | 8 ++++++-- 2 files changed, 8 insertions(+), 2 deletions(-) diff --git a/jedi/parser_utils.py b/jedi/parser_utils.py index 67e39521..ff412e13 100644 --- a/jedi/parser_utils.py +++ b/jedi/parser_utils.py @@ -288,6 +288,8 @@ def cut_value_at_position(leaf, position): column = position[1] if leaf.line == position[0]: column -= leaf.column + if not lines: + return '' lines[-1] = lines[-1][:column] return ''.join(lines) diff --git a/test/test_api/test_completion.py b/test/test_api/test_completion.py index d40aa4f3..300781f6 100644 --- a/test/test_api/test_completion.py +++ b/test/test_api/test_completion.py @@ -394,8 +394,7 @@ def test_dict_keys_completions(Script, added_code, column, expected, skip_pre_py casted_mod["full"] = 8 keywords = {None: 1, False: 2, "a": 3} ''') - line = None - comps = Script(code + added_code).complete(line=line, column=column) + comps = Script(code + added_code).complete(column=column) if Ellipsis in expected: # This means that global completions are part of this, so filter all of # that out. @@ -405,6 +404,11 @@ def test_dict_keys_completions(Script, added_code, column, expected, skip_pre_py assert [c.complete for c in comps] == expected +@pytest.mark.skipif(sys.version_info[0] == 2, reason="Ignore Python 2, because EOL") +def test_dict_keys_in_weird_case(Script, skip_pre_python36): + assert Script('a[\n# foo\nx]').complete(line=2, column=0) + + def test_start_match(): assert _start_match('Condition', 'C')