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

14
我在PyCharm中使用Black格式化我的Python代码。我正在使用Black-Pycharm插件,但是选择代码并应用Black(Code > Reformat Code (BLACK))会把所有行裁剪为88个字符(Black的默认限制)。
我想将此限制更改为在80个字符处裁剪行。我尝试了两种不同的方法:
1. 在“Black插件设置”中更改Black exe路径从~/.local/bin/black~/.local/bin/black -l80, 但在PyCharm中应用Black时,输出此错误: BlackPycharm: Cannot run program "/home/BCT/.local/bin/black -l80": error=2, File or folder not found 2. 在Pycharm中使用Black作为“外部工具”(如此处所述),并在参数文本框中指定行长度。这成功地将Black应用于带有所需字符限制的文件,但是:
- 它自动保存/替换我的文件为新格式化的文件,我无法撤消这个更改。 - 我无法仅对代码的一部分应用Black
你知道同时使用以下功能的Black的方法吗?
- 指定所需的行长度 - 仅对代码的一部分进行重新格式化

编辑:显然,PyCharm 无法仅针对部分代码使用 Black...


2
你尝试了很多方法,但我认为你可以在PyCharm中使用File Watchers使用black重新格式化你的代码。此外,你还可以通过文件监听器向black传递参数。该参数可以是最大行长度。文件监听器将重新格式化你的文件,所以你可以撤消命令。 - Dinko Pehar
4个回答

20

我也曾遇到过调整黑色“外部工具”的行长度的问题。

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

2- 在“PyCharm/IntelliJ IDEA”部分中,在“Arguments”中:

用"$FilePath$" -l 120替换"$FilePath$"

注意:“-l 120”应在引号之外,并根据需要替换为所需的行长度。

干杯!

Maher。


14

我在PyCharm中使用Black作为外部工具,但是我可以通过添加pyproject.toml文件(PEP/更多信息)到我的根项目目录中来指定行长。我不必传递任何参数。也许它能解决你的问题。它的样子如下:

# 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
)/
'''

0

@Nadros的解决方案是正确的,但需要注意的是,如果您正在使用它来格式化保存的文件,则还必须向已创建的FileWatcher添加-l 120


0
Pycharm的首选项现在提供了一种通过空格分隔命令行参数的方法。 我可以将line-length设置为我想要的值100,如下所示。

enter image description here

一旦应用了设置,只需使用option+command+L键(适用于macOS)来自动格式化,或者在设置中勾选On save选项,这样它就会自动为您格式化。

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接