Support dividing statement lists into clauses/stanzas #79
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.
This PR adds support for dividing statement lists into clauses/stanzas. This prevents the need for the empty
//
workaround to divide code into stanzas.Specifically, with this PR, the following code is (now) considered well-formatted:
Prior to this PR, verusfmt would have collapsed the additional newlines around
foo;
. With this PR, we maintain the additional newlines (however if there are too many newlines, we bring it down to just the two, as a stylistic choice).Note: this only adds support for stanzas for statement lists. It explicitly does not work in general contexts (such as dividing a single expression up via extra newlines). I believe that supporting stanzas at the statement level should cover most people's use cases for them, while limiting the scope of the shenanigans necessary for the parser to be able to handle the special case of the double/multi-newline.
Resolves #43