mirror of https://github.com/astral-sh/ruff
Break `with` on end-of-line trailing comments (#7685)
## Summary
Ensures that:
```python
with (
a # comment
):
pass
```
Retains its parentheses.
Closes https://github.com/astral-sh/ruff/issues/6750.
## Test Plan
`cargo test`
This commit is contained in:
parent
58b50a6290
commit
a6d79c03b3
|
|
@ -108,6 +108,40 @@ with (
|
|||
b # trailing b same line comment
|
||||
): ...
|
||||
|
||||
with (
|
||||
# comment
|
||||
a
|
||||
):
|
||||
pass
|
||||
|
||||
with (
|
||||
a # comment
|
||||
):
|
||||
pass
|
||||
|
||||
with (
|
||||
a
|
||||
# comment
|
||||
):
|
||||
pass
|
||||
|
||||
with (
|
||||
# comment
|
||||
a as b
|
||||
):
|
||||
pass
|
||||
|
||||
with (
|
||||
a as b # comment
|
||||
):
|
||||
pass
|
||||
|
||||
with (
|
||||
a as b
|
||||
# comment
|
||||
):
|
||||
pass
|
||||
|
||||
with (
|
||||
[
|
||||
"aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa",
|
||||
|
|
|
|||
|
|
@ -84,9 +84,9 @@ impl FormatNodeRule<StmtWith> for FormatStmtWith {
|
|||
}))
|
||||
.fmt(f)?;
|
||||
} else if let [item] = item.items.as_slice() {
|
||||
// This is similar to `maybe_parenthesize_expression`, but we're not dealing with an
|
||||
// expression here, it's a `WithItem`.
|
||||
if comments.has_leading(item) || comments.has_trailing_own_line(item) {
|
||||
// This is similar to `maybe_parenthesize_expression`, but we're not
|
||||
// dealing with an expression here, it's a `WithItem`.
|
||||
if comments.has_leading(item) || comments.has_trailing(item) {
|
||||
optional_parentheses(&item.format()).fmt(f)?;
|
||||
} else {
|
||||
item.format().fmt(f)?;
|
||||
|
|
|
|||
|
|
@ -114,6 +114,40 @@ with (
|
|||
b # trailing b same line comment
|
||||
): ...
|
||||
|
||||
with (
|
||||
# comment
|
||||
a
|
||||
):
|
||||
pass
|
||||
|
||||
with (
|
||||
a # comment
|
||||
):
|
||||
pass
|
||||
|
||||
with (
|
||||
a
|
||||
# comment
|
||||
):
|
||||
pass
|
||||
|
||||
with (
|
||||
# comment
|
||||
a as b
|
||||
):
|
||||
pass
|
||||
|
||||
with (
|
||||
a as b # comment
|
||||
):
|
||||
pass
|
||||
|
||||
with (
|
||||
a as b
|
||||
# comment
|
||||
):
|
||||
pass
|
||||
|
||||
with (
|
||||
[
|
||||
"aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa",
|
||||
|
|
@ -297,10 +331,12 @@ with (
|
|||
... # body
|
||||
# body trailing own
|
||||
|
||||
with a as ( # a # as
|
||||
# own line
|
||||
bbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbb
|
||||
): # b
|
||||
with (
|
||||
a as ( # a # as
|
||||
# own line
|
||||
bbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbb
|
||||
) # b
|
||||
):
|
||||
pass
|
||||
|
||||
|
||||
|
|
@ -372,13 +408,49 @@ with (
|
|||
...
|
||||
|
||||
with (
|
||||
a
|
||||
# trailing own line comment
|
||||
) as ( # trailing as same line comment
|
||||
b
|
||||
): # trailing b same line comment
|
||||
(
|
||||
a
|
||||
# trailing own line comment
|
||||
) as ( # trailing as same line comment
|
||||
b
|
||||
) # trailing b same line comment
|
||||
):
|
||||
...
|
||||
|
||||
with (
|
||||
# comment
|
||||
a
|
||||
):
|
||||
pass
|
||||
|
||||
with (
|
||||
a # comment
|
||||
):
|
||||
pass
|
||||
|
||||
with (
|
||||
a
|
||||
# comment
|
||||
):
|
||||
pass
|
||||
|
||||
with (
|
||||
# comment
|
||||
a as b
|
||||
):
|
||||
pass
|
||||
|
||||
with (
|
||||
a as b # comment
|
||||
):
|
||||
pass
|
||||
|
||||
with (
|
||||
a as b
|
||||
# comment
|
||||
):
|
||||
pass
|
||||
|
||||
with (
|
||||
[
|
||||
"aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa",
|
||||
|
|
|
|||
Loading…
Reference in New Issue