Оболочка проверки кода Python в emacs неправильно передает результаты в flymake на win32

Так что я использую эту обертку, предложенную в вики 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 ответ

Я не эксперт по 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 на что-то менее навязчивое, чем подчеркивание.

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

Другие вопросы по тегам