aboutsummaryrefslogtreecommitdiff
path: root/formatter
diff options
context:
space:
mode:
Diffstat (limited to 'formatter')
-rw-r--r--formatter/formatter.go3
-rw-r--r--formatter/formatter_test.go27
2 files changed, 30 insertions, 0 deletions
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 := `<html lang="en"><body><p>Hello, World!</p></body></html>`
+
+ // 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)
+ }
+}