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
This commit is contained in:
Austin Burdine 2019-01-16 05:33:06 -05:00 committed by Martin Atkins
parent 40e962e08e
commit 7b147fbae4
2 changed files with 24 additions and 0 deletions

View File

@ -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

View File

@ -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
}
`,
},
}