Оболочка для проверки кода Python в emacs неправильно передает результаты в flymake на win32 - PullRequest
1 голос
/ 21 февраля 2012

Так что я использую эту оболочку, предложенную в вики emacs python (найдена здесь ) вокруг pep8, pyflakes и pylint, которая работает в командной строке (после проблем с настройкой Windows в соответствии с" Запуск сценариев Python с подпроцессом в Windows. Оболочки проверки кода Python из emacswiki выдают ту же ошибку ".

Однако в emacs flymake подчеркивает строку с ошибкой, но когда яНаведите курсор мыши, поле, которое должно содержать сообщение об ошибке, пусто. Мой файл инициализации содержит:

 (setq pycodechecker "etcwrapper.bat")
(when (load "flymake" t)
   (load-library "flymake-cursor")
   (defun dss/flymake-pycodecheck-init ()
     (let* ((temp-file (flymake-init-create-temp-buffer-copy
                        'flymake-create-temp-inplace))
            (local-file (file-relative-name
                         temp-file
                         (file-name-directory buffer-file-name))))
       (list pycodechecker (list local-file))))
   (add-to-list 'flymake-allowed-file-name-masks
                '("\\.py\\'" dss/flymake-pycodecheck-init)))

etcwraper.bat - это простой пакетный скрипт, который запускает python на скрипте оболочки Python. Я помещаю его вкаталог в моем системном пути для удобства. Также я могу заставить flymake подчеркивать только один символ, а не целую строку? Любые предложения?

1 Ответ

0 голосов
/ 18 марта 2012

Я не эксперт по Python, и никогда не использовал его в Windows, поэтому этот ответ может оказаться бесполезным ... но я знаю, что в некоторых версиях flymake-cursor есть взлом, чтобы справиться с тем, что pyflakes либо неправильно сообщает об ошибках для ошибок компиляции, либо они имеют неправильный формат для flymake для анализа.

Вы можете увидеть исправленную ошибку в моем форке flymake-cursor здесь:

https://github.com/illusori/emacs-flymake-cursor/blob/master/flymake-cursor.el#L126

Я получил это исправление из версии Dino Chiesa, поэтому я не знаю полную предысторию, но, похоже, это проблема, с которой вы столкнулись.

Более поздняя версия flymake-cursor, такая как моя или Dino's, может помочь вам увидеть индикатор ошибки в области сообщений emacs, но наложение мыши обрабатывается в flymake, который не имеет исправлений для этой проблемы, посколькуЯ в курсе.

Если вы предоставите вывод, сгенерированный вашим etcwrapper.bat при запуске вручную, я мог бы помочь вам в этом.понимание, что вам нужно переопределить flymake-make-overlay из flymake.el и создайте два оверлея вместо одного.Возможно, вам будет проще настроить лицо для flymake-errline и flymake-warnline на что-то менее навязчивое, чем подчеркивание.

Извините, что ни один из этих ответов не является исправлением.:)

...