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

Breadcrumb

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

function CSSLintSniff::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

int

Overrides Sniff::process

File

vendor/squizlabs/php_codesniffer/src/Standards/Generic/Sniffs/Debug/CSSLintSniff.php, line 51

Class

CSSLintSniff

Namespace

PHP_CodeSniffer\Standards\Generic\Sniffs\Debug

Code

public function process(File $phpcsFile, $stackPtr) {
    $csslintPath = Config::getExecutablePath('csslint');
    if ($csslintPath === null) {
        return $phpcsFile->numTokens;
    }
    $fileName = $phpcsFile->getFilename();
    $cmd = Common::escapeshellcmd($csslintPath) . ' ' . escapeshellarg($fileName) . ' 2>&1';
    exec($cmd, $output, $retval);
    if (is_array($output) === false) {
        return $phpcsFile->numTokens;
    }
    $count = count($output);
    for ($i = 0; $i < $count; $i++) {
        $matches = [];
        $numMatches = preg_match('/(error|warning) at line (\\d+)/', $output[$i], $matches);
        if ($numMatches === 0) {
            continue;
        }
        $line = (int) $matches[2];
        $message = 'csslint says: ' . $output[$i + 1];
        // First line is message with error line and error code.
        // Second is error message.
        // Third is wrong line in file.
        // Fourth is empty line.
        $i += 4;
        $phpcsFile->addWarningOnLine($message, $line, 'ExternalTool');
    }
    
    //end for
    // Ignore the rest of the file.
    return $phpcsFile->numTokens;
}
RSS feed
Powered by Drupal