hclwrite: Rewrite comments on blocks and attributes #601
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.
Greetings,
The goal of this PR is to start a discussion around the manipulation of
leadComments
/lineComments
in attributes andleadComments
in blocks (I could not find a real reason for them to havelineComments
, to be honest). This would solve the use case presented in #459, for line-style comments at least — since block-style comments seem to only be parsed asleadComments
if they are on the same line as the attribute / block they annotate.This PR adds a few methods to
hclwrite.Block
andhclwrite.Body
. I’m quite new to Go so I’m sure my code may be clunky or non-idiomatic; feedback is welcome!Example
Output
Caveats
As you can see on this example, I had to insert a newline after the
language
attribute, as the parser would otherwise create noTokenNewline
: it is absorbed by the line comment. This is specific to line-style comments and would maybe be solved by rearranging the parser so that parsing line-style comments generates aTokenComment
without a final newline char as well as a separateTokenNewline
, if that makes sense. That may qualify as a breaking change however.