ruff/crates/ruff_python_ast/src
konsti 0c3123e07e
Insert newline after nested function or class statements (#7946)
**Summary** Insert a newline after nested function and class
definitions, unless there is a trailing own line comment.

We need to e.g. format
```python
if platform.system() == "Linux":
    if sys.version > (3, 10):
        def f():
            print("old")
    else:
        def f():
            print("new")
    f()
```
as
```python
if platform.system() == "Linux":
    if sys.version > (3, 10):

        def f():
            print("old")

    else:

        def f():
            print("new")

    f()
```
even though `f()` is directly preceded by an if statement, not a
function or class definition. See the comments and fixtures for trailing
own line comment handling.

**Test Plan** I checked that the new content of `newlines.py` matches
black's formatting.

---------

Co-authored-by: Charlie Marsh <charlie.r.marsh@gmail.com>
2023-10-18 09:45:58 +00:00
..
visitor Move {AnyNodeRef, AstNode} to ruff_python_ast crate root (#8030) 2023-10-18 00:01:18 +00:00
all.rs Allow named expressions in __all__ assignments (#7673) 2023-09-27 00:36:55 -04:00
call_path.rs Store call paths rather than stringified names (#6102) 2023-08-05 15:21:50 +00:00
comparable.rs Extend reimplemented-starmap (FURB140) to catch calls with a single and starred argument (#7768) 2023-10-02 21:38:05 -04:00
docstrings.rs Move Python whitespace utilities into new ruff_python_whitespace crate (#4993) 2023-06-10 00:59:57 +00:00
expression.rs Move {AnyNodeRef, AstNode} to ruff_python_ast crate root (#8030) 2023-10-18 00:01:18 +00:00
hashable.rs Pull in RustPython parser (#6099) 2023-07-27 09:29:11 +00:00
helpers.rs Move {AnyNodeRef, AstNode} to ruff_python_ast crate root (#8030) 2023-10-18 00:01:18 +00:00
identifier.rs Move Ranged into ruff_text_size (#6919) 2023-08-27 14:12:51 -04:00
imports.rs Include alias when formatting import-from structs (#5786) 2023-07-15 15:53:21 -04:00
int.rs Include radix base prefix in large number representation (#7700) 2023-09-28 20:38:06 +00:00
lib.rs Move {AnyNodeRef, AstNode} to ruff_python_ast crate root (#8030) 2023-10-18 00:01:18 +00:00
node.rs Insert newline after nested function or class statements (#7946) 2023-10-18 09:45:58 +00:00
nodes.rs Add support for PEP 701 (#7376) 2023-09-29 02:55:39 +00:00
parenthesize.rs Move {AnyNodeRef, AstNode} to ruff_python_ast crate root (#8030) 2023-10-18 00:01:18 +00:00
relocate.rs Add an implicit concatenation flag to string and bytes constants (#6512) 2023-08-14 13:46:54 +00:00
statement_visitor.rs Remove Stmt::TryStar (#6566) 2023-08-14 13:39:44 -04:00
stmt_if.rs Move Ranged into ruff_text_size (#6919) 2023-08-27 14:12:51 -04:00
str.rs Replace dynamic implicit concatenation detection with parser flag (#6513) 2023-08-14 10:27:17 -04:00
traversal.rs [refurb] Implement repeated-append rule (FURB113) (#6702) 2023-08-28 22:51:59 +00:00
types.rs Remove RefEquality (#6393) 2023-08-07 16:04:50 +00:00
visitor.rs Don't reorder parameters in function calls (#7268) 2023-09-13 09:01:49 +00:00
whitespace.rs Move Ranged into ruff_text_size (#6919) 2023-08-27 14:12:51 -04:00