更改PyCharm中Black插件的88个字符限制

时间:2018-12-10 13:58:32

标签: formatting pycharm

我在PyCharm中使用Black格式化我的Python代码。

不幸的是,我正在使用Black-Pycharm插件,选择代码并在其上应用Black(Code > Reformat Code (BLACK)将我的所有行均削减为88个字符(Black的默认限制)。

我想更改此限制以将行削减为80个字符。我尝试了两种不同的方式:

  1. 将“黑色插件设置”中的Black exe路径从~/.local/bin/black更改为~/.local/bin/black -l80,但将PyCharm应用于Black会输出以下错误:{{1 }}

  2. 在Pycharm中将Black用作“外部工具”(如here所述),并在参数文本框中指定行长。这成功以所需的字符数限制将Black应用于我的文件,但是:

    • 它会自动使用新格式的文件保存/替换我的文件,我无法撤消更改。
    • 不能仅在部分代码上应用黑色

您知道在以下情况下使用Black的方法吗?

  • 指定所需行长的功能
  • 仅格式化一部分代码的能力

同时?

编辑:显然PyCharm不能仅将Black用于一部分代码...

2 个答案:

答案 0 :(得分:1)

我将Black用作PyCharm中的外部工具,但是我可以通过在我的根项目目录中添加一个pyproject.tomlThe PEP / more info)文件来指定行长。我不必通过任何论点。也许它能够解决您的问题。看起来是这样的:

# NOTE: you have to use single-quoted strings in TOML for regular expressions.
# It's the equivalent of r-strings in Python.  Multiline strings are treated as
# verbose regular expressions by Black.  Use [ ] to denote a significant space
# character.

[tool.black]
line-length = 79
target-version = ['py37', 'py38']
include = '\.pyi?$'
exclude = '''
/(
    \.eggs
  | \.git
  | \.hg
  | \.mypy_cache
  | \.tox
  | \.venv
  | _build
  | buck-out
  | build
  | dist

  # The following are specific to Black, you probably don't want those.
  | blib2to3
  | tests/data
  | profiling
)/
'''

答案 1 :(得分:1)

在调整黑色“外部工具”的线长时,我也遇到同样的问题。

1-按照此链接安装黑色并将其设置为外部工具:https://black.readthedocs.io/en/stable/editor_integration.html#pycharm-intellij-idea

2-在“ PyCharm / IntelliJ IDEA”部分的“参数”中:

将“ $ FilePath $”替换为“ $ FilePath $” -l 120

注意:'-l 120'应该在引号之外,并用所需的任何行长替换120。

干杯!

Maher。