【问题标题】:`Ctrl` + `Alt` + `L` doesn't fix warning PEP 8: E122 continuation line missing indentation or outdented`Ctrl` + `Alt` + `L` 无法修复警告 PEP 8:E122 续行缺少缩进或缩进
【发布时间】:2021-09-29 14:59:35
【问题描述】:

当我收到警告时

PEP 8: E122 continuation line missing indentation or outdented

Ctrl + Alt + L 不执行必要的缩进。相反,缩进必须手动完成。

好像这还不够,如果我之后执行 Ctrl + Alt + L,则该行将不缩进到先前的错误级别,这会再次引发上述警告。有什么办法可以解决这个讨厌的问题?

根据要求,这是一个示例:

def foo():
    return range(15)


var1, var2, var3, var4, var5, var6, var7, var8, var9, var10, var11, var12, var13, var14, \
var15 = foo()

Editor -> Code Style -> Markdown 设置:

Hard wrap = 80

Wrap on typing = Yes.

【问题讨论】:

  • 我认为如果您还包括一个示例,这将是一个更好的问题。 PyCharm 并不总是使用最好的格式(有时它是不一致的)。 OTOH PEP8 也不是没有问题,有时最好以不同的方式编写代码

标签: python pycharm refactoring indentation pep8


【解决方案1】:

PyCharm 有一些内置功能可以自动更正续行缩进,但对于问题中显示的特定情况没有。

显示的代码是Python,所以对应的设置是File>Settings>Editor>>Code Style>Python@9876543@34@9876543@34@9 p>

如果您查看屏幕截图,您想要的功能适用于称为Wrap if long 的可用选项(与Hard wrap at 限制一起使用)。如果您对任何具有前一个选项的构造(例如导入)尝试相同的操作,则按 Ctrl + Alt + L 会自动更正续行缩进。 但是,您的示例是针对单行中的多个属性声明,并且没有解包选项。

这给用户留下了 3 种常见的选择:

  1. 使用Python Black 进行代码格式化。
  2. 在这种情况下手动进行格式化。
  3. 忽略 PEP 8 样式指南并关闭 linter 警告。

但总而言之,这并不是因为您做错了什么,并且没有隐藏的设置可以实现这一点。 IDE 根本没有针对这个特定结构的格式化功能。

您也可以在JetBrains bugtracker 发布功能请求。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2020-01-14
    • 2016-07-11
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2010-11-18
    相关资源
    最近更新 更多