【问题标题】:Change 88 characters limit for Black plugin in PyCharm更改 PyCharm 中 Black 插件的 88 个字符限制
【发布时间】:2018-12-10 13:58:32
【问题描述】:

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

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

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

  1. 将“Black 插件设置”中的 Black exe 路径从 ~/.local/bin/black 更改为 ~/.local/bin/black -l80,但使用 PyCharm 输出此错误BlackPycharm: Cannot run program "/home/BCT/.local/bin/black -l80": error=2, File or folder not found

  2. 在 Pycharm 中使用黑色作为“外部工具”(如 here 所述),并在参数文本框中指定行长。这成功地在我的文件上应用了黑色并具有所需的字符限制,但是:

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

你知道如何使用黑色:

  • 能够指定所需的行长
  • 仅重新格式化部分代码的能力

同时?

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

【问题讨论】:

  • 您已经尝试了很多东西,但我认为您可以使用黑色和 PyCharm 中的 File Watchers 重新格式化您的代码。而且,您可以通过文件观察器将参数传递给黑色。也可以传递最大行长度的参数。文件观察器只会重新格式化您的文件,因此您可以撤消命令。

标签: formatting pycharm


【解决方案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 替换为您需要的任何行长度。

干杯!

马赫。

【讨论】:

    【解决方案2】:

    我在 PyCharm 中使用 Black 作为外部工具,但我可以通过将 pyproject.toml (The 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
    )/
    '''
    

    【讨论】:

      猜你喜欢
      • 2012-12-01
      • 1970-01-01
      • 2020-11-16
      • 1970-01-01
      • 2020-03-11
      • 2015-04-30
      • 2016-05-29
      • 1970-01-01
      • 2021-07-23
      相关资源
      最近更新 更多