Simplify empty line tracker (#3797)
This commit is contained in:
parent
0b301f8095
commit
e7e8d6287b
@ -49,7 +49,7 @@
|
|||||||
class Line:
|
class Line:
|
||||||
"""Holds leaves and comments. Can be printed with `str(line)`."""
|
"""Holds leaves and comments. Can be printed with `str(line)`."""
|
||||||
|
|
||||||
mode: Mode
|
mode: Mode = field(repr=False)
|
||||||
depth: int = 0
|
depth: int = 0
|
||||||
leaves: List[Leaf] = field(default_factory=list)
|
leaves: List[Leaf] = field(default_factory=list)
|
||||||
# keys ordered like `leaves`
|
# keys ordered like `leaves`
|
||||||
@ -579,16 +579,21 @@ def _maybe_empty_lines(self, current_line: Line) -> Tuple[int, int]:
|
|||||||
else:
|
else:
|
||||||
before = 0
|
before = 0
|
||||||
depth = current_line.depth
|
depth = current_line.depth
|
||||||
|
|
||||||
|
previous_def = None
|
||||||
while self.previous_defs and self.previous_defs[-1].depth >= depth:
|
while self.previous_defs and self.previous_defs[-1].depth >= depth:
|
||||||
|
previous_def = self.previous_defs.pop()
|
||||||
|
|
||||||
|
if previous_def is not None:
|
||||||
|
assert self.previous_line is not None
|
||||||
if self.mode.is_pyi:
|
if self.mode.is_pyi:
|
||||||
assert self.previous_line is not None
|
|
||||||
if depth and not current_line.is_def and self.previous_line.is_def:
|
if depth and not current_line.is_def and self.previous_line.is_def:
|
||||||
# Empty lines between attributes and methods should be preserved.
|
# Empty lines between attributes and methods should be preserved.
|
||||||
before = min(1, before)
|
before = min(1, before)
|
||||||
elif (
|
elif (
|
||||||
Preview.blank_line_after_nested_stub_class in self.mode
|
Preview.blank_line_after_nested_stub_class in self.mode
|
||||||
and self.previous_defs[-1].is_class
|
and previous_def.is_class
|
||||||
and not self.previous_defs[-1].is_stub_class
|
and not previous_def.is_stub_class
|
||||||
):
|
):
|
||||||
before = 1
|
before = 1
|
||||||
elif depth:
|
elif depth:
|
||||||
@ -600,7 +605,7 @@ def _maybe_empty_lines(self, current_line: Line) -> Tuple[int, int]:
|
|||||||
before = 1
|
before = 1
|
||||||
elif (
|
elif (
|
||||||
not depth
|
not depth
|
||||||
and self.previous_defs[-1].depth
|
and previous_def.depth
|
||||||
and current_line.leaves[-1].type == token.COLON
|
and current_line.leaves[-1].type == token.COLON
|
||||||
and (
|
and (
|
||||||
current_line.leaves[0].value
|
current_line.leaves[0].value
|
||||||
@ -617,7 +622,7 @@ def _maybe_empty_lines(self, current_line: Line) -> Tuple[int, int]:
|
|||||||
before = 1
|
before = 1
|
||||||
else:
|
else:
|
||||||
before = 2
|
before = 2
|
||||||
self.previous_defs.pop()
|
|
||||||
if current_line.is_decorator or current_line.is_def or current_line.is_class:
|
if current_line.is_decorator or current_line.is_def or current_line.is_class:
|
||||||
return self._maybe_empty_lines_for_class_or_def(current_line, before)
|
return self._maybe_empty_lines_for_class_or_def(current_line, before)
|
||||||
|
|
||||||
|
Loading…
Reference in New Issue
Block a user