8 use PHP_CodeSniffer\Sniffs\Sniff;
9 use PHP_CodeSniffer\Files\File;
32 public function register()
40 public function process(File $phpcsFile, $stackPtr)
42 $tokens = $phpcsFile->getTokens();
45 if (
$tokens[$stackPtr - 1][
'code'] === T_WHITESPACE) {
46 $phpcsFile->addError(
'Spaces should not be before delimiter', $stackPtr - 1,
'SpacesBeforeDelimiter');
49 $this->validateParenthesis($phpcsFile, $stackPtr,
$tokens);
58 private function validateParenthesis(File $phpcsFile, $stackPtr, array
$tokens)
60 $nextPtr = $stackPtr + 1;
62 $nextClassPtr = $phpcsFile->findNext(T_STRING_CONCAT, $nextPtr);
63 $nextOpenBrace = $phpcsFile->findNext(T_OPEN_CURLY_BRACKET, $nextPtr);
65 if ($nextClassPtr ===
false || $nextOpenBrace ===
false) {
69 $stackLine =
$tokens[$stackPtr][
'line'];
70 $nextClassLine =
$tokens[$nextPtr][
'line'];
71 $nextOpenBraceLine =
$tokens[$nextOpenBrace][
'line'];
74 if (($stackLine === $nextClassLine) && ($stackLine === $nextOpenBraceLine)) {
75 $prevParenthesis = $phpcsFile->findPrevious(T_OPEN_PARENTHESIS, $stackPtr);
76 $nextParenthesis = $phpcsFile->findNext(T_OPEN_PARENTHESIS, $stackPtr);
78 if ((
false !== $prevParenthesis) && (
false !== $nextParenthesis)
79 && (
$tokens[$prevParenthesis][
'line'] ===
$tokens[$stackPtr][
'line'])
80 && (
$tokens[$nextParenthesis][
'line'] ===
$tokens[$stackPtr][
'line'])
85 $error =
'Add a line break after each selector delimiter';
86 $phpcsFile->addError($error, $nextOpenBrace,
'LineBreakAfterDelimiter');
process(File $phpcsFile, $stackPtr)