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

Reply via email to