From 192e03b335d86f585f591cb5d3479134ffc3e6f0 Mon Sep 17 00:00:00 2001 From: Dave Halter Date: Wed, 11 Oct 2017 00:45:50 +0200 Subject: [PATCH] NotFoundError was deprecated in Jedi a while ago --- pythonx/jedi_vim.py | 121 +++++++++++++++++++++----------------------- 1 file changed, 59 insertions(+), 62 deletions(-) diff --git a/pythonx/jedi_vim.py b/pythonx/jedi_vim.py index 63f821b..d762985 100644 --- a/pythonx/jedi_vim.py +++ b/pythonx/jedi_vim.py @@ -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