如何忽略 Sublime Text 3 Anaconda 行的 lint 错误?

Posted

技术标签:

【中文标题】如何忽略 Sublime Text 3 Anaconda 行的 lint 错误?【英文标题】:How can I ignore a lint error for a line with Sublime Text 3 Anaconda? 【发布时间】:2014-06-23 09:49:13 【问题描述】:

我将Anaconda 与 Sublime 文本 3 一起使用。我将 lint 设置保留为默认设置,但我在 .sublime-project 文件中包含以下覆盖。

"settings": 
        "anaconda_gutter_marks": true,
        "anaconda_gutter_theme": "alpha",
        "anaconda_linting_behaviour": "always",

    

我希望能够忽略某些行的“行太长”,特别是带有urls in the comments 的行。我喜欢将它用于其他线路,所以我宁愿不完全禁用它。

我只找到了有关为 pylint 执行此操作的信息,但如果可能的话,我宁愿使用默认 linter,因为这似乎与它的 own issues 一起出现在这个插件中。

我已经包含了 sublimelinter 标签,因为 anaconda 声明它的 linting 是基于该插件的。

【问题讨论】:

Daniel Rucci,如果它适合你,请接受 Nostalg.io 的回答。在 2018 年 Anaconda 支持 #noqa。谢谢。 【参考方案1】:

转到 Anaconda.sublime-settings 文件,

首选项 > 包设置 > Anaconda > 设置

根据您使用的 linter,您会找到几个选项。

例如,要为 pep8 禁用“line too long”的 linting,请填写以下内容:

"pep8_ignore":
    [
    "E501"
    ],

【讨论】:

【参考方案2】:

首选项 > 包设置 > Anaconda > 设置 - 用户


    "pep8_max_line_length": 120


【讨论】:

【参考方案3】:

截至今天(2017 年 10 月 15 日),在我看来,您可以# noqa 语法与 Anaconda 一起用于 Sublime Text 3。也适用于行很长,你可以在行尾添加# noqa E501

例子:

shipping_account = models.ForeignKey(Account, related_name='order_shipping_set') # noqa E501

【讨论】:

我假设通过将E501 放在末尾,它会忽略“行太长”错误。但它似乎忽略了所有 lint 错误。 (我有一行 200 个字符,我添加了 # noqa E231 期望看到 E501 错误显示......但它没有)。这是正确的,还是我做错了什么?【参考方案4】:

要针对特定​​错误禁用 lints,请转到 Anaconda.sublime-settings 文件(Preferences > Packages Settings > Anaconda > Settings)。根据您使用的 linter,您会找到几个选项。

例如,要为 pep8 禁用“line too long”的 linting,请填写以下内容:

"pep8_ignore":
[
    "E501"
],

此外,找出正确错误代码的最简单方法是在屏幕底部查看 lint 错误本身。

【讨论】:

这个问题询问如何忽略错误仅在某些行,您的答案没有解决。 第一次更改 Anaconda 用户设置?转到Preferences > Packages Settings > Anaconda > Settings - User,然后逐字使用 "pep8_ignore": ["E501"] 以获得有效的JSON。 @JeffreyBosboom 是的,但如果其他人正在寻找忽略所有情况,这就是答案。仍然有用的信息和主题【参考方案5】:

恐怕您不能仅针对某些行忽略错误类型(例如行太长)。您也不能只禁用警告或违规。

可以实现一些自定义系统,例如 flake8 中的 #noqa 注释,以使插件能够忽略某些代码行,但这必须实现,因为插件不支持它并且有没有计划使用flake8 来代替已经被单独使用的PyFlakespep8

在 GitHub 项目的问题中已经有一个类似(但以更抽象的方式)的请求,你可以在这里找到它 https://github.com/DamnWidget/anaconda/issues/142

【讨论】:

更新:@DamnWidget 在发布此问题几周后关闭了上述问题。现在使用带有某些数字(包括 E501)的# noqa error_number 将起作用。有关它将使用的错误编号的完整列表,请参见上面的链接(在此答案中)。认为更新可以为某些人节省一些点击次数。 如何禁用所有警告和违规行为?我只想显示错误。 目前无法忽略某些错误类型,您可以随时在我们的 Github 项目页面中打开一个新问题,我或任何其他贡献者可以研究它的便利性。 今天实现这一目标的一种方法是设置 "anaconda_linting": false 并结合使用 SublimeLinter-flake8 和 # flake8: noqa 我认为@CraigFischer 有这个问题的最佳答案(在许多类似的主题中)

以上是关于如何忽略 Sublime Text 3 Anaconda 行的 lint 错误?的主要内容,如果未能解决你的问题,请参考以下文章

开发者常用的 Sublime Text 3 插件

如何将Emmet安装到到 Sublime text 3?

如何优雅地使用 Sublime Text 3

如何将Emmet安装到到 Sublime text 3

如何更新 Sublime Text 3 以使用 Python 3.10 语法

如何使用Sublime Text 3作为Markdown编辑器