diff --git a/CHANGELOG.md b/CHANGELOG.md index 26ea725..992b56e 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -7,6 +7,7 @@ The format is based on [Keep a Changelog](http://keepachangelog.com/en/1.0.0/) a ## [Unreleased] - Handle ERB-tags inside HTML-tags, like `
>` +- Handles indentation for multiline ERB-comment ## [0.10.4] - 2023-08-28 diff --git a/lib/syntax_tree/erb/format.rb b/lib/syntax_tree/erb/format.rb index dce7a1d..0128843 100644 --- a/lib/syntax_tree/erb/format.rb +++ b/lib/syntax_tree/erb/format.rb @@ -236,7 +236,9 @@ def visit_html_comment(node) end def visit_erb_comment(node) - visit(node.token) + q.seplist(node.token.value.split("\n"), -> { q.breakable }) do |line| + q.text(line.lstrip) + end end # Visit a CharData node. diff --git a/test/erb_test.rb b/test/erb_test.rb index 7d4b152..44c5015 100644 --- a/test/erb_test.rb +++ b/test/erb_test.rb @@ -114,9 +114,9 @@ def test_erb_comment def test_erb_multiline_comment source = - "<%#\n This is the first\nThis is the second\nThis is the third %>" + "<%#\n This is the first\n This is the second\n This is the third %>" expected = - "<%#\n This is the first\nThis is the second\nThis is the third %>\n" + "<%#\nThis is the first\nThis is the second\nThis is the third %>\n" assert_formatting(source, expected) end diff --git a/test/fixture/erb_syntax_formatted.html.erb b/test/fixture/erb_syntax_formatted.html.erb index 3a9ef31..835750a 100644 --- a/test/fixture/erb_syntax_formatted.html.erb +++ b/test/fixture/erb_syntax_formatted.html.erb @@ -4,9 +4,9 @@ <%- "this only works in ERB not erubis" %> <% # This should be written on one line %> <%# - This is a comment - It can be mutiline - Treat it as a comment +This is a comment +It can be mutiline +Treat it as a comment %> <% if this -%>