diff --git a/autoload/jedi.vim b/autoload/jedi.vim index 56599116..9c24c71c 100644 --- a/autoload/jedi.vim +++ b/autoload/jedi.vim @@ -170,7 +170,19 @@ function! jedi#debug_info() abort endif endif echo '#### Jedi-vim debug information' - echo 'Using Python version:' s:python_version + echo "\n" + echo '##### jedi-vim version' + echo "\n" + echo ' - jedi-vim git version: ' + echon substitute(system('git -C '.s:script_path.' describe --tags --always --dirty'), '\v\n$', '', '') + echo ' - jedi git submodule status: ' + echon substitute(system('git -C '.s:script_path.' submodule status pythonx/jedi'), '\v\n$', '', '') + echo ' - parso git submodule status: ' + echon substitute(system('git -C '.s:script_path.' submodule status pythonx/parso'), '\v\n$', '', '') + echo "\n" + echo '##### Global Python' + echo "\n" + echo 'Using Python version '.s:python_version.' to access Jedi.' let pyeval = s:python_version == 3 ? 'py3eval' : 'pyeval' let s:pythonjedi_called = 0 PythonJedi import vim; vim.command('let s:pythonjedi_called = 1') @@ -185,14 +197,9 @@ function! jedi#debug_info() abort PythonJedi from jedi_vim_debug import display_debug_info PythonJedi display_debug_info() endif - echo ' - jedi-vim git version: ' - echon substitute(system('git -C '.s:script_path.' describe --tags --always --dirty'), '\v\n$', '', '') - echo ' - jedi git submodule status: ' - echon substitute(system('git -C '.s:script_path.' submodule status pythonx/jedi'), '\v\n$', '', '') - echo ' - parso git submodule status: ' - echon substitute(system('git -C '.s:script_path.' submodule status pythonx/parso'), '\v\n$', '', '') echo "\n" echo '##### Settings' + echo "\n" echo '```' let jedi_settings = items(filter(copy(g:), "v:key =~# '\\v^jedi#'")) let has_nondefault_settings = 0 diff --git a/pythonx/jedi_vim.py b/pythonx/jedi_vim.py index b88f439d..5ceee173 100644 --- a/pythonx/jedi_vim.py +++ b/pythonx/jedi_vim.py @@ -193,6 +193,13 @@ def get_environment(use_cache=True): return environment +def get_known_environments(): + """Get known Jedi environments.""" + envs = list(jedi.api.environment.find_virtualenvs()) + envs.extend(jedi.api.environment.find_system_environments()) + return envs + + @catch_and_print_exceptions def get_script(source=None, column=None): jedi.settings.additional_dynamic_modules = [ diff --git a/pythonx/jedi_vim_debug.py b/pythonx/jedi_vim_debug.py index b5e6da28..e550a5b3 100644 --- a/pythonx/jedi_vim_debug.py +++ b/pythonx/jedi_vim_debug.py @@ -53,7 +53,7 @@ def display_debug_info(): echo_error('ERROR: could not import the "jedi" Python module: {0}'.format( error_msg)) else: - echo('Jedi path: `{0}`'.format(jedi_vim.jedi.__file__)) + echo('\n##### Jedi\n\n - path: `{0}`'.format(jedi_vim.jedi.__file__)) echo(' - version: {0}'.format(jedi_vim.jedi.__version__)) try: @@ -65,7 +65,8 @@ def display_debug_info(): except AttributeError: sys_path = script_evaluator.sys_path else: - echo(' - environment: `{0}`'.format(environment)) + echo('\n##### Jedi environment: {0}\n\n'.format(environment)) + echo(' - executable: {0}'.format(environment.executable)) try: sys_path = environment.get_sys_path() except Exception: @@ -76,3 +77,11 @@ def display_debug_info(): echo(' - sys_path:') for p in sys_path: echo(' - `{0}`'.format(p)) + + if environment: + echo('\n##### Known environments\n\n') + for environment in jedi_vim.get_known_environments(): + echo(' - {0} ({1})\n'.format( + environment, + environment.executable, + ))