RecursionError в YouCompleteMe для документов Python в VImPython

Программы на Python
Ответить
Anonymous
 RecursionError в YouCompleteMe для документов Python в VIm

Сообщение Anonymous »

Я пытаюсь использовать YouCompleteMe в Vim для получения документации Python (используя YcmCompleter GetDoc и всплывающее меню vim). Это хорошо работает для обычных команд Python, но, похоже, возникают различные проблемы с получением документации для команд пакета.
Например:
  • numpy.linspace предоставляет огромный файл документа с множеством подробных изменений, множеством повторяющихся строк текста, а исходное объявление функции повторяется десятки раз с небольшими вариациями (такие вещи, как первое входное значение, может быть «_ArrayLikeFloat_co» или «_ArrayLikeComplex_co» и различные варианты для каждого входа). Из-за этого всплывающее окно заполняет экран текстом, а команду GetDoc становится очень трудно читать.
  • numpy.a (или любая буква) выдает RecursionError: «превышена максимальная глубина рекурсии» в сообщениях vim. Однако он успешно предложит соответствующие команды для ввода при открытии меню. Это повторяется для некоторых других функций, таких как pandas.read_csv
  • numpy.zeros и numpy.array (и, возможно, других), которые выдают «RuntimeError: максимальная глубина рекурсии превышена» при запросе документа.
  • Многие другие содержат очень простые и/или неправильно отформатированные (для всплывающего окна) документы.
Чтение YcmDebugInfo не перечисляет ничего подозрительного, интерпретатор oython ссылается на правильное местоположение ~/.pyenv/... (такое же, как и у меня они установлены), а также на правильные пакеты сайтов, где pip устанавливает мои пакеты, на нем работают Python 3.13.1, Jedi 0.19.1 и это новая установка YCM.
Я предполагаю, что проблема связана с какой-то неправильной конфигурацией Python, которую я установил, хотя, учитывая рекурсия не происходит для панд, но неверная строка документа есть, заставляет меня думать, что она не обязательно вызвана проблемой рекурсии.
Кто-нибудь знает, что здесь происходит, или какой-то способ это исправить, или, может быть, дать YCM другой набор файлов документов?

Полурешение

Хотя на самом деле проблема с Jedi не решена, я в конечном итоге заставил pylsp работать как альтернативный сервер. Основные проблемы, с которыми я столкнулся, заключались в настройке конфигурации pylsp, поскольку ее нужно передавать на уровне редактора, а не в глобальную папку конфигурации (

Код: Выделить всё

~/.config/pylsp/config.yaml
и подобные не были прочитаны YCM). В конце концов я установил дополнительный файл конфигурации YCM let g:ycm_global_ycm_extra_conf = '~/.dotfiles/vim/ycm_global_extra_cong.py':

Код: Выделить всё

def Settings(**kwargs):
client_data = kwargs['client_data']
return {
'interpreter_path': client_data['g:ycm_python_interpreter_path'],
'sys_path': client_data['g:ycm_python_sys_path'],
'ls': {
'pylsp': {
'plugins': {
'pyflakes': {'enabled': False},
'flake8': {
'enabled': True,
'ignore': [
'E226',  # missing whitespace around arithmetic operator
# 'E203',  # whitespace before ‘,’, ‘;’, or ‘:’
'E303',  # too many blank lines (3)
'F401',  # module imported but not used
],
}
}
}
}
}

с параметрами, описанными на странице pylsp Configuration.md на странице GitHub.

Подробнее здесь: https://stackoverflow.com/questions/798 ... ocs-in-vim
Ответить

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

Вернуться в «Python»