Lethexie has uploaded a new change for review.
https://gerrit.wikimedia.org/r/277227
Change subject: Fix IfElseStructureSniff can't detect and fix multiple white
spaces after else
......................................................................
Fix IfElseStructureSniff can't detect and fix multiple white spaces after else
the commit fix IfElseStructureSniff can't detect and fix multiple white spaces
after else, like following:
if ( $a === false ) {
# code...
} else {
# code...
}
Bug: T129840
Bug: T89682
Change-Id: Ie645bd1217614c828d146efac964f690ac48b6f1
---
M MediaWiki/Sniffs/ControlStructures/IfElseStructureSniff.php
1 file changed, 27 insertions(+), 0 deletions(-)
git pull ssh://gerrit.wikimedia.org:29418/mediawiki/tools/codesniffer
refs/changes/27/277227/1
diff --git a/MediaWiki/Sniffs/ControlStructures/IfElseStructureSniff.php
b/MediaWiki/Sniffs/ControlStructures/IfElseStructureSniff.php
index 005da88..095394a 100644
--- a/MediaWiki/Sniffs/ControlStructures/IfElseStructureSniff.php
+++ b/MediaWiki/Sniffs/ControlStructures/IfElseStructureSniff.php
@@ -20,7 +20,9 @@
public function process( PHP_CodeSniffer_File $phpcsFile, $stackPtr ) {
$tokens = $phpcsFile->getTokens();
$prevToken = $tokens[$stackPtr - 1];
+ $nextToken = $tokens[$stackPtr + 1];
+ // single space expected before else and elseif structure
if ( $prevToken['code'] !== T_WHITESPACE
|| $prevToken['content'] !== " " ) {
$fix = $phpcsFile->addFixableWarning(
@@ -41,5 +43,30 @@
}
}
}
+ // space after elseif structure be processed in
SpaceAfterControlStructureSniff
+ if ( $tokens[$stackPtr]['code'] === T_ELSEIF ) {
+ return;
+ }
+ // single space expected after else structure
+ if ( $nextToken['code'] !== T_WHITESPACE
+ || $nextToken['content'] !== " " ) {
+ $fix = $phpcsFile->addFixableWarning(
+ 'Single space expected after "%s"',
+ $stackPtr + 1,
+ 'SpaceAfterElse',
+ [ $tokens[$stackPtr]['content'] ]
+ );
+ if ( $fix === true ) {
+ if ( $nextToken['code'] ===
T_OPEN_CURLY_BRACKET ) {
+ $phpcsFile->fixer->addContnetAfter(
$stackPtr, ' ' );
+ } else {
+ //Replace all after whitespace with a
space
+ $phpcsFile->fixer->replaceToken(
$stackPtr + 1, ' ');
+ for ( $i = 2; $tokens[$stackPtr +
$i]['code'] === T_WHITESPACE; $i++ ) {
+
$phpcsFile->fixer->replaceToken( $stackPtr + $i, '');
+ }
+ }
+ }
+ }
}
}
--
To view, visit https://gerrit.wikimedia.org/r/277227
To unsubscribe, visit https://gerrit.wikimedia.org/r/settings
Gerrit-MessageType: newchange
Gerrit-Change-Id: Ie645bd1217614c828d146efac964f690ac48b6f1
Gerrit-PatchSet: 1
Gerrit-Project: mediawiki/tools/codesniffer
Gerrit-Branch: master
Gerrit-Owner: Lethexie <[email protected]>
_______________________________________________
MediaWiki-commits mailing list
[email protected]
https://lists.wikimedia.org/mailman/listinfo/mediawiki-commits