pythonvisual-studio-code

How can I make VS Code format my Python code?


I have following Python code:

check_files(original_file = original_file_name, 
                   used_file = used_file_name, 
                   unused_file = unused_file_name)

I want to make it instead to look like:

check_files(original_file = original_file_name, 
            used_file = used_file_name, 
            unused_file = unused_file_name)

Also I want to correct formatting not only for function calls but also that way dictionary key/value pairs and etc.

For Example, in RStudio, if I select the code and press CTRL + I RStudio will correct formating as I have described above. Is there any similar way to correct formating in VSCode?


Solution

  • Based on the comments by @starball, @jarmod and additional googling I found that you need to follow those steps:


    Step 1. Install Python extension from marketplace: https://marketplace.visualstudio.com/items?itemName=ms-python.python


    Step 2. Install one of the formatter packages for Python.

    The Python extension supports source code formatting using either autopep8 (the default), black, or yapf.

    from and More about it here: https://code.visualstudio.com/docs/python/editing#_formatting


    Step 3. Select which code formatter you want to use in python.formatting.provider which is in settings>Extensions>Python (this maybe automatically set after step 1 and step 2). Also, in settings>Extensions>Python there are more options to select.



    How to use formatting:

    The code formatting is available in Visual Studio Code (VSCode) through the following shortcuts or key combinations:

    On Windows Shift + Alt + F

    On macOS Shift + Option + F

    On Linux Ctrl + Shift + I

    Format Selection (Ctrl+K Ctrl+F) - Format the selected text.

    Or you can use right click menu:

    enter image description here

    from: https://mkyong.com/vscode/how-to-format-source-code-in-visual-studio-code-vscode/

    and from: https://code.visualstudio.com/docs/editor/codebasics#_formatting