From e3740eb9075594d8a2e6e026c542b27f01fe8e9b Mon Sep 17 00:00:00 2001 From: Thomas Voss Date: Thu, 18 Apr 2024 10:46:14 +0200 Subject: Add support for comments --- formatter/formatter.go | 3 +++ formatter/formatter_test.go | 27 +++++++++++++++++++++++++++ 2 files changed, 30 insertions(+) (limited to 'formatter') diff --git a/formatter/formatter.go b/formatter/formatter.go index 526de5a..1d8dd58 100644 --- a/formatter/formatter.go +++ b/formatter/formatter.go @@ -27,6 +27,9 @@ func PrintAst(ast parser.AstNode) { case parser.Text: printText(ast.Text) case parser.Normal: + if ast.Text == "/" { + return + } fmt.Printf("<%s", ast.Text) printAttrs(ast.Attrs) fmt.Print(">") diff --git a/formatter/formatter_test.go b/formatter/formatter_test.go index 4fe8035..870b904 100644 --- a/formatter/formatter_test.go +++ b/formatter/formatter_test.go @@ -252,3 +252,30 @@ func TestTrimRightSpaces(t *testing.T) { t.Fatalf("trimRightSpaces() returned ā€˜%sā€™", sy) } } + +func TestPrintAstWithComments(t *testing.T) { + s := ` + html lang="en" { + body { + / p {= Hello, Sailor!} + p {= Hello, World!} + } + }` + result := `

Hello, World!

` + + // Write the source to a temp file + r := strings.NewReader(s) + f, _ := os.CreateTemp("", "tmp*") + defer f.Close() + io.Copy(f, r) + f.Seek(0, 0) + ast, _ := parser.ParseFile(f) + + redirectStdout() + PrintAst(ast) + + out := restoreAndCapture() + if out != result { + t.Fatalf("PrintAst() printed unexpected string ā€˜%sā€™", out) + } +} -- cgit v1.2.3