From b1d1cf1d382acd745a57a391a7befb6c300f6c9a Mon Sep 17 00:00:00 2001 From: Andrew Gallant Date: Thu, 26 Jun 2025 12:27:26 -0400 Subject: [PATCH] [ty] Add regression test for leading tab mis-alignment in diagnostic rendering (#18965) It turns out that astral-sh/ty#18692 also fixed astral-sh/ty#203. This PR adds a regression test for it. (Locally, I "unfixed" the bug and confirmed that this is actually a regression test.) Fixes astral-sh/ty#203 --- ...regression_leading_tab_label_alignment.svg | 38 ++++++++++++++++ ...egression_leading_tab_label_alignment.toml | 45 +++++++++++++++++++ 2 files changed, 83 insertions(+) create mode 100644 crates/ruff_annotate_snippets/tests/fixtures/color/regression_leading_tab_label_alignment.svg create mode 100644 crates/ruff_annotate_snippets/tests/fixtures/color/regression_leading_tab_label_alignment.toml diff --git a/crates/ruff_annotate_snippets/tests/fixtures/color/regression_leading_tab_label_alignment.svg b/crates/ruff_annotate_snippets/tests/fixtures/color/regression_leading_tab_label_alignment.svg new file mode 100644 index 0000000000..e666b9076a --- /dev/null +++ b/crates/ruff_annotate_snippets/tests/fixtures/color/regression_leading_tab_label_alignment.svg @@ -0,0 +1,38 @@ + + + + + + + error[E0308]: call-non-callable + + --> $DIR/main.py:5:9 + + | + + 4 | def f(): + + 5 | return (1 == '2')() # Tab indented + + | ^^^^^^^^^^^^ + + | + + + + diff --git a/crates/ruff_annotate_snippets/tests/fixtures/color/regression_leading_tab_label_alignment.toml b/crates/ruff_annotate_snippets/tests/fixtures/color/regression_leading_tab_label_alignment.toml new file mode 100644 index 0000000000..d8d68473d6 --- /dev/null +++ b/crates/ruff_annotate_snippets/tests/fixtures/color/regression_leading_tab_label_alignment.toml @@ -0,0 +1,45 @@ + +# [crates/ruff_db/src/diagnostic/render.rs:123:47] diag.to_annotate() = Message { + # level: Error, + # id: Some( + # "call-non-callable", + # ), + # title: "Object of type `bool` is not callable", + # snippets: [ + # Snippet { + # origin: Some( + # "main.py", + # ), + # line_start: 1, + # source: "def f():\n\treturn (1 == '2')() # Tab indented\n", + # annotations: [ + # Annotation { + # range: 17..29, + # label: None, + # level: Error, + # }, + # ], + # fold: false, + # }, + # ], + # footer: [], +# } + +[message] +level = "Error" +id = "E0308" +title = "call-non-callable" + +[[message.snippets]] +source = "def f():\n\treturn (1 == '2')() # Tab indented\n" +line_start = 4 +origin = "$DIR/main.py" + +[[message.snippets.annotations]] +label = "" +level = "Error" +range = [17, 29] + +[renderer] +# anonymized_line_numbers = true +color = true