Fix "goto" with multiple results

E.g. with `os.path`.
This commit is contained in:
Daniel Hahler
2020-01-29 19:20:12 +01:00
parent c9bdefca54
commit 1f7bc2a0fb

View File

@@ -434,6 +434,8 @@ def show_goto_multi_results(definitions, mode):
"""Create (or reuse) a quickfix list for multiple definitions."""
global _current_definitions
for_usages = mode == "usages"
lst = []
(row, col) = vim.current.window.cursor
current_idx = None
@@ -450,9 +452,10 @@ def show_goto_multi_results(definitions, mode):
text=PythonToVimStr(text)))
# Select current/nearest entry via :cc later.
# Only done for "usages", but current_def is also used for "goto".
if d.line == row and d.column <= col:
if (current_idx is None
or (abs(lst[current_idx].column - col)
or (abs(lst[current_idx]["col"] - col)
> abs(d.column - col))):
current_idx = len(lst)
current_def = d
@@ -472,10 +475,10 @@ def show_goto_multi_results(definitions, mode):
VimCompat.setqflist_title(qf_title)
else:
VimCompat.setqflist(lst, title=qf_title, context=qf_context)
for_usages = mode == "usages"
vim_eval('jedi#add_goto_window(%d, %d)' % (for_usages, len(lst)))
vim_command('%dcc' % select_entry)
if for_usages:
vim_command('%dcc' % select_entry)
def _same_definitions(a, b):