mirror of
https://github.com/caddyserver/caddy.git
synced 2025-01-14 06:46:27 +03:00
caddyfile: Minor fixes to the formatter
This commit is contained in:
parent
178ba024fe
commit
deba26d225
2 changed files with 23 additions and 6 deletions
|
@ -39,6 +39,7 @@ func Format(input []byte) []byte {
|
||||||
|
|
||||||
openBrace bool // whether current word/token is or started with open curly brace
|
openBrace bool // whether current word/token is or started with open curly brace
|
||||||
openBraceWritten bool // if openBrace, whether that brace was written or not
|
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
|
newLines int // count of newlines consumed
|
||||||
|
|
||||||
|
@ -145,10 +146,11 @@ func Format(input []byte) []byte {
|
||||||
openBrace = false
|
openBrace = false
|
||||||
if beginningOfLine {
|
if beginningOfLine {
|
||||||
indent()
|
indent()
|
||||||
} else {
|
} else if !openBraceSpace {
|
||||||
write(' ')
|
write(' ')
|
||||||
}
|
}
|
||||||
write('{')
|
write('{')
|
||||||
|
openBraceWritten = true
|
||||||
nextLine()
|
nextLine()
|
||||||
newLines = 0
|
newLines = 0
|
||||||
nesting++
|
nesting++
|
||||||
|
@ -158,6 +160,10 @@ func Format(input []byte) []byte {
|
||||||
case ch == '{':
|
case ch == '{':
|
||||||
openBrace = true
|
openBrace = true
|
||||||
openBraceWritten = false
|
openBraceWritten = false
|
||||||
|
openBraceSpace = spacePrior && !beginningOfLine
|
||||||
|
if openBraceSpace {
|
||||||
|
write(' ')
|
||||||
|
}
|
||||||
continue
|
continue
|
||||||
|
|
||||||
case ch == '}' && (spacePrior || !openBrace):
|
case ch == '}' && (spacePrior || !openBrace):
|
||||||
|
@ -183,7 +189,7 @@ func Format(input []byte) []byte {
|
||||||
if beginningOfLine {
|
if beginningOfLine {
|
||||||
indent()
|
indent()
|
||||||
}
|
}
|
||||||
if nesting == 0 && last == '}' {
|
if nesting == 0 && last == '}' && beginningOfLine {
|
||||||
nextLine()
|
nextLine()
|
||||||
nextLine()
|
nextLine()
|
||||||
}
|
}
|
||||||
|
@ -193,9 +199,6 @@ func Format(input []byte) []byte {
|
||||||
}
|
}
|
||||||
|
|
||||||
if openBrace && !openBraceWritten {
|
if openBrace && !openBraceWritten {
|
||||||
if !beginningOfLine {
|
|
||||||
write(' ')
|
|
||||||
}
|
|
||||||
write('{')
|
write('{')
|
||||||
openBraceWritten = true
|
openBraceWritten = true
|
||||||
}
|
}
|
||||||
|
|
|
@ -287,10 +287,24 @@ bar "{\"key\":34}"`,
|
||||||
expect: `foo \"literal\"`,
|
expect: `foo \"literal\"`,
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
description: "simple placeholders",
|
description: "simple placeholders as standalone tokens",
|
||||||
input: `foo {bar}`,
|
input: `foo {bar}`,
|
||||||
expect: `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,
|
// the formatter should output a trailing newline,
|
||||||
// even if the tests aren't written to expect that
|
// even if the tests aren't written to expect that
|
||||||
|
|
Loading…
Reference in a new issue