Allow up to two empty lines on module level and single empty lines otherwise
Fixes #74
This commit is contained in:
parent
1f445a01c8
commit
e5f8251704
11
README.md
11
README.md
@ -218,10 +218,10 @@ always emit an extra empty line after ``return``, ``raise``, ``break``,
|
|||||||
``continue``, and ``yield``. This is to make changes in control flow
|
``continue``, and ``yield``. This is to make changes in control flow
|
||||||
more prominent to readers of your code.
|
more prominent to readers of your code.
|
||||||
|
|
||||||
*Black* will allow single empty lines left by the original editors,
|
*Black* will allow single empty lines inside functions, and single and
|
||||||
except when they're added within parenthesized expressions. Since such
|
double empty lines on module level left by the original editors, except
|
||||||
expressions are always reformatted to fit minimal space, this whitespace
|
when they're within parenthesized expressions. Since such expressions
|
||||||
is lost.
|
are always reformatted to fit minimal space, this whitespace is lost.
|
||||||
|
|
||||||
It will also insert proper spacing before and after function definitions.
|
It will also insert proper spacing before and after function definitions.
|
||||||
It's one line before and after inner functions and two lines before and
|
It's one line before and after inner functions and two lines before and
|
||||||
@ -338,6 +338,9 @@ More details can be found in [CONTRIBUTING](CONTRIBUTING.md).
|
|||||||
* fixed 18.3a4 regression: don't crash and burn on empty lines with
|
* fixed 18.3a4 regression: don't crash and burn on empty lines with
|
||||||
trailing whitespace (#80)
|
trailing whitespace (#80)
|
||||||
|
|
||||||
|
* only allow up to two empty lines on module level and only single empty
|
||||||
|
lines within functions (#74)
|
||||||
|
|
||||||
|
|
||||||
### 18.3a4
|
### 18.3a4
|
||||||
|
|
||||||
|
4
black.py
4
black.py
@ -754,13 +754,13 @@ def maybe_empty_lines(self, current_line: Line) -> Tuple[int, int]:
|
|||||||
|
|
||||||
def _maybe_empty_lines(self, current_line: Line) -> Tuple[int, int]:
|
def _maybe_empty_lines(self, current_line: Line) -> Tuple[int, int]:
|
||||||
max_allowed = 1
|
max_allowed = 1
|
||||||
if current_line.is_comment and current_line.depth == 0:
|
if current_line.depth == 0:
|
||||||
max_allowed = 2
|
max_allowed = 2
|
||||||
if current_line.leaves:
|
if current_line.leaves:
|
||||||
# Consume the first leaf's extra newlines.
|
# Consume the first leaf's extra newlines.
|
||||||
first_leaf = current_line.leaves[0]
|
first_leaf = current_line.leaves[0]
|
||||||
before = first_leaf.prefix.count('\n')
|
before = first_leaf.prefix.count('\n')
|
||||||
before = min(before, max(before, max_allowed))
|
before = min(before, max_allowed)
|
||||||
first_leaf.prefix = ''
|
first_leaf.prefix = ''
|
||||||
else:
|
else:
|
||||||
before = 0
|
before = 0
|
||||||
|
@ -12,15 +12,19 @@ def f():
|
|||||||
if t == token.COMMENT: # another trailing comment
|
if t == token.COMMENT: # another trailing comment
|
||||||
return DOUBLESPACE
|
return DOUBLESPACE
|
||||||
|
|
||||||
|
|
||||||
assert p is not None, f"INTERNAL ERROR: hand-made leaf without parent: {leaf!r}"
|
assert p is not None, f"INTERNAL ERROR: hand-made leaf without parent: {leaf!r}"
|
||||||
|
|
||||||
|
|
||||||
prev = leaf.prev_sibling
|
prev = leaf.prev_sibling
|
||||||
if not prev:
|
if not prev:
|
||||||
prevp = preceding_leaf(p)
|
prevp = preceding_leaf(p)
|
||||||
if not prevp or prevp.type in OPENING_BRACKETS:
|
if not prevp or prevp.type in OPENING_BRACKETS:
|
||||||
|
|
||||||
|
|
||||||
return NO
|
return NO
|
||||||
|
|
||||||
|
|
||||||
if prevp.type == token.EQUAL:
|
if prevp.type == token.EQUAL:
|
||||||
if prevp.parent and prevp.parent.type in {
|
if prevp.parent and prevp.parent.type in {
|
||||||
syms.typedargslist,
|
syms.typedargslist,
|
||||||
|
Loading…
Reference in New Issue
Block a user