Search code examples
pythonsublimetextsublimetext3pep8

Sublime Text Auto-Indent Python Keyword Arguments


I'm having an issue making Sublime act the way I like with keyword arguments. PEP-8 allows for two conventions for function calls:

function_name(
    arg=1,
    arg2=blah)

And:

function_name(arg=1,
              arg2=blah)

I much prefer the latter for lines less then 80 characters. but Sublime Text 3 doesn't accommodate that well. When I hit Enter after the first line comma, indentation continues four spaces in:

function_name(arg=1,
    arg2=blah)

Is there a way to get the editor to align the cursor to the position just right of the open parenthesis?

Thanks!


Solution

  • You need to change Sublime Text Preferences.

    1. Open Preferences
    2. Settings -> User
    3. Add this line there:
    {"indent_to_bracket": true}
    
    1. Restart Sublime

    After this you code will be formated in this way:

    def function(*arg, 
                 **kwargs):
        #body