Correctly associate own-line comments in bodies (#4671)

This commit is contained in:
Micha Reiser 2023-06-01 08:12:53 +02:00 committed by GitHub
parent 46c3b3af94
commit be31d71849
No known key found for this signature in database
GPG key ID: 4AEE18F83AFDEB23
16 changed files with 1747 additions and 144 deletions

View file

@ -0,0 +1,77 @@
---
source: crates/ruff_python_formatter/src/comments/mod.rs
expression: comments.debug(test_case.source_code)
---
{
Node {
kind: StmtPass,
range: 16..20,
source: `pass`,
}: {
"leading": [],
"dangling": [],
"trailing": [
SourceComment {
text: "# trailing `pass` comment",
position: EndOfLine,
formatted: false,
},
SourceComment {
text: "# Root `if` trailing comment",
position: OwnLine,
formatted: false,
},
],
},
Node {
kind: StmtIf,
range: 104..192,
source: `elif x < y:⏎`,
}: {
"leading": [
SourceComment {
text: "# Leading elif comment",
position: OwnLine,
formatted: false,
},
],
"dangling": [
SourceComment {
text: "# Leading else comment",
position: OwnLine,
formatted: false,
},
],
"trailing": [],
},
Node {
kind: StmtPass,
range: 120..124,
source: `pass`,
}: {
"leading": [],
"dangling": [],
"trailing": [
SourceComment {
text: "# `elif` trailing comment",
position: OwnLine,
formatted: false,
},
],
},
Node {
kind: StmtPass,
range: 188..192,
source: `pass`,
}: {
"leading": [],
"dangling": [],
"trailing": [
SourceComment {
text: "# `else` trailing comment",
position: OwnLine,
formatted: false,
},
],
},
}

View file

@ -0,0 +1,36 @@
---
source: crates/ruff_python_formatter/src/comments/mod.rs
expression: comments.debug(test_case.source_code)
---
{
Node {
kind: StmtIf,
range: 21..128,
source: `elif x < y:⏎`,
}: {
"leading": [],
"dangling": [
SourceComment {
text: "# Leading else comment",
position: OwnLine,
formatted: false,
},
],
"trailing": [],
},
Node {
kind: StmtIf,
range: 37..60,
source: `if x < 10:⏎`,
}: {
"leading": [],
"dangling": [],
"trailing": [
SourceComment {
text: "# `elif` trailing comment",
position: OwnLine,
formatted: false,
},
],
},
}

View file

@ -0,0 +1,126 @@
---
source: crates/ruff_python_formatter/src/comments/mod.rs
expression: comments.debug(test_case.source_code)
---
{
Node {
kind: MatchCase,
range: 84..132,
source: `case (x, y):⏎`,
}: {
"leading": [
SourceComment {
text: "# Leading `case(x, y)` comment",
position: OwnLine,
formatted: false,
},
],
"dangling": [],
"trailing": [],
},
Node {
kind: StmtReturn,
range: 109..132,
source: `return Point3d(x, y, 0)`,
}: {
"leading": [],
"dangling": [],
"trailing": [
SourceComment {
text: "# Trailing `case(x, y) comment",
position: OwnLine,
formatted: false,
},
],
},
Node {
kind: MatchCase,
range: 227..340,
source: `case (x, y, z):⏎`,
}: {
"leading": [
SourceComment {
text: "# Leading `case (x, y, z)` comment",
position: OwnLine,
formatted: false,
},
],
"dangling": [],
"trailing": [],
},
Node {
kind: StmtIf,
range: 255..340,
source: `if x < y:⏎`,
}: {
"leading": [],
"dangling": [],
"trailing": [
SourceComment {
text: "# trailing case comment",
position: OwnLine,
formatted: false,
},
],
},
Node {
kind: StmtExpr,
range: 327..340,
source: `print("else")`,
}: {
"leading": [],
"dangling": [],
"trailing": [
SourceComment {
text: "# Trailing else comment",
position: OwnLine,
formatted: false,
},
],
},
Node {
kind: MatchCase,
range: 489..550,
source: `case _:⏎`,
}: {
"leading": [],
"dangling": [],
"trailing": [
SourceComment {
text: "# Trailing match comment",
position: OwnLine,
formatted: false,
},
],
},
Node {
kind: StmtRaise,
range: 509..550,
source: `raise TypeError("not a poin... support")`,
}: {
"leading": [],
"dangling": [],
"trailing": [
SourceComment {
text: "# Trailing last case comment",
position: OwnLine,
formatted: false,
},
],
},
Node {
kind: StmtExpr,
range: 656..670,
source: `print("other")`,
}: {
"leading": [
SourceComment {
text: "# After match comment",
position: OwnLine,
formatted: false,
},
],
"dangling": [],
"trailing": [],
},
}

View file

@ -0,0 +1,21 @@
---
source: crates/ruff_python_formatter/src/comments/mod.rs
expression: comments.debug(test_case.source_code)
---
{
Node {
kind: StmtPass,
range: 12..16,
source: `pass`,
}: {
"leading": [],
"dangling": [],
"trailing": [
SourceComment {
text: "# Test",
position: OwnLine,
formatted: false,
},
],
},
}

View file

@ -4,18 +4,63 @@ expression: comments.debug(test_case.source_code)
---
{
Node {
kind: StmtExpr,
range: 143..155,
source: `test(10, 20)`,
kind: StmtIf,
range: 21..117,
source: `if x == y:⏎`,
}: {
"leading": [
"leading": [],
"dangling": [],
"trailing": [
SourceComment {
text: "# Trailing comment",
text: "# Trailing `if` statement comment",
position: OwnLine,
formatted: false,
},
],
},
Node {
kind: StmtExpr,
range: 101..117,
source: `print("Greater")`,
}: {
"leading": [],
"dangling": [],
"trailing": [],
"trailing": [
SourceComment {
text: "# trailing `else` comment",
position: OwnLine,
formatted: false,
},
],
},
Node {
kind: StmtFunctionDef,
range: 193..237,
source: `def other(y, z):⏎`,
}: {
"leading": [],
"dangling": [],
"trailing": [
SourceComment {
text: "# Trailing `other` function comment",
position: OwnLine,
formatted: false,
},
],
},
Node {
kind: StmtPass,
range: 233..237,
source: `pass`,
}: {
"leading": [],
"dangling": [],
"trailing": [
SourceComment {
text: "# Trailing `if` comment",
position: OwnLine,
formatted: false,
},
],
},
}

View file

@ -3,21 +3,6 @@ source: crates/ruff_python_formatter/src/comments/mod.rs
expression: comments.debug(test_case.source_code)
---
{
Node {
kind: ExprConstant,
range: 11..12,
source: `3`,
}: {
"leading": [],
"dangling": [],
"trailing": [
SourceComment {
text: "# trailing comment",
position: EndOfLine,
formatted: false,
},
],
},
Node {
kind: StmtExpr,
range: 1..33,
@ -33,4 +18,19 @@ expression: comments.debug(test_case.source_code)
},
],
},
Node {
kind: ExprConstant,
range: 11..12,
source: `3`,
}: {
"leading": [],
"dangling": [],
"trailing": [
SourceComment {
text: "# trailing comment",
position: EndOfLine,
formatted: false,
},
],
},
}

View file

@ -0,0 +1,66 @@
---
source: crates/ruff_python_formatter/src/comments/mod.rs
expression: comments.debug(test_case.source_code)
---
{
Node {
kind: StmtTry,
range: 17..136,
source: `try:⏎`,
}: {
"leading": [],
"dangling": [],
"trailing": [
SourceComment {
text: "# Trailing function comment",
position: OwnLine,
formatted: false,
},
],
},
Node {
kind: StmtPass,
range: 30..34,
source: `pass`,
}: {
"leading": [],
"dangling": [],
"trailing": [
SourceComment {
text: "# trailing try comment",
position: OwnLine,
formatted: false,
},
],
},
Node {
kind: ExcepthandlerExceptHandler,
range: 100..136,
source: `except Exception as ex:⏎`,
}: {
"leading": [
SourceComment {
text: "# leading handler comment",
position: OwnLine,
formatted: false,
},
],
"dangling": [],
"trailing": [],
},
Node {
kind: StmtPass,
range: 132..136,
source: `pass`,
}: {
"leading": [],
"dangling": [],
"trailing": [
SourceComment {
text: "# Trailing except comment",
position: OwnLine,
formatted: false,
},
],
},
}

View file

@ -0,0 +1,101 @@
---
source: crates/ruff_python_formatter/src/comments/mod.rs
expression: comments.debug(test_case.source_code)
---
{
Node {
kind: StmtTry,
range: 1..253,
source: `try:⏎`,
}: {
"leading": [],
"dangling": [
SourceComment {
text: "# leading else comment",
position: OwnLine,
formatted: false,
},
SourceComment {
text: "# leading finally comment",
position: OwnLine,
formatted: false,
},
],
"trailing": [],
},
Node {
kind: StmtPass,
range: 10..14,
source: `pass`,
}: {
"leading": [],
"dangling": [],
"trailing": [
SourceComment {
text: "# trailing try comment",
position: OwnLine,
formatted: false,
},
],
},
Node {
kind: ExcepthandlerExceptHandler,
range: 68..100,
source: `except Exception as ex:⏎`,
}: {
"leading": [
SourceComment {
text: "# leading handler comment",
position: OwnLine,
formatted: false,
},
],
"dangling": [],
"trailing": [],
},
Node {
kind: StmtPass,
range: 96..100,
source: `pass`,
}: {
"leading": [],
"dangling": [],
"trailing": [
SourceComment {
text: "# Trailing except comment",
position: OwnLine,
formatted: false,
},
],
},
Node {
kind: StmtPass,
range: 164..168,
source: `pass`,
}: {
"leading": [],
"dangling": [],
"trailing": [
SourceComment {
text: "# trailing else comment",
position: OwnLine,
formatted: false,
},
],
},
Node {
kind: StmtExpr,
range: 236..253,
source: `print("Finally!")`,
}: {
"leading": [],
"dangling": [],
"trailing": [
SourceComment {
text: "# Trailing finally comment",
position: OwnLine,
formatted: false,
},
],
},
}