mirror of
https://github.com/davidhalter/jedi-vim.git
synced 2025-12-07 19:24:36 +08:00
NotFoundError was deprecated in Jedi a while ago
This commit is contained in:
@@ -235,71 +235,68 @@ def goto(mode="goto", no_output=False):
|
||||
:rtype: list
|
||||
"""
|
||||
script = get_script()
|
||||
try:
|
||||
if mode == "goto":
|
||||
definitions = [x for x in script.goto_definitions()
|
||||
if not x.in_builtin_module()]
|
||||
if not definitions:
|
||||
definitions = script.goto_assignments()
|
||||
elif mode == "related_name":
|
||||
definitions = script.usages()
|
||||
elif mode == "definition":
|
||||
definitions = script.goto_definitions()
|
||||
elif mode == "assignment":
|
||||
definitions = script.goto_assignments()
|
||||
except jedi.NotFoundError:
|
||||
echo_highlight("Cannot follow nothing. Put your cursor on a valid name.")
|
||||
definitions = []
|
||||
else:
|
||||
if no_output:
|
||||
return definitions
|
||||
if mode == "goto":
|
||||
definitions = [x for x in script.goto_definitions()
|
||||
if not x.in_builtin_module()]
|
||||
if not definitions:
|
||||
echo_highlight("Couldn't find any definitions for this.")
|
||||
elif len(definitions) == 1 and mode != "related_name":
|
||||
d = list(definitions)[0]
|
||||
if d.in_builtin_module():
|
||||
if d.is_keyword:
|
||||
echo_highlight("Cannot get the definition of Python keywords.")
|
||||
else:
|
||||
echo_highlight("Builtin modules cannot be displayed (%s)."
|
||||
% d.desc_with_module)
|
||||
definitions = script.goto_assignments()
|
||||
elif mode == "related_name":
|
||||
definitions = script.usages()
|
||||
elif mode == "definition":
|
||||
definitions = script.goto_definitions()
|
||||
elif mode == "assignment":
|
||||
definitions = script.goto_assignments()
|
||||
|
||||
|
||||
if no_output:
|
||||
return definitions
|
||||
if not definitions:
|
||||
echo_highlight("Couldn't find any definitions for this.")
|
||||
elif len(definitions) == 1 and mode != "related_name":
|
||||
d = list(definitions)[0]
|
||||
if d.in_builtin_module():
|
||||
if d.is_keyword:
|
||||
echo_highlight("Cannot get the definition of Python keywords.")
|
||||
else:
|
||||
using_tagstack = int(vim_eval('g:jedi#use_tag_stack')) == 1
|
||||
if d.module_path != vim.current.buffer.name:
|
||||
result = new_buffer(d.module_path,
|
||||
using_tagstack=using_tagstack)
|
||||
if not result:
|
||||
return []
|
||||
if d.module_path and os.path.exists(d.module_path) and using_tagstack:
|
||||
tagname = d.name
|
||||
with tempfile('{0}\t{1}\t{2}'.format(tagname, d.module_path,
|
||||
'call cursor({0}, {1})'.format(d.line, d.column + 1))) as f:
|
||||
old_tags = vim.eval('&tags')
|
||||
old_wildignore = vim.eval('&wildignore')
|
||||
try:
|
||||
# Clear wildignore to ensure tag file isn't ignored
|
||||
vim.command('set wildignore=')
|
||||
vim.command('let &tags = %s' %
|
||||
repr(PythonToVimStr(f.name)))
|
||||
vim.command('tjump %s' % tagname)
|
||||
finally:
|
||||
vim.command('let &tags = %s' %
|
||||
repr(PythonToVimStr(old_tags)))
|
||||
vim.command('let &wildignore = %s' %
|
||||
repr(PythonToVimStr(old_wildignore)))
|
||||
vim.current.window.cursor = d.line, d.column
|
||||
echo_highlight("Builtin modules cannot be displayed (%s)."
|
||||
% d.desc_with_module)
|
||||
else:
|
||||
# multiple solutions
|
||||
lst = []
|
||||
for d in definitions:
|
||||
if d.in_builtin_module():
|
||||
lst.append(dict(text=PythonToVimStr('Builtin ' + d.description)))
|
||||
else:
|
||||
lst.append(dict(filename=PythonToVimStr(d.module_path),
|
||||
lnum=d.line, col=d.column + 1,
|
||||
text=PythonToVimStr(d.description)))
|
||||
vim_eval('setqflist(%s)' % repr(lst))
|
||||
vim_eval('jedi#add_goto_window(' + str(len(lst)) + ')')
|
||||
using_tagstack = int(vim_eval('g:jedi#use_tag_stack')) == 1
|
||||
if d.module_path != vim.current.buffer.name:
|
||||
result = new_buffer(d.module_path,
|
||||
using_tagstack=using_tagstack)
|
||||
if not result:
|
||||
return []
|
||||
if d.module_path and os.path.exists(d.module_path) and using_tagstack:
|
||||
tagname = d.name
|
||||
with tempfile('{0}\t{1}\t{2}'.format(tagname, d.module_path,
|
||||
'call cursor({0}, {1})'.format(d.line, d.column + 1))) as f:
|
||||
old_tags = vim.eval('&tags')
|
||||
old_wildignore = vim.eval('&wildignore')
|
||||
try:
|
||||
# Clear wildignore to ensure tag file isn't ignored
|
||||
vim.command('set wildignore=')
|
||||
vim.command('let &tags = %s' %
|
||||
repr(PythonToVimStr(f.name)))
|
||||
vim.command('tjump %s' % tagname)
|
||||
finally:
|
||||
vim.command('let &tags = %s' %
|
||||
repr(PythonToVimStr(old_tags)))
|
||||
vim.command('let &wildignore = %s' %
|
||||
repr(PythonToVimStr(old_wildignore)))
|
||||
vim.current.window.cursor = d.line, d.column
|
||||
else:
|
||||
# multiple solutions
|
||||
lst = []
|
||||
for d in definitions:
|
||||
if d.in_builtin_module():
|
||||
lst.append(dict(text=PythonToVimStr('Builtin ' + d.description)))
|
||||
else:
|
||||
lst.append(dict(filename=PythonToVimStr(d.module_path),
|
||||
lnum=d.line, col=d.column + 1,
|
||||
text=PythonToVimStr(d.description)))
|
||||
vim_eval('setqflist(%s)' % repr(lst))
|
||||
vim_eval('jedi#add_goto_window(' + str(len(lst)) + ')')
|
||||
return definitions
|
||||
|
||||
|
||||
|
||||
Reference in New Issue
Block a user