所以我在emacs python wiki(找到here)周围的pep8,pyflakes和pylint上使用这个包装器,它在命令行上运行(根据“{在Windows上设置它的麻烦之后) {3}}“。
但是,在emacs中,flymake会强行显示有错误的行,但是当我将鼠标悬停时,应该包含错误消息的框为空。我的init文件包含:
(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只下划线一个字符而不是整行吗? 有什么建议吗?
答案 0 :(得分:0)
我不是python专家,并且从未在Windows上使用它,所以这个答案可能没有用......但是我知道某些版本的flymake-cursor
中有一个hack来应对这个事实pyflakes
要么没有正确报告编译错误的错误,要么它们的格式错误flymake
要解析。
您可以在flymake-cursor
此处的分支中看到针对它的尝试修复:
https://github.com/illusori/emacs-flymake-cursor/blob/master/flymake-cursor.el#L126
我从Dino Chiesa版本中得到了解决方案,因此我不知道完整的背景故事,但听起来这就是你所遇到的问题。
更新版本的flymake-cursor
(例如我的或Dino)可能会帮助您在emacs消息区域中看到错误指示符,但鼠标覆盖图在flymake
处理,但没有针对此问题的修复程序据我所知。
如果您在手动运行时提供了由etcwrapper.bat生成的输出,我可能会进一步提供帮助。
仅仅强调一个角色也很棘手,根据我的理解,您需要从flymake-make-overlay
重新定义flymake.el
并创建两个叠加而不是一个。您可能会更容易为flymake-errline
和flymake-warnline
自定义面部,而不是下划线。
很抱歉,这些答案都不是解决方法。 :)