Skip to main content
Drupal API
User account menu
  • Log in

Breadcrumb

  1. Drupal Core 11.1.x
  2. LowercaseStyleDefinitionSniff.php

function LowercaseStyleDefinitionSniff::process

Processes the tokens that this sniff is interested in.

Parameters

\PHP_CodeSniffer\Files\File $phpcsFile The file where the token was found.:

int $stackPtr The position in the stack where: the token was found.

Return value

void

Overrides Sniff::process

File

vendor/squizlabs/php_codesniffer/src/Standards/Squiz/Sniffs/CSS/LowercaseStyleDefinitionSniff.php, line 49

Class

LowercaseStyleDefinitionSniff

Namespace

PHP_CodeSniffer\Standards\Squiz\Sniffs\CSS

Code

public function process(File $phpcsFile, $stackPtr) {
    $tokens = $phpcsFile->getTokens();
    $start = $stackPtr + 1;
    $end = $tokens[$stackPtr]['bracket_closer'] - 1;
    $inStyle = null;
    for ($i = $start; $i <= $end; $i++) {
        // Skip nested definitions as they are checked individually.
        if ($tokens[$i]['code'] === T_OPEN_CURLY_BRACKET) {
            $i = $tokens[$i]['bracket_closer'];
            continue;
        }
        if ($tokens[$i]['code'] === T_STYLE) {
            $inStyle = $tokens[$i]['content'];
        }
        if ($tokens[$i]['code'] === T_SEMICOLON) {
            $inStyle = null;
        }
        if ($inStyle === 'progid') {
            // Special case for IE filters.
            continue;
        }
        if ($tokens[$i]['code'] === T_STYLE || $inStyle !== null && $tokens[$i]['code'] === T_STRING) {
            $expected = strtolower($tokens[$i]['content']);
            if ($expected !== $tokens[$i]['content']) {
                $error = 'Style definitions must be lowercase; expected %s but found %s';
                $data = [
                    $expected,
                    $tokens[$i]['content'],
                ];
                $fix = $phpcsFile->addFixableError($error, $i, 'FoundUpper', $data);
                if ($fix === true) {
                    $phpcsFile->fixer
                        ->replaceToken($i, $expected);
                }
            }
        }
    }
    
    //end for
}
RSS feed
Powered by Drupal