caddyfile: Minor fixes to the formatter

This commit is contained in:
Matthew Holt 2020-03-29 13:53:00 -06:00
parent 178ba024fe
commit deba26d225
No known key found for this signature in database
GPG key ID: 2A349DD577D586A5
2 changed files with 23 additions and 6 deletions

View file

@ -39,6 +39,7 @@ func Format(input []byte) []byte {
openBrace bool // whether current word/token is or started with open curly brace
openBraceWritten bool // if openBrace, whether that brace was written or not
openBraceSpace bool // whether there was a non-newline space before open brace
newLines int // count of newlines consumed
@ -145,10 +146,11 @@ func Format(input []byte) []byte {
openBrace = false
if beginningOfLine {
indent()
} else {
} else if !openBraceSpace {
write(' ')
}
write('{')
openBraceWritten = true
nextLine()
newLines = 0
nesting++
@ -158,6 +160,10 @@ func Format(input []byte) []byte {
case ch == '{':
openBrace = true
openBraceWritten = false
openBraceSpace = spacePrior && !beginningOfLine
if openBraceSpace {
write(' ')
}
continue
case ch == '}' && (spacePrior || !openBrace):
@ -183,7 +189,7 @@ func Format(input []byte) []byte {
if beginningOfLine {
indent()
}
if nesting == 0 && last == '}' {
if nesting == 0 && last == '}' && beginningOfLine {
nextLine()
nextLine()
}
@ -193,9 +199,6 @@ func Format(input []byte) []byte {
}
if openBrace && !openBraceWritten {
if !beginningOfLine {
write(' ')
}
write('{')
openBraceWritten = true
}

View file

@ -287,10 +287,24 @@ bar "{\"key\":34}"`,
expect: `foo \"literal\"`,
},
{
description: "simple placeholders",
description: "simple placeholders as standalone tokens",
input: `foo {bar}`,
expect: `foo {bar}`,
},
{
description: "simple placeholders within tokens",
input: `foo{bar} foo{bar}baz`,
expect: `foo{bar} foo{bar}baz`,
},
{
description: "placeholders and malformed braces",
input: `foo{bar} foo{ bar}baz`,
expect: `foo{bar} foo {
bar
}
baz`,
},
} {
// the formatter should output a trailing newline,
// even if the tests aren't written to expect that