From b592de6aa7ea267f5f7481590d20bf7678694c4d Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?J=C3=A9r=C3=B4me=20Vieilledent?= Date: Tue, 13 Jan 2015 10:35:54 +0100 Subject: [PATCH] PHPCS: Added support for short array syntax --- .../Sniffs/Arrays/ArrayDeclarationSniff.php | 17 +++++++++++------ .../Functions/FunctionCallSignatureSniff.php | 10 ++++++++-- 2 files changed, 19 insertions(+), 8 deletions(-) diff --git a/php/ezcs/Sniffs/Arrays/ArrayDeclarationSniff.php b/php/ezcs/Sniffs/Arrays/ArrayDeclarationSniff.php index d5fd38a..a98beea 100644 --- a/php/ezcs/Sniffs/Arrays/ArrayDeclarationSniff.php +++ b/php/ezcs/Sniffs/Arrays/ArrayDeclarationSniff.php @@ -8,7 +8,7 @@ class ezcs_Sniffs_Arrays_ArrayDeclarationSniff implements PHP_CodeSniffer_Sniff */ public function register() { - return array(T_ARRAY); + return array(T_ARRAY, T_OPEN_SHORT_ARRAY); } @@ -31,13 +31,18 @@ public function process(PHP_CodeSniffer_File $phpcsFile, $stackPtr) $phpcsFile->addError('Array keyword should be lower case; expected "array" but found "%s"', $stackPtr, 'NotLowerCase', array($tokens[$stackPtr]['content'])); } - $arrayStart = $tokens[$stackPtr]['parenthesis_opener']; - $arrayEnd = $tokens[$arrayStart]['parenthesis_closer']; + if ($tokens[$stackPtr]['code'] === T_OPEN_SHORT_ARRAY) { + $arrayStart = $tokens[$stackPtr]['bracket_opener']; + $arrayEnd = $tokens[$arrayStart]['bracket_closer']; + } else { // T_ARRAY + $arrayStart = $tokens[$stackPtr]['parenthesis_opener']; + $arrayEnd = $tokens[$arrayStart]['parenthesis_closer']; + if ($arrayStart != ($stackPtr + 1)) { + $phpcsFile->addError('There must be no space between the "array" keyword and the opening parenthesis', $stackPtr, 'SpaceAfterKeyword'); + } + } $keywordStart = $tokens[$stackPtr]['column']; - if ($arrayStart != ($stackPtr + 1)) { - $phpcsFile->addError('There must be no space between the "array" keyword and the opening parenthesis', $stackPtr, 'SpaceAfterKeyword'); - } // Check for empty arrays. $content = $phpcsFile->findNext(array(T_WHITESPACE), ($arrayStart + 1), ($arrayEnd + 1), true); diff --git a/php/ezcs/Sniffs/Functions/FunctionCallSignatureSniff.php b/php/ezcs/Sniffs/Functions/FunctionCallSignatureSniff.php index 563e4f0..a03c145 100644 --- a/php/ezcs/Sniffs/Functions/FunctionCallSignatureSniff.php +++ b/php/ezcs/Sniffs/Functions/FunctionCallSignatureSniff.php @@ -10,7 +10,7 @@ class ezcs_Sniffs_Functions_FunctionCallSignatureSniff implements PHP_CodeSniffe */ public function register() { - return array(T_STRING, T_ARRAY); + return array(T_STRING, T_ARRAY, T_OPEN_SHORT_ARRAY); }//end register() @@ -145,12 +145,18 @@ public function processMultiLineCall(PHP_CodeSniffer_File $phpcsFile, $stackPtr, $closeBracket = $tokens[$openBracket]['parenthesis_closer']; $lastLine = $tokens[$openBracket]['line']; for ($i = ($openBracket + 1); $i < $closeBracket; $i++) { - // Skip nested function calls. + // Skip nested function calls (including arrays). if ($tokens[$i]["code"] === T_OPEN_PARENTHESIS) { $i = $tokens[$i]['parenthesis_closer']; $lastLine = $tokens[$i]['line']; continue; } + // Skip nested short arrays + if ($tokens[$i]['code'] === T_OPEN_SHORT_ARRAY) { + $i = $tokens[$i]['bracket_closer']; + $lastLine = $tokens[$i]['line']; + continue; + } $code = $tokens[$i]["code"]; $line = $tokens[$i]["line"];