VS Code Python + Black formatter arguments - python.formatting.blackArgs

19,057

Solution 1

The issue is that you need =80 instead of 80 after --line-length for version 1.38.1 and above:

--line-length=80  

enter image description here

Solution 2

The examples of formatter-specific settings show the following:

"python.formatting.autopep8Args": ["--max-line-length", "120", "--experimental"],
"python.formatting.yapfArgs": ["--style", "{based_on_style: chromium, indent_width: 20}"]

So try:

"python.formatting.blackArgs": ["--line-length", "80"]

Solution 3

The proper way to config in the Settings GUI pane is with --line-length and the desired value as separate items:

Visual Studio Code GUI Settings for Python Formatting

This converts into the settings.json into this:

Visual Studio Code JSON Settings for Python Formatting

"python.formatting.provider": "black",
"python.formatting.blackArgs": ["--line-length", "110"]

Solution 4

My setting is: "python.formatting.blackArgs": ["--line-length=110"] and it's working correctly. The equal sign was missing in your user settings.json

Share:
19,057
Rafael Zayas
Author by

Rafael Zayas

Updated on June 16, 2022

Comments

  • Rafael Zayas
    Rafael Zayas about 2 years

    I'm using the May 2018 Python extension (released June 2018) for VS Code 1.23.1 on Windows, python 3.6 via Anaconda, conda installing black from conda-forge into my conda environment.

    In my user settings.json I have the below:

    "python.formatting.blackArgs": [
        "--line-length 80"
    ],
    

    which I'd think would be the correct way to structure this to pass arguments to black in VS Code Python formatting.

    However, in my python Output pane I get the below:

    Formatting with black failed.
    Error: Error: no such option: --line-length 80
    

    EDIT: If I edit my settings.json to be no args, such as:

    "python.formatting.blackArgs": [],
    

    black works as expected.

    Does anyone know how to pass arguments correctly to the new (as of June 2018) black formatter?