Skip to content

Improve JediDebugInfo for envs #858

New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Merged
merged 2 commits into from
Jul 27, 2018
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
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,
))