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
GetBracePairsmethod (which returns all pairs of braces except for hashtables) of theTokenOperationsclass where it can wrongly pair anRBraceof an hashtable with theLCurlyof a braced expression. This caused incorrect formatting of the script definitionif ($true) { $test = @{ } }where the selectedRBracewas the one of the hashtable and not theifexpression, therefore leading to an incorrectly added newline before the final brace by thePSCloseBracerule used byInvoke-Formatter(default rules settings are such that one-line expressions do not require a newline before the closing brace).PR Checklist
.cs,.ps1and.psm1files have the correct copyright headerWIP:to the beginning of the title and remove the prefix when the PR is ready.