diff options
author | Matthew Penner <me@matthewp.io> | 2021-05-10 12:01:27 -0600 |
---|---|---|
committer | GitHub <noreply@github.com> | 2021-05-10 12:01:27 -0600 |
commit | bc2210247861340c644d9825ac2b2860f8c6e12a (patch) | |
tree | b17c0c3b702e635a2524904ae236cd1c4ccd4bc2 /caddyconfig | |
parent | f5db41ce1d4bb5ac75489f11985ca46898fb642e (diff) |
caddyfile: Fix `caddy fmt` nesting not decrementing (#4157)
* caddyfile(formatter): fix nesting not decrementing
This is an extremely weird edge-case where if you had a environment variable {}
on one line, a comment on the next line, and the closing of the block on the
following line; the rest of the Caddyfile would be indented further than it
should've been.
ref; https://github.com/matthewpi/vscode-caddyfile-support/issues/13
* run gofmt
* fmt: better way of handling edge case
Diffstat (limited to 'caddyconfig')
-rw-r--r-- | caddyconfig/caddyfile/formatter.go | 1 | ||||
-rw-r--r-- | caddyconfig/caddyfile/formatter_test.go | 38 |
2 files changed, 39 insertions, 0 deletions
diff --git a/caddyconfig/caddyfile/formatter.go b/caddyconfig/caddyfile/formatter.go index 8620219..cb0033f 100644 --- a/caddyconfig/caddyfile/formatter.go +++ b/caddyconfig/caddyfile/formatter.go @@ -78,6 +78,7 @@ func Format(input []byte) []byte { if comment { if ch == '\n' { comment = false + space = true nextLine() continue } else { diff --git a/caddyconfig/caddyfile/formatter_test.go b/caddyconfig/caddyfile/formatter_test.go index 6cae20d..64cf6d2 100644 --- a/caddyconfig/caddyfile/formatter_test.go +++ b/caddyconfig/caddyfile/formatter_test.go @@ -321,6 +321,44 @@ baz`, foo }`, }, + { + description: "matthewpi/vscode-caddyfile-support#13", + input: `{ + email {$ACMEEMAIL} + #debug +} + +block { +} +`, + expect: `{ + email {$ACMEEMAIL} + #debug +} + +block { +} +`, + }, + { + description: "matthewpi/vscode-caddyfile-support#13 - bad formatting", + input: `{ + email {$ACMEEMAIL} + #debug + } + + block { + } +`, + expect: `{ + email {$ACMEEMAIL} + #debug +} + +block { +} +`, + }, } { // the formatter should output a trailing newline, // even if the tests aren't written to expect that |