From 7b147fbae47a39a84792258ad4017a940a752d46 Mon Sep 17 00:00:00 2001 From: Austin Burdine Date: Wed, 16 Jan 2019 05:33:06 -0500 Subject: [PATCH] hclwrite: fix space being added between interpolated items closes #65 - add missing edge case for two interpolated items next to each other - add tests for both quote and heredoc cases --- hclwrite/format.go | 4 ++++ hclwrite/format_test.go | 20 ++++++++++++++++++++ 2 files changed, 24 insertions(+) diff --git a/hclwrite/format.go b/hclwrite/format.go index ef50e09..eed0694 100644 --- a/hclwrite/format.go +++ b/hclwrite/format.go @@ -325,6 +325,10 @@ func spaceAfterToken(subject, before, after *Token) bool { case subject.Type == hclsyntax.TokenCBrace && after.Type == hclsyntax.TokenTemplateSeqEnd: return true + // Don't add spaces between interpolated items + case subject.Type == hclsyntax.TokenTemplateSeqEnd && after.Type == hclsyntax.TokenTemplateInterp: + return false + case tokenBracketChange(subject) > 0: // No spaces after open brackets return false diff --git a/hclwrite/format_test.go b/hclwrite/format_test.go index b4783c2..c07be97 100644 --- a/hclwrite/format_test.go +++ b/hclwrite/format_test.go @@ -71,6 +71,10 @@ func TestFormat(t *testing.T) { `a="hello ${~ name ~}"`, `a = "hello ${~name~}"`, }, + { + `a="${b}${c}${ d } ${e}"`, + `a = "${b}${c}${d} ${e}"`, + }, { `b{}`, `b {}`, @@ -500,6 +504,22 @@ foo { ${ { blahblahblah = x } } EOT } +`, + }, + { + ` +foo { + bar = <<-EOT + ${a}${b}${ c } ${d} +EOT +} +`, + ` +foo { + bar = <<-EOT + ${a}${b}${c} ${d} +EOT +} `, }, }