From 9d5455d8c033034d0211363d857f671bce92aab1 Mon Sep 17 00:00:00 2001 From: HigherOrderLogic <73709188+HigherOrderLogic@users.noreply.github.com> Date: Thu, 23 Jul 2026 00:50:14 +0000 Subject: [PATCH] Preserve comments at the end of multiline pipeline --- src/formatting/blocks.rs | 11 +++++++++++ .../multiline_pipeline_inline_comment_preserved.nu | 3 +++ .../multiline_pipeline_inline_comment_preserved.nu | 3 +++ tests/ground_truth.rs | 5 +++++ 4 files changed, 22 insertions(+) create mode 100644 tests/fixtures/expected/multiline_pipeline_inline_comment_preserved.nu create mode 100644 tests/fixtures/input/multiline_pipeline_inline_comment_preserved.nu diff --git a/src/formatting/blocks.rs b/src/formatting/blocks.rs index 8e4bc03..65680c1 100644 --- a/src/formatting/blocks.rs +++ b/src/formatting/blocks.rs @@ -283,6 +283,17 @@ impl<'a> Formatter<'a> { } } self.format_pipeline_element(element); + + if let Some(next) = pipeline.elements.get(i + 1) { + let end_pos = self.get_element_end_pos(element); + let next_start = next.expr.span.start; + self.write_inline_comment_bounded(end_pos, Some(next_start)); + self.last_pos = self.last_pos.max(end_pos); + + if is_multiline { + self.write_comments_before(next_start); + } + } } } diff --git a/tests/fixtures/expected/multiline_pipeline_inline_comment_preserved.nu b/tests/fixtures/expected/multiline_pipeline_inline_comment_preserved.nu new file mode 100644 index 0000000..54bbf5e --- /dev/null +++ b/tests/fixtures/expected/multiline_pipeline_inline_comment_preserved.nu @@ -0,0 +1,3 @@ +open ./non-exist.json # comment about this line +| to json +| save ./new.json diff --git a/tests/fixtures/input/multiline_pipeline_inline_comment_preserved.nu b/tests/fixtures/input/multiline_pipeline_inline_comment_preserved.nu new file mode 100644 index 0000000..8a60843 --- /dev/null +++ b/tests/fixtures/input/multiline_pipeline_inline_comment_preserved.nu @@ -0,0 +1,3 @@ +open ./non-exist.json # comment about this line + | to json + | save ./new.json diff --git a/tests/ground_truth.rs b/tests/ground_truth.rs index d5fff0f..ff75fc8 100644 --- a/tests/ground_truth.rs +++ b/tests/ground_truth.rs @@ -265,6 +265,11 @@ fixture_tests!( ground_truth_multiline_pipeline, idempotency_multiline_pipeline ), + ( + "multiline_pipeline_inline_comment_preserved", + ground_truth_multiline_pipeline_inline_comment_preserved, + idempotency_multiline_pipeline_inline_comment_preserved + ), ("closure", ground_truth_closure, idempotency_closure), ( "subexpression",