mirror of
https://github.com/astral-sh/ruff.git
synced 2025-11-14 09:45:54 +00:00
## Summary
The number of newlines after a trailing comment in a clause body needs
to follow the usual rules -- so, up to two for top-level, up to one for
nested, etc.
For example, Black preserves both newlines after `# comment` here:
```python
if True:
pass
# comment
else:
pass
```
But it truncates to one newline here:
```python
if True:
if True:
pass
# comment
else:
pass
else:
pass
```
## Test Plan
Significant improvement on `transformers`.
Before:
| project | similarity index | total files | changed files |
|--------------|------------------:|------------------:|------------------:|
| cpython | 0.76083 | 1789 | 1631 |
| django | 0.99983 | 2760 | 36 |
| transformers | 0.99957 | 2587 | 402 |
| twine | 1.00000 | 33 | 0 |
| typeshed | 0.99979 | 3496 | 22 |
| warehouse | 0.99967 | 648 | 15 |
| zulip | 0.99972 | 1437 | 21 |
After:
| project | similarity index | total files | changed files |
|--------------|------------------:|------------------:|------------------:|
| cpython | 0.76083 | 1789 | 1631 |
| django | 0.99983 | 2760 | 36 |
| **transformers** | **0.99963** | **2587** | **323** |
| twine | 1.00000 | 33 | 0 |
| typeshed | 0.99979 | 3496 | 22 |
| warehouse | 0.99967 | 648 | 15 |
| zulip | 0.99972 | 1437 | 21 |
|
||
|---|---|---|
| .. | ||
| snapshots | ||
| fixtures.rs | ||