From d195def6d2ad388897704e8ceb2ce313f47f55a9 Mon Sep 17 00:00:00 2001 From: Bram Hoendervangers Date: Sun, 2 Feb 2025 17:00:22 +0100 Subject: [PATCH] fix: don't break generic params into multiple lines --- formatter/src/formatter/element.rs | 23 +++++++++++++++++++++++ formatter/src/formatter/mod.rs | 14 +++++++++++++- prettyplease | 2 +- 3 files changed, 37 insertions(+), 2 deletions(-) diff --git a/formatter/src/formatter/element.rs b/formatter/src/formatter/element.rs index 6896c8a..ab18c22 100644 --- a/formatter/src/formatter/element.rs +++ b/formatter/src/formatter/element.rs @@ -480,6 +480,29 @@ mod tests { insta::assert_snapshot!(formatted, @" />"); } + #[test] + fn with_closing_tag_generics() { + let formatted = format_element! { >> }; + insta::assert_snapshot!(formatted, @">>"); + } + + #[test] + fn with_generics_and_attributes() { + let formatted = format_element! { status="DRAFT" foo={bar} someeeee="looooeeeeeeeeeeeeeeong_attrr"> + + > + }; + insta::assert_snapshot!(formatted, @r###" + + status="DRAFT" + foo=bar + someeeee="looooeeeeeeeeeeeeeeong_attrr" + > + + > + "###); + } + // Closing Tags Behaviour #[test] diff --git a/formatter/src/formatter/mod.rs b/formatter/src/formatter/mod.rs index 590e703..2372701 100644 --- a/formatter/src/formatter/mod.rs +++ b/formatter/src/formatter/mod.rs @@ -240,6 +240,18 @@ impl<'a> Formatter<'a> { } pub fn format_syn_generics(&mut self, generics: &Generics) { - leptosfmt_prettyplease::unparse_fn(self.printer, None, |p| p.generics(generics)); + if generics.params.is_empty() { + return; + } + + self.printer.word("<"); + let mut params = generics.params.iter().peekable(); + while let Some(param) = params.next() { + leptosfmt_prettyplease::unparse_fn(self.printer, None, |p| p.generic_param(param)); + if params.peek().is_some() { + self.printer.word(", "); + } + } + self.printer.word(">"); } } diff --git a/prettyplease b/prettyplease index 2dcd20b..c7591da 160000 --- a/prettyplease +++ b/prettyplease @@ -1 +1 @@ -Subproject commit 2dcd20ba8cc15ee0c5eb6970696cff03e5f39b74 +Subproject commit c7591dabc25f75d58fbedc0d7adff45804bf1b78