From 8894c9528def6a5836effee2e924c638696cb0e3 Mon Sep 17 00:00:00 2001 From: Charlie Marsh Date: Fri, 22 Sep 2023 13:28:44 -0400 Subject: [PATCH] Ignore blank lines between comments when counting newlines-after-imports --- .../resources/test/fixtures/ruff/statement/import.py | 9 +++++++++ crates/ruff_python_formatter/src/statement/suite.rs | 7 ++++++- 2 files changed, 15 insertions(+), 1 deletion(-) diff --git a/crates/ruff_python_formatter/resources/test/fixtures/ruff/statement/import.py b/crates/ruff_python_formatter/resources/test/fixtures/ruff/statement/import.py index db6590784767fd..04bb263eaf9c22 100644 --- a/crates/ruff_python_formatter/resources/test/fixtures/ruff/statement/import.py +++ b/crates/ruff_python_formatter/resources/test/fixtures/ruff/statement/import.py @@ -56,3 +56,12 @@ def func(): x = 1 + +# Regression test for: https://github.com/astral-sh/ruff/issues/7604 +import os + +# Defaults for arguments are defined here +# args.threshold = None; + + +logger = logging.getLogger("FastProject") diff --git a/crates/ruff_python_formatter/src/statement/suite.rs b/crates/ruff_python_formatter/src/statement/suite.rs index 7573b3e397f7fb..eae1d849e21eb9 100644 --- a/crates/ruff_python_formatter/src/statement/suite.rs +++ b/crates/ruff_python_formatter/src/statement/suite.rs @@ -190,7 +190,12 @@ impl FormatRule> for FormatSuite { // a leading comment. match self.kind { SuiteKind::TopLevel => { - match lines_after_ignoring_trivia(preceding.end(), source) { + let end = if let Some(last_trailing) = preceding_comments.trailing.last() { + last_trailing.end() + } else { + preceding.end() + }; + match lines_after(end, source) { 0..=2 => empty_line().fmt(f)?, _ => match source_type { PySourceType::Stub => {