diff --git a/jedi/api/completion.py b/jedi/api/completion.py index f9cbad24..be5a6f81 100644 --- a/jedi/api/completion.py +++ b/jedi/api/completion.py @@ -131,7 +131,7 @@ class Completion: if string is not None and not prefixed_completions: prefixed_completions = list(complete_file_name( - self._inference_state, self._module_context, start_leaf, string, + self._inference_state, self._module_context, start_leaf, quote, string, self._like_name, self._signatures_callback, self._code_lines, self._original_position, self._fuzzy diff --git a/jedi/api/file_name.py b/jedi/api/file_name.py index 3bce430d..96f10249 100644 --- a/jedi/api/file_name.py +++ b/jedi/api/file_name.py @@ -11,7 +11,7 @@ class PathName(StringName): api_type = u'path' -def complete_file_name(inference_state, module_context, start_leaf, string, +def complete_file_name(inference_state, module_context, start_leaf, quote, string, like_name, signatures_callback, code_lines, position, fuzzy): # First we want to find out what can actually be changed as a name. like_name_length = len(os.path.basename(string)) @@ -40,11 +40,12 @@ def complete_file_name(inference_state, module_context, start_leaf, string, # OSError: [Errno 36] File name too long: '...' except (FileNotFoundError, OSError): return + quote_ending = get_quote_ending(quote, code_lines, position) for entry in listed: name = entry.name if match(name, must_start_with, fuzzy=fuzzy): if is_in_os_path_join or not entry.is_dir(): - name += get_quote_ending(start_leaf.value, code_lines, position) + name += quote_ending else: name += os.path.sep diff --git a/test/test_api/test_completion.py b/test/test_api/test_completion.py index 153928b4..0830064a 100644 --- a/test/test_api/test_completion.py +++ b/test/test_api/test_completion.py @@ -299,6 +299,10 @@ def test_file_path_completions(Script, file, code, column, expected): assert [c.complete for c in comps] == expected +def test_file_path_should_have_completions(Script): + assert Script('r"').complete() # See GH #1503 + + _dict_keys_completion_tests = [ ('ints[', 5, ['1', '50', Ellipsis]), ('ints[]', 5, ['1', '50', Ellipsis]),