Generic/SpaceAfterCast: make the sniff configurable & deprecates NoSpaceAfterCast#2234
Merged
gsherwood merged 1 commit intosquizlabs:masterfrom Dec 12, 2018
Conversation
…aceAfterCast
This PR makes the `Generic.Formatting.SpaceAfterCast` sniff configurable as discussed in PR 2057 and deprecates the `Generic.Formatting.NoSpaceAfterCast` sniff.
Notes:
* Adds a public `spacing` property. Defaults to `1` to maintain BC.
* Adds a public `ignoreNewLines` property. Defaults to `false` to maintain BC.
* Adds a new non-fixable `CommentFound` error for when non-whitespace tokens are found between the type cast and the next non-empty token.
* Adds a new fixable `TooLittleSpace` error code for when `$spacing` is set to more than `1` and there is whitespace, but not enough.
* Adjusts the error message for the `NoSpace` and `TooMuchSpace` errors to allow for the flexibility now needed, what with the configurable `spacing` property.
Note: the error **codes** have not been changed to prevent a BC-break.
* Makes the fixer more efficient compared to before.
Previously, if a whitespace + new line + whitespace would be found with `spacing` set to `1`, the fixer would need three loops to apply all the fixes, now this is fixed in one go.
Includes additional unit tests.
c1f1cbe to
a6c9e2f
Compare
carusogabriel
approved these changes
Dec 2, 2018
Contributor
carusogabriel
left a comment
There was a problem hiding this comment.
Thanks for doing that @jrfnl ❤️
Member
|
Thanks for this. The props are documented here: https://github.com/squizlabs/PHP_CodeSniffer/wiki/Customisable-Sniff-Properties#genericformattingspaceaftercast Forgot to post in the other PR about the message changes. I removed the passing of "s" as a data value for consistency but also because it's not really useful when translating the message due to how plurals work in some languages (Polish comes to mind). PHPCS could use a better translation system, probably based on gettext, but it's never been requested. |
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
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 makes the
Generic.Formatting.SpaceAfterCastsniff configurable as discussed in PR #2057 (comment) and deprecates theGeneric.Formatting.NoSpaceAfterCastsniff.Notes:
spacingproperty. Defaults to1to maintain BC.ignoreNewLinesproperty. Defaults tofalseto maintain BC.CommentFounderror for when non-whitespace tokens are found between the type cast and the next non-empty token.TooLittleSpaceerror code for when$spacingis set to more than1and there is whitespace, but not enough.NoSpaceandTooMuchSpaceerrors to allow for the flexibility now needed, what with the configurablespacingproperty.Note: the error codes have not been changed to prevent a BC-break.
Previously, if a whitespace + new line + whitespace would be found with
spacingset to1, the fixer would need three loops to apply all the fixes, now this is fixed in one go.Includes additional unit tests.