【问题标题】:Flycheck warning in Emacs’ *Messages* buffer are not displayed correctlyEmacs 的 *Messages* 缓冲区中的 Flycheck 警告未正确显示
【发布时间】:2023-04-04 21:43:01
【问题描述】:

以下是我的 flycheck 错误如何在 emacs 上显示的示例:

Method name "createQATask" doesn't conform to 
'[a-z_][a-z0-9_]{2,30}$' pattern [invalid-name]

这是我正在运行的检查器(通过 C-c ! v 检查):

Syntax checkers for buffer __manifest__.py in python-mode:

First checker to run:

  python-flake8
    - may enable:         yes
    - executable:         Found at /usr/bin/python3
    - configuration file: Not found
    - `flake8' module:    Found at "/home/devdesk4/.local/lib/python3.5/site-packages/flake8/__init__.py"
    - next checkers:      python-pylint, python-mypy

Checkers that may run as part of the first checker's chain:

  python-pylint
    - may enable:         yes
    - executable:         Found at /usr/bin/python3
    - configuration file: Found at "/home/devdesk4/.pylintrc"
    - `pylint' module:    Found at "/home/devdesk4/.local/lib/python3.5/site-packages/pylint/__init__.py"
    - next checkers:      python-mypy

Checkers that could run if selected:

  python-pycompile  select
    - may enable:    yes
    - executable:    Found at /usr/bin/python3
    - next checkers: python-mypy

我尝试禁用 python-pylint 的配置文件,但行为仍然存在。我还尝试了一个最小的.emacs 配置,它只包含以下内容:

(setq package-archives                                                                                                                                                        
      '(("gnu" . "http://elpa.gnu.org/packages/")                                                                                                                             
        ("marmalade" . "http://marmalade-repo.org/packages/")                                                                                                                 
        ("melpa" . "http://melpa.milkbox.net/packages/")                                                                                                                      
        ("melpa-stable" . "https://stable.melpa.org/packages/")))

(use-package flycheck
  :ensure t
  :init
  (global-flycheck-mode t))

这些符号("')是否显示不正确,或者这是我可以覆盖的某种默认飞行检查配置?

2020 年 4 月 25 日更新(可能的解决方案)

奇怪的是,我执行pip install --upgrade pylint 只是为了检查我是否真的拥有最新版本的pylint,然后它从2.3.0 升级到2.4.4,这就解决了这个问题。

但是,此解决方案与使用 https://pypi.org/project/pylint-odoo/ 冲突,因为它会将我恢复到具有那些 html 转义序列的版本 2.3.0

当日更新

confirmed 是 Pylint 的上游 bug。

【问题讨论】:

  • 由于链接可能无法使用,因此最好直接在此处包含链接内容的摘要。图像可以上传到 SO 并内联。在这种情况下,最好在代码块中键入消息。代码块是通过缩进 4 个空格来创建的。看看我是如何编辑问题的。
  • 这是来自您的代码还是在 Emacs 本身中?换句话说,如果您使用emacs -Q(无初始化文件)启动 Emacs,然后加载 Flycheck 等,您会看到这一点吗?如果是这样,请考虑使用M-x report-emacs-bug 将其报告为错误或功能请求。如果没有,请一分为二,找出罪魁祸首。
  • @HackerBoss 我同意,这样更好! :) @Drew 我将如何在emacs -Q 缓冲区内启用flycheck?运行 M-x 然后输入 flycheck 时没有任何反应。
  • emacs -Q 开始时没有用户配置。这是一张白纸,它尽可能接近一个共同的起点。您可以执行任何命令,例如重现问题所需的暂存缓冲区,从而为我们提供了一个最小的示例。
  • 可能做任何你 init.el 做的事情。如果您不知道它是如何工作的(例如,您使用的是 spacemacs 或类似的),请将目录 fly​​check 添加到 load-path(require 'flycheck)

标签: emacs message flycheck


【解决方案1】:

以下是我的 flycheck 错误如何在 emacs 上显示的示例:

Method name "createQATask" doesn't conform to '[a-z_][a-z0-9_]{2,30}$' pattern [invalid-name]

linter 显然认为它应该生成 HTML 输出。

从外观上看,您正在运行所有python-flake8python-pylintpython-mypy。我建议您先一次测试一个,以确定是哪一个生成了该输出,然后查看该工具的文档以了解如何防止它生成 HTML。

【讨论】:

  • 我通过M-x flycheck-disable-checker禁用了除python-pylint之外的所有检查器,这似乎是罪魁祸首。但是,在文件上手动运行 pylint 命令会产生以下输出:wizards/create_qa.py:32:4: C0103: Method name "createQATask" doesn't conform to '[a-z_][a-z0-9_]{2,30}$' pattern (invalid-name) 这就是我希望 flycheck 在 emacs 缓冲区中显示消息的方式。
  • pylint.pycqa.org/en/1.6.0/run.html#command-line-options 说:“--output-format=<format> 选择输出格式(文本、html、自定义)。”
  • 我使用的是 PyLint 2.3.0 版,阅读 pylint 的更新日志让我觉得 html output-format 选项已被弃用。通过在我的~/.pylintrc 中将output-format 设置为html 来测试这一点可以确认这一点,因为在python 文件上运行pylint 会出错:pylint.exceptions.InvalidReporterError: html。将其设置为 colorized 具有预期的行为,虽然(并正确显示问题中提到的符号),但在使用 pylint 和 flycheck 时仍然无法正确显示符号。
  • 啊,抱歉,我查看的文档似乎向我展示了最新版本。你检查过 flycheck 是如何调用 pylint 的吗?
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2018-01-14
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2011-05-06
  • 1970-01-01
相关资源
最近更新 更多