From 98227e3729427edbde20be047e0a11c1aede630c Mon Sep 17 00:00:00 2001 From: David Wessman Date: Fri, 30 Jun 2023 12:44:13 +0200 Subject: [PATCH] Format empty html-tags on one line if possible (#42) --- CHANGELOG.md | 4 ++++ Gemfile.lock | 2 +- lib/syntax_tree/erb/format.rb | 7 ++++++- lib/syntax_tree/erb/version.rb | 2 +- test/fixture/erb_syntax_formatted.html.erb | 3 +-- test/html_test.rb | 8 ++++++++ 6 files changed, 21 insertions(+), 5 deletions(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index 65fc853..36978f5 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -6,6 +6,10 @@ The format is based on [Keep a Changelog](http://keepachangelog.com/en/1.0.0/) a ## [Unreleased] +## [0.9.3] - 2023-06-30 + +- Print empty html-tags on one line if possible + ## [0.9.2] - 2023-06-30 - Handle whitespace in HTML-strings using ERB-tags diff --git a/Gemfile.lock b/Gemfile.lock index 8f5535e..a01beb1 100644 --- a/Gemfile.lock +++ b/Gemfile.lock @@ -1,7 +1,7 @@ PATH remote: . specs: - w_syntax_tree-erb (0.9.2) + w_syntax_tree-erb (0.9.3) prettier_print (>= 1.2.0) syntax_tree (>= 6.1.1) diff --git a/lib/syntax_tree/erb/format.rb b/lib/syntax_tree/erb/format.rb index 9813e4f..64d91f2 100644 --- a/lib/syntax_tree/erb/format.rb +++ b/lib/syntax_tree/erb/format.rb @@ -49,7 +49,12 @@ def visit_block(node) end def visit_html(node) - visit_block(node) + # Make sure to group the tags together if there is no child nodes. + if node.elements.size == 0 + q.group { visit_block(node) } + else + visit_block(node) + end end def visit_erb_block(node) diff --git a/lib/syntax_tree/erb/version.rb b/lib/syntax_tree/erb/version.rb index cb22d45..d9398fb 100644 --- a/lib/syntax_tree/erb/version.rb +++ b/lib/syntax_tree/erb/version.rb @@ -2,6 +2,6 @@ module SyntaxTree module ERB - VERSION = "0.9.2" + VERSION = "0.9.3" end end diff --git a/test/fixture/erb_syntax_formatted.html.erb b/test/fixture/erb_syntax_formatted.html.erb index 44e0002..14e9eca 100644 --- a/test/fixture/erb_syntax_formatted.html.erb +++ b/test/fixture/erb_syntax_formatted.html.erb @@ -42,5 +42,4 @@ assign_c ||= "c" %> -
mt-<%= 5 * 5 %>"> -
+
mt-<%= 5 * 5 %>">
diff --git a/test/html_test.rb b/test/html_test.rb index 3ec9a43..1010874 100644 --- a/test/html_test.rb +++ b/test/html_test.rb @@ -89,5 +89,13 @@ def test_html_attribute_without_quotes formatted = ERB.format(source) assert_equal("
\n Hello World\n
\n", formatted) end + + def test_html_attribute_without_content + source = "\n\n" + expected = "\n" + + formatted = ERB.format(source) + assert_equal(expected, formatted) + end end end