From 45edfbdeeb142c7c8930e1818805d316ba8a8563 Mon Sep 17 00:00:00 2001 From: Dave Halter Date: Fri, 20 Dec 2019 10:29:54 +0100 Subject: [PATCH] Goto definition doesn't work on strings anymore, fixes microsoft/vscode#81520 --- jedi/api/__init__.py | 2 +- test/test_api/test_api.py | 16 ++++++++++++++++ 2 files changed, 17 insertions(+), 1 deletion(-) diff --git a/jedi/api/__init__.py b/jedi/api/__init__.py index 0e505c9f..ec841065 100644 --- a/jedi/api/__init__.py +++ b/jedi/api/__init__.py @@ -238,7 +238,7 @@ class Script(object): leaf = self._module_node.get_name_of_position(self._pos) if leaf is None: leaf = self._module_node.get_leaf_for_position(self._pos) - if leaf is None: + if leaf is None or leaf.type == 'string': return [] context = self._get_module_context().create_context(leaf) diff --git a/test/test_api/test_api.py b/test/test_api/test_api.py index dbc31b59..506d03be 100644 --- a/test/test_api/test_api.py +++ b/test/test_api/test_api.py @@ -342,3 +342,19 @@ def test_file_fuzzy_completion(Script): script = Script('"{}/ep08_i'.format(path)) assert ['pep0484_basic.py"', 'pep0484_typing.py"'] \ == [comp.name for comp in script.completions(fuzzy=True)] + + +@pytest.mark.parametrize( + 'code, column', [ + ('"foo"', 0), + ('"foo"', 3), + ('"foo"', None), + ('"""foo"""', 5), + ('"""foo"""', 1), + ('"""foo"""', 2), + ] +) +def test_goto_on_string(Script, code, column): + script = Script(code, column=column) + assert not script.goto_definitions() + assert not script.goto_assignments()