From bc2210247861340c644d9825ac2b2860f8c6e12a Mon Sep 17 00:00:00 2001 From: Matthew Penner Date: Mon, 10 May 2021 12:01:27 -0600 Subject: 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 --- caddyconfig/caddyfile/formatter.go | 1 + caddyconfig/caddyfile/formatter_test.go | 38 +++++++++++++++++++++++++++++++++ modules/caddyhttp/replacer_test.go | 2 +- 3 files changed, 40 insertions(+), 1 deletion(-) 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 diff --git a/modules/caddyhttp/replacer_test.go b/modules/caddyhttp/replacer_test.go index 486a8e3..5026ac8 100644 --- a/modules/caddyhttp/replacer_test.go +++ b/modules/caddyhttp/replacer_test.go @@ -173,7 +173,7 @@ eqp31wM9il1n+guTNyxJd+FzVAH+hCZE5K+tCgVDdVFUlDEHHbS/wqb2PSIoouLV }, { input: "{http.request.tls.client.certificate_pem}", - expect: string(clientCert) + "\n", // returned value comes with a newline appended to it + expect: string(clientCert) + "\n", // returned value comes with a newline appended to it }, } { actual := repl.ReplaceAll(tc.input, "") -- cgit v1.2.3