Allow empty lines at beginning of blocks (again) (#4060)
This commit is contained in:
parent
e7e122e9ff
commit
61b529b7d1
@ -17,6 +17,8 @@
|
||||
- Standalone form feed characters at the module level are no longer removed (#4021)
|
||||
- Additional cases of immediately nested tuples, lists, and dictionaries are now
|
||||
indented less (#4012)
|
||||
- Allow empty lines at the beginning of all blocks, except immediately before a
|
||||
docstring (#4060)
|
||||
- Fix crash in preview mode when using a short `--line-length` (#4086)
|
||||
|
||||
### Configuration
|
||||
|
@ -689,18 +689,14 @@ def _maybe_empty_lines(self, current_line: Line) -> Tuple[int, int]:
|
||||
return 0, 1
|
||||
return before, 1
|
||||
|
||||
# In preview mode, always allow blank lines, except right before a function
|
||||
# docstring
|
||||
is_empty_first_line_ok = (
|
||||
Preview.allow_empty_first_line_before_new_block_or_comment
|
||||
in current_line.mode
|
||||
Preview.allow_empty_first_line_in_block in current_line.mode
|
||||
and (
|
||||
# If it's a standalone comment
|
||||
current_line.leaves[0].type == STANDALONE_COMMENT
|
||||
# If it opens a new block
|
||||
or current_line.opens_block
|
||||
# If it's a triple quote comment (but not at the start of a funcdef)
|
||||
not is_docstring(current_line.leaves[0])
|
||||
or (
|
||||
is_docstring(current_line.leaves[0])
|
||||
and self.previous_line
|
||||
self.previous_line
|
||||
and self.previous_line.leaves[0]
|
||||
and self.previous_line.leaves[0].parent
|
||||
and not is_funcdef(self.previous_line.leaves[0].parent)
|
||||
|
@ -191,7 +191,7 @@ class Preview(Enum):
|
||||
accept_raw_docstrings = auto()
|
||||
fix_power_op_line_length = auto()
|
||||
hug_parens_with_braces_and_square_brackets = auto()
|
||||
allow_empty_first_line_before_new_block_or_comment = auto()
|
||||
allow_empty_first_line_in_block = auto()
|
||||
single_line_format_skip_with_multiple_comments = auto()
|
||||
long_case_block_line_splitting = auto()
|
||||
allow_form_feeds = auto()
|
||||
|
@ -51,6 +51,17 @@ def baz():
|
||||
if x:
|
||||
a = 123
|
||||
|
||||
def quux():
|
||||
|
||||
new_line = here
|
||||
|
||||
|
||||
class Cls:
|
||||
|
||||
def method(self):
|
||||
|
||||
pass
|
||||
|
||||
# output
|
||||
|
||||
def foo():
|
||||
@ -104,3 +115,14 @@ def baz():
|
||||
# OK
|
||||
if x:
|
||||
a = 123
|
||||
|
||||
|
||||
def quux():
|
||||
|
||||
new_line = here
|
||||
|
||||
|
||||
class Cls:
|
||||
def method(self):
|
||||
|
||||
pass
|
@ -198,6 +198,7 @@ def foo():
|
||||
|
||||
# form feeds are prohibited inside blocks, or on a line with nonwhitespace
|
||||
def bar(a=1, b: bool = False):
|
||||
|
||||
pass
|
||||
|
||||
|
||||
|
Loading…
Reference in New Issue
Block a user