emacs中的Python代码检查程序包装器无法将结果正确地提供给win32上的flymake

2024-10-03 23:18:13 发布

您现在位置:Python中文网/ 问答频道 /正文

因此,我使用了emacspythonwiki(找到了here)上建议的这个包装器,它是关于pep8、pyflakes和pylint的,它在命令行上运行(在根据“Running python scripts with subprocess in windows. Python code checker wrappers from the emacswiki yield the same error”在windows上设置它的麻烦之后)。在

然而,在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)))

在ETCWrapper.bat公司是一个简单的批处理脚本,它在python包装器脚本上运行python。为了方便起见,我把它放在系统路径中的一个目录中。 我也可以让flymake只在一个字符的下划线,而不是整个行? 有什么建议吗?在


Tags: thenameinitwindowscreateloadtemp建议
1条回答
网友
1楼 · 发布于 2024-10-03 23:18:13

我不是python专家,也从来没有在windows上使用过,所以这个答案可能没有用。。。但是我知道在flymake-cursor的某些版本中存在黑客攻击,以应对pyflakes没有正确报告编译错误,或者{}解析错误的格式错误。在

您可以在我的fork of flymake-cursor中看到对它的尝试修复:

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

我从恐龙奇萨的版本中得到了修复,所以我不知道完整的背景,但听起来这就是你遇到的问题。在

最新版本的flymake-cursor如我的或Dino的可能会帮助您在emacs消息区域看到一个错误指示器,但是鼠标覆盖是在flymake中处理的,据我所知,它还没有解决这个问题的方法。在

如果您提供由etcwrapper.bat公司当手动运行时,我可能会提供进一步的帮助。在

只给一个字符加下划线也很棘手,据我所知,您需要从flymake.el重新定义flymake-make-overlay,并创建两个覆盖而不是一个。您可能会发现将flymake-errlineflymake-warnline的面自定义为比下划线更不具侵入性的内容更容易。在

抱歉,这两个答案都不是解决问题的办法。:)

相关问题 更多 >