introduce Generator type with string handling strategy options #682
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
There have been for several years a number of open issues relating to interpolation sequences in string literals. The community approach seems typically to hand-code these on an individual basis, which is simple enough, but when such strings are potentially embedded in more complex constructs there reaches a point where it makes more sense to support the preservation/non-escaping of such sequences in
hcl
proper. To that end, this PR introduces aGenerator
type that can be parameterized with options to guide token generation behavior in a manner that supports nested structures as described. The options structure, at time of submission is:e.g., to handle
string
types as templates, you would createGenerator{GenerateOptions{Handling{String: AsTemplate}}}
.Note that the template handling panics if the value cannot be lexed; it might make sense to return an
error
from theGenerator
methods and translate these topanic
for the legacy functions only. If this is desired, I am glad to make the change.#442
#615
#392