Skip to content

Commit

Permalink
Fix an issue where extra empty lines are added. (psf#3470)
Browse files Browse the repository at this point in the history
  • Loading branch information
yilei authored and hugovk committed Jan 16, 2023
1 parent e70072c commit 32c0348
Show file tree
Hide file tree
Showing 3 changed files with 55 additions and 1 deletion.
2 changes: 2 additions & 0 deletions CHANGES.md
Expand Up @@ -23,6 +23,8 @@
regular and f-strings start with an empty span (#3463)
- Fix a crash in preview advanced string processing where a standalone comment is placed
before a dict's value (#3469)
- Fix an issue where extra empty lines are added when a decorator has `# fmt: skip`
applied or there is a standalone comment between decorators (#3470)
- Do not put the closing quotes in a docstring on a separate line, even if the line is
too long (#3430)
- Long values in dict literals are now wrapped in parentheses; correspondingly
Expand Down
3 changes: 2 additions & 1 deletion src/black/lines.py
Expand Up @@ -520,7 +520,8 @@ def maybe_empty_lines(self, current_line: Line) -> LinesBlock:
and (self.semantic_leading_comment is None or before)
):
self.semantic_leading_comment = block
elif not current_line.is_decorator:
# `or before` means this decorator already has an empty line before
elif not current_line.is_decorator or before:
self.semantic_leading_comment = None

self.previous_line = current_line
Expand Down
51 changes: 51 additions & 0 deletions tests/data/preview/comments9.py
Expand Up @@ -114,6 +114,31 @@ def first_method(self):
pass


# Regression test for https://github.com/psf/black/issues/3454.
def foo():
pass
# Trailing comment that belongs to this function


@decorator1
@decorator2 # fmt: skip
def bar():
pass


# Regression test for https://github.com/psf/black/issues/3454.
def foo():
pass
# Trailing comment that belongs to this function.
# NOTE this comment only has one empty line below, and the formatter
# should enforce two blank lines.

@decorator1
# A standalone comment
def bar():
pass


# output


Expand Down Expand Up @@ -252,3 +277,29 @@ class MyClass:
# More comments.
def first_method(self):
pass


# Regression test for https://github.com/psf/black/issues/3454.
def foo():
pass
# Trailing comment that belongs to this function


@decorator1
@decorator2 # fmt: skip
def bar():
pass


# Regression test for https://github.com/psf/black/issues/3454.
def foo():
pass
# Trailing comment that belongs to this function.
# NOTE this comment only has one empty line below, and the formatter
# should enforce two blank lines.


@decorator1
# A standalone comment
def bar():
pass

0 comments on commit 32c0348

Please sign in to comment.