Fix PSCloseBrace rule to not wrongly flag closing brace of one-line hashtable, which lead to incorrect formatting #1309
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.
PR Summary
Fixes #1284
This fixes a bug (that must've been long-standing) in the
GetBracePairs
method (which returns all pairs of braces except for hashtables) of theTokenOperations
class where it can wrongly pair anRBrace
of an hashtable with theLCurly
of a braced expression. This caused incorrect formatting of the script definitionif ($true) { $test = @{ } }
where the selectedRBrace
was the one of the hashtable and not theif
expression, therefore leading to an incorrectly added newline before the final brace by thePSCloseBrace
rule used byInvoke-Formatter
(default rules settings are such that one-line expressions do not require a newline before the closing brace).PR Checklist
.cs
,.ps1
and.psm1
files have the correct copyright headerWIP:
to the beginning of the title and remove the prefix when the PR is ready.