Squiz/MemberVarSpacing: bug fix - handling of blank lines in pre-amble #840
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.
Description
Squiz/MemberVarSpacing: bug fix - handling of blank lines in pre-amble
The
Squiz.WhiteSpace.MemberVarSpacing
sniff intends to flag blank lines between a property docblock and the property declaration.However, as things are, there are - IMO - two bugs in the logic for this:
Given a code block which looks like this:
There will be only one error and it will read:
This is confusing as there are not 6 blank lines between the end of the docblock and the property, but four blank lines and two attribute lines.
What I would expect would be for the sniff to:
a) Throw a separate error for each (set of) blank lines found.
b) For the error message to correctly reflect the number of blank lines found for each error.
This commit changes the
AfterComment
error to comply with the above expectationsIncludes test, though there are also some pre-existing tests which show this issue and for which the behaviour is changed (error lines: 342 and 353).
Note: while it will still be messy, it may be easier to review this PR while ignoring whitespace changes.
Fixes squizlabs/PHP_CodeSniffer#3594
Squiz/MemberVarSpacing: bug fix - don't remove blank attribute lines
While blank lines between the docblock and the property declaration should be removed, blank lines within an attribute should be ignored as that's for a sniff dealing with attribute spacing to deal with and is outside of the scope of this sniff.
Fixed now.
Includes updated test.
Suggested changelog entry
Squiz.WhiteSpace.MemberVarSpacing: more accurate reporting on blank lines in the property "pre-amble" (i.e. docblock, attributes).
Related issues/external references
Note: this PR is part of a series of PRs to fix various issues in this sniff...
Related to #152
Types of changes