From 56eb0f6d63370a178e3e927c0a2fe8ac42bbe8af Mon Sep 17 00:00:00 2001 From: Daniel Hahler Date: Fri, 27 Apr 2018 15:42:35 +0200 Subject: [PATCH] Improve display_debug_info --- pythonx/jedi_vim_debug.py | 36 +++++++++++++++++++++++------------- 1 file changed, 23 insertions(+), 13 deletions(-) diff --git a/pythonx/jedi_vim_debug.py b/pythonx/jedi_vim_debug.py index ad7e6b1..f28c3ea 100644 --- a/pythonx/jedi_vim_debug.py +++ b/pythonx/jedi_vim_debug.py @@ -1,16 +1,16 @@ """Used in jedi-vim's jedi#debug_info()""" +import vim + + +def echo(msg): + vim.command('echo {0}'.format(msg)) def display_debug_info(): - import vim - - def echo(msg): - vim.command('echo {0}'.format(msg)) - - echo("printf(' - sys.version: `%s`', {0!r})".format( + echo("printf(' - global sys.version: `%s`', {0!r})".format( ', '.join([x.strip() for x in __import__('sys').version.split('\n')]))) - echo("printf(' - site module: `%s`', {0!r})".format( + echo("printf(' - global site module: `%s`', {0!r})".format( __import__('site').__file__)) try: @@ -30,18 +30,28 @@ def display_debug_info(): jedi_vim.jedi.__file__)) echo("printf(' - version: %s', {0!r})".format( jedi_vim.jedi.__version__)) - echo("' - sys_path:'") - script_evaluator = jedi_vim.jedi.Script('')._evaluator try: - sys_path = jedi_vim.get_environment().get_sys_path() - except: + environment = jedi_vim.get_environment() + except AttributeError: + script_evaluator = jedi_vim.jedi.Script('')._evaluator try: sys_path = script_evaluator.project.sys_path except AttributeError: sys_path = script_evaluator.sys_path + else: + echo("printf(' - environment: %s', {0!r})".format( + str(environment))) + sys_path = environment.get_sys_path() + + echo("' - sys_path:'") for p in sys_path: echo("printf(' - `%s`', {0!r})".format(p)) except Exception as e: - echo("printf('There was an error accessing jedi_vim.jedi: %s', " - "{0!r})".format(e)) + vim.command('echohl ErrorMsg') + echo("printf('There was an error accessing jedi_vim.jedi: %s', {0!r})".format( + str(e))) + import traceback + for l in traceback.format_exc().splitlines(): + echo("printf('%s', {0!r})".format(l)) + vim.command('echohl None')