`Ctrl` + `Alt` + `L` 无法修复警告 PEP 8:E122 续行缺少缩进或缩进

`Ctrl` + `Alt` + `L` doesn't fix warning PEP 8: E122 continuation line missing indentation or outdented

当我收到警告时

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 有一些内置功能可以自动更正续行缩进,但对于问题中显示的特定情况则没有。

显示的代码是Python 所以对应的设置在File > Settings > Editor > Code Style > Python > Wrapping and Braces.

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

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

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

但总而言之,这不是由于您做错了什么,也没有隐藏的设置可以启用此功能。 IDE 根本没有针对此特定构造的格式化功能。

您还可以 post 在 JetBrains bugtracker 提出功能请求。