Emacs зависает при использовании Rope-GoTo-Definition и Rope-Show-DOC
Я установил Ropemacs как часть коллекции пакетов разработки Python для emacs-for-python.
Когда я использую rope-goto-definition
а также rope-show-doc
функции для перехода / показа символов библиотеки Я могу более или менее последовательно заставить Emacs зависать.
Чтобы включить самоанализ библиотек, я добавил следующее $PROJECT_ROOT/.ropeproject/config.py
:
VIRTUAL_ENV = "$HOME/.virtualenvs/$PROJECT_ROOT/"
ACTIVATE_FILE = VIRTUAL_ENV + "bin/activate_this.py"
execfile(ACTIVATE_FILE, dict(__file__=ACTIVATE_FILE))
Кажется, что это никогда не происходит при переходе к локальным определениям проекта, и не всегда при переходе к библиотечной функции. Однако, как только я осматриваюсь в библиотеке, это, кажется, постоянно происходит после одного или двух дополнительных прыжков. Тем не менее, я не смог определить полезную модель. Когда emacs зависает, единственное, что я могу сделать, - это запускать Cg несколько раз, пока emacs не станет отзывчивым, и быстро уничтожить буфер *Pymacs*. Если я слишком медлен в этом, он снова зависает. После перезапуска Pymacs мне иногда удавалось перейти к символу, который ранее заставлял его зависать, но в большинстве случаев прыжок к тому же символу приводит к его немедленному замораживанию. Интеграция с питоном также кажется немного более нестабильной после того, как я перезапустил *Pymacs* один раз, иногда зависая без видимой причины, кроме того, что я набрал несколько символов.
Как я могу продолжить в отладке этого?
Я установил emacs-for-python из его репозитория git ( rev. A5274). Мой emacs из http://emacsformacosx.com/ и имеет версию 24.3.
РЕДАКТИРОВАТЬ: После ожидания более пятнадцати минут Pymacs, наконец, выдал ошибку. Это была ошибка разрешения в $HOME/Library/Saved Application State/com.adobe.flashplayer.installmanager.savedState:
Открытие проекта [$HOME]... done pymacs-report-error: Python: OSError: [Errno 13] Отказано в доступе: '$HOME/Library/Saved Application State/com
По какой-то причине каталог принадлежал пользователю root.
Теперь кажется, что прыжки к символам всегда работают, но часто это происходит очень медленно, как предлагает Икбал Ансари.
В дальнейшем я пытался скомпилировать содержимое установочного каталога emacs-for-python (C-u 0 M-x byte-recompile-directory
). Кажется, что это могло бы немного сократить время поиска, но время от времени все равно невероятно медленно.
Больше всего меня поражает то, что время, необходимое для перехода к определению, не является последовательным. Тот же прыжок, который иногда заканчивается сразу же, может, в другое время, занять несколько минут.