google / google/yapf

Add knob to prevent splitting first arg if indent is greater than split point

Open
#907 0 comments 0 reactions 0 assignees View on GitHub
Dominant language
Python
Stars
14k
Forks
904
PR merge metrics
No merged PRs in 30d

Description

Given the following code:

```
EXAMPLE_TUPLE = (
("FOO", "BAR"),
("FOO", "BAR"),
("FOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOO", "BARRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRR"),
)

def fun(FOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOO, BARRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRR):
pass

fun(x="FOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOO", y="BARRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRR")

```

and with `split_before_first_argument` set to `True`, i get the following:

```
EXAMPLE_TUPLE = (
("FOO", "BAR"),
("FOO", "BAR"),
(
"FOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOO",
"BARRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRR"),
)

def fun(
FOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOO,
BARRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRR):
pass

fun(
x="FOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOO",
y="BARRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRR")
```

whereas what i would hope for is:

```
EXAMPLE_TUPLE = (
("FOO", "BAR"),
("FOO", "BAR"),
("FOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOO",
"BARRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRR"),
)

def fun(FOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOO,
BARRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRR):
pass

fun(x="FOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOO",
y="BARRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRR")
```

in general i want `split_before_first_argument=True` i just dont want it if the new indent is greater than the column position of the split point

im wondering if a new knob could be added - something like `SPLIT_BEFORE_FIRST_ARG_ON_GREATER_INDENT` that would allow this behaviour

Contributor guide

Open the contributing guide

Assessment

This issue has not been assessed yet.

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.