如何忽略 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
来代替已经被单独使用的PyFlakes
和pep8
。
在 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 错误?的主要内容,如果未能解决你的问题,请参考以下文章