diff --git a/dprint_plugin/tests/integration/biome/basic.vue.snap b/dprint_plugin/tests/integration/biome/basic.vue.snap index ec3cdab..344b928 100644 --- a/dprint_plugin/tests/integration/biome/basic.vue.snap +++ b/dprint_plugin/tests/integration/biome/basic.vue.snap @@ -30,13 +30,11 @@ function greet(msg: string) { close(); ' /> -
+
diff --git a/dprint_plugin/tests/integration/dprint_ts/basic.vue.snap b/dprint_plugin/tests/integration/dprint_ts/basic.vue.snap index a625df4..f40039e 100644 --- a/dprint_plugin/tests/integration/dprint_ts/basic.vue.snap +++ b/dprint_plugin/tests/integration/dprint_ts/basic.vue.snap @@ -30,13 +30,11 @@ function greet(msg: string) { close(); ' /> -
+
diff --git a/markup_fmt/src/printer.rs b/markup_fmt/src/printer.rs index 25c84fe..d3c116b 100644 --- a/markup_fmt/src/printer.rs +++ b/markup_fmt/src/printer.rs @@ -455,8 +455,17 @@ impl<'s> DocGen<'s> for Element<'s> { docs.push(Doc::text(formatted_tag_name.clone())); match self.attrs.as_slice() { - [single_attr] if !is_whitespace_sensitive => { - // Try to avoid breaking on multiple lines for a single attribute. + [single_attr] + if !is_whitespace_sensitive + && !matches!( + single_attr, + Attribute::JinjaBlock(..) + | Attribute::JinjaTag(..) + | Attribute::VentoTagOrBlock(..) + ) => + { + // Avoid breaking on multiple lines for a single attribute in non whitespace sensitive context. + // Skip this for templating Blocks because they usually span across multiple lines. docs.push(Doc::space()); docs.push(single_attr.doc(ctx, &state)); @@ -515,7 +524,6 @@ impl<'s> DocGen<'s> for Element<'s> { ) .nest(ctx.indent_width) }; - if self.void_element { docs.push(attrs); diff --git a/markup_fmt/tests/fmt/jinja/attributes/single-attr.jinja b/markup_fmt/tests/fmt/jinja/attributes/single-attr.jinja new file mode 100644 index 0000000..b5f1e05 --- /dev/null +++ b/markup_fmt/tests/fmt/jinja/attributes/single-attr.jinja @@ -0,0 +1,23 @@ + + +
+ + + +
\ No newline at end of file diff --git a/markup_fmt/tests/fmt/jinja/attributes/single-attr.snap b/markup_fmt/tests/fmt/jinja/attributes/single-attr.snap new file mode 100644 index 0000000..18a36f4 --- /dev/null +++ b/markup_fmt/tests/fmt/jinja/attributes/single-attr.snap @@ -0,0 +1,39 @@ +--- +source: markup_fmt/tests/fmt.rs +--- + + + +
+
+ + + + +
+
diff --git a/markup_fmt/tests/fmt/jinja/attributes/tag-or-block-as-attr.snap b/markup_fmt/tests/fmt/jinja/attributes/tag-or-block-as-attr.snap index bd3bf57..9c72335 100644 --- a/markup_fmt/tests/fmt/jinja/attributes/tag-or-block-as-attr.snap +++ b/markup_fmt/tests/fmt/jinja/attributes/tag-or-block-as-attr.snap @@ -1,6 +1,5 @@ --- source: markup_fmt/tests/fmt.rs -snapshot_kind: text ---
-
+
Details Something small enough to escape casual notice.
@@ -144,12 +141,14 @@ snapshot_kind: text {% endif %} {% endfor %} - +