1

因此,我使用 emacs python wiki(在此处找到)上建议的这个包装器,它围绕 pep8、pyflakes 和 pylint 在命令行上工作(根据“在 windows 中运行带有子进程的 python 脚本在 windows上设置它的麻烦之后) 。来自 emacswiki 的 Python 代码检查器包装器产生相同的错误“。

但是,在 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只下划一个字符而不是整行吗?有什么建议么?

4

1 回答 1

0

我不是 python 专家,也从未在 Windows 上使用过它,所以这个答案可能没有用......但我知道在某些版本中有一个 hackflymake-cursor来应对这样一个事实,即pyflakes两者都不能正确报告错误编译错误,或者它们的flymake解析格式错误。

您可以在我的 fork 中看到尝试修复它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-overlayflymake.el创建两个叠加层而不是一个。您可能会发现为一些比下划线更少干扰的东西自定义面部flymake-errline更容易。flymake-warnline

很抱歉,这些答案都不是解决办法。:)

于 2012-03-18T02:23:08.147 回答