Skip to content

Commit

Permalink
Improve JediDebugInfo for envs (davidhalter#858)
Browse files Browse the repository at this point in the history
Improve JediDebugInfo for envs

This is taken out of davidhalter#836.
  • Loading branch information
blueyed authored and davidhalter committed Jul 27, 2018
1 parent 40fc5ab commit 4c430ed
Show file tree
Hide file tree
Showing 3 changed files with 32 additions and 9 deletions.
21 changes: 14 additions & 7 deletions autoload/jedi.vim
Original file line number Diff line number Diff line change
Expand Up @@ -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')
Expand All @@ -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
Expand Down
7 changes: 7 additions & 0 deletions pythonx/jedi_vim.py
Original file line number Diff line number Diff line change
Expand Up @@ -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 = [
Expand Down
13 changes: 11 additions & 2 deletions pythonx/jedi_vim_debug.py
Original file line number Diff line number Diff line change
Expand Up @@ -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:
Expand All @@ -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:
Expand All @@ -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,
))

0 comments on commit 4c430ed

Please sign in to comment.