8 use PHP_CodeSniffer\Sniffs\Sniff;
9 use PHP_CodeSniffer\Files\File;
31 public function register()
39 public function process(File $phpcsFile, $stackPtr)
41 $tokens = $phpcsFile->getTokens();
42 $colour =
$tokens[$stackPtr][
'content'];
44 $variablePtr = $phpcsFile->findPrevious(T_ASPERAND, $stackPtr);
45 if ((
false === $variablePtr) || (
$tokens[$stackPtr][
'line'] !==
$tokens[$variablePtr][
'line'])) {
46 $phpcsFile->addError(
'Hexadecimal value should be used for variable', $stackPtr,
'NotInVariable');
49 $expected = strtolower($colour);
50 if ($colour !== $expected) {
51 $error =
'CSS colours must be defined in lowercase; expected %s but found %s';
52 $phpcsFile->addError($error, $stackPtr,
'NotLower', [$expected, $colour]);
56 if (strlen($colour) !== 7) {
60 if ($colour[1] === $colour[2] && $colour[3] === $colour[4] && $colour[5] === $colour[6]) {
61 $expected =
'#' . $colour[1] . $colour[3] . $colour[5];
62 $error =
'CSS colours must use shorthand if available; expected %s but found %s';
63 $phpcsFile->addError($error, $stackPtr,
'Shorthand', [$expected, $colour]);
process(File $phpcsFile, $stackPtr)