From ae361f22c7b792e8c720017d7c92bc3c5d565312 Mon Sep 17 00:00:00 2001 From: Sean Li Date: Mon, 19 Oct 2026 11:16:58 +0800 Subject: [PATCH] Avoid duplicating multiline trailing comments --- crates/emmylua_formatter/src/formatter/render/mod.rs | 1 - crates/emmylua_formatter/src/test/comment_tests.rs | 12 ++++++++++++ 2 files changed, 12 insertions(+), 1 deletion(-) diff --git a/crates/emmylua_formatter/src/formatter/render/mod.rs b/crates/emmylua_formatter/src/formatter/render/mod.rs index bef8d5da0..75ba37da4 100644 --- a/crates/emmylua_formatter/src/formatter/render/mod.rs +++ b/crates/emmylua_formatter/src/formatter/render/mod.rs @@ -424,7 +424,6 @@ fn layout_comment_is_inline_trailing( }; has_non_trivia_before_on_same_line_tokenwise(&comment_node) - && !comment_node.text().contains_char('\n') && !has_inline_non_trivia_after(&comment_node) } diff --git a/crates/emmylua_formatter/src/test/comment_tests.rs b/crates/emmylua_formatter/src/test/comment_tests.rs index 3fc81f97d..754afdb64 100644 --- a/crates/emmylua_formatter/src/test/comment_tests.rs +++ b/crates/emmylua_formatter/src/test/comment_tests.rs @@ -2392,4 +2392,16 @@ function foo(a, ...) end "# ); } + + #[test] + fn test_inline_comments_before_following_comment_are_not_duplicated() { + use emmylua_parser::LuaLanguageLevel; + + let source = "local x = f() --[[c]] -- a\n-- b\nlocal y = 1\n"; + let config = crate::config::LuaFormatConfig::default(); + let first = crate::format_text(source, LuaLanguageLevel::default(), &config).formatted; + assert_eq!(first, source); + let second = crate::format_text(&first, LuaLanguageLevel::default(), &config).formatted; + assert_eq!(second, first); + } }