4

我正在尝试将 Visual Studio Code 设置为使用autopep8但忽略 E266(块注释的前导 '#' 太多)以允许注释中的 Markdown 子标题的格式。

--ignore 设置似乎适用于其他错误,如 E302,但不适用于 E266。

我的格式化配置如下,E266 仍然被强制执行,即使 E302 被忽略

    "python.formatting.provider": "autopep8",
    "python.formatting.autopep8Args": [
        "--ignore",
        "E266,E302",
        // E266 = multiple-# in comments
        // E302 = expect 2 blank lines before def
    ],

使用上面的配置,autopep8 将忽略 E302(因此它不会在 def 之前插入行),但它会继续删除每个 E266 注释中的额外 #。

我可以将我的 Linter 设置为忽略 E266,这样它就不会在 UI 中加下划线,但不会在修改代码的 Formatter 中加下划线。这是运行良好的 Linter 配置

    "python.pythonPath": "...path...",
    "python.linting.pep8Enabled": true,
    "python.linting.pep8Args": [
        "--ignore=E266"
        // E266 = multiple-# in comments
    ],
    "python.linting.pylintPath": "...path...",
    "python.linting.pylintArgs": [
        "--load-plugins",
        "pylint_django"
    ],
    "python.linting.pylintEnabled": true,

是否存在类似于 E266 的重叠规则导致格式化程序在忽略 E266 的情况下仍进行更改?不会出现,因为忽略 E266 时 Linter 无法识别正在编辑的行。

Example.py用于示例使用

## These lines will lose one "#" when Formatted in VSCode
## Even though we set it to ignore E266
4

1 回答 1

6

You're looking for E265 - Format block comments.

With the following config in my Vscode :

    "python.formatting.autopep8Args": [
    "--ignore=E302,E265"
],

Your example is unchanged for me.
It seems like autopep8 --list-fixes does not match what they list in the README.

于 2019-10-04T08:42:18.290 回答