extensions/felixfbecker.php-intellisense-0.0.12/vendor/squizlabs/php_codesniffer/src/Standards/Squiz/Sniffs/Strings/DoubleQuoteUsageSniff.php
/**
     * Processes this test, when one of its tokens is encountered.
     *
     * @param PHP_CodeSniffer_File $phpcsFile The file being scanned.
     * @param int                  $stackPtr  The position of the current token
     *                                        in the stack passed in $tokens.
     *
     * @return void
     */
Processes this test, when one of its tokens is encountered.
@param PHP_CodeSniffer_File $phpcsFile The file being scanned.
@param int                  $stackPtr  The position of the current token
in the stack passed in $tokens.

@return void
Processes this test when one of its tokens is encountered . @param PHP_CodeSniffer_File $phpcsFile The file being scanned . @param int $stackPtr The position of the current token in the stack passed in $tokens . @return void
public function process(File $phpcsFile, $stackPtr)
    {
        $tokens = $phpcsFile->getTokens();
        if ($tokens[$stackPtr]['code'] === $tokens[($stackPtr - 1)]['code']) {
            return;
        }
        $workingString   = $tokens[$stackPtr]['content'];
        $lastStringToken = $stackPtr;
        $i = ($stackPtr + 1);
        if (isset($tokens[$i]) === true) {
            while ($i < $phpcsFile->numTokens
                && $tokens[$i]['code'] === $tokens[$stackPtr]['code']
            ) {
                $workingString  .= $tokens[$i]['content'];
                $lastStringToken = $i;
                $i++;
            }
        }
        if (strpos($workingString, '"') === false) {
            return;
        }
        if ($workingString[0] !== '"') {
            return;
        }
        if ($tokens[$stackPtr]['code'] === T_DOUBLE_QUOTED_STRING) {
            $stringTokens = token_get_all('<?php '.$workingString);
            foreach ($stringTokens as $token) {
                if (is_array($token) === true && $token[0] === T_VARIABLE) {
                    $error = 'Variable "%s" not allowed in double quoted string; use concatenation instead';
                    $data  = array($token[1]);
                    $phpcsFile->addError($error, $stackPtr, 'ContainsVar', $data);
                }
            }
            return;
        }
        $allowedChars = array(
                         '\0',
                         '\1',
                         '\2',
                         '\3',
                         '\4',
                         '\5',
                         '\6',
                         '\7',
                         '\n',
                         '\r',
                         '\f',
                         '\t',
                         '\v',
                         '\x',
                         '\b',
                         '\e',
                         '\u',
                         '\'',
                        );
        foreach ($allowedChars as $testChar) {
            if (strpos($workingString, $testChar) !== false) {
                return;
            }
        }
        $error = 'String %s does not require double quotes; use single quotes instead';
        $data  = array(str_replace("\n", '\n', $workingString));
        $fix   = $phpcsFile->addFixableError($error, $stackPtr, 'NotRequired', $data);
        if ($fix === true) {
            $phpcsFile->fixer->beginChangeset();
            $innerContent = substr($workingString, 1, -1);
            $innerContent = str_replace('\"', '"', $innerContent);
            $phpcsFile->fixer->replaceToken($stackPtr, "'$innerContent'");
            while ($lastStringToken !== $stackPtr) {
                $phpcsFile->fixer->replaceToken($lastStringToken, '');
                $lastStringToken--;
            }
            $phpcsFile->fixer->endChangeset();
        }
    }
public function process ( File $ phpcsFile , $ stackPtr ) { $ tokens = $ phpcsFile -> getTokens ( ) ; if ( $ tokens [ $ stackPtr ] [ 'code' ] === $ tokens [ ( $ stackPtr - 1 ) ] [ 'code' ] ) { return ; } $ workingString = $ tokens [ $ stackPtr ] [ 'content' ] ; $ lastStringToken = $ stackPtr ; $ i = ( $ stackPtr + 1 ) ; if ( isset ( $ tokens [ $ i ] ) === true ) { while ( $ i < $ phpcsFile -> numTokens && $ tokens [ $ i ] [ 'code' ] === $ tokens [ $ stackPtr ] [ 'code' ] ) { $ workingString .= $ tokens [ $ i ] [ 'content' ] ; $ lastStringToken = $ i ; $ i ++ ; } } if ( strpos ( $ workingString , '"' ) === false ) { return ; } if ( $ workingString [ 0 ] !== '"' ) { return ; } if ( $ tokens [ $ stackPtr ] [ 'code' ] === T_DOUBLE_QUOTED_STRING ) { $ stringTokens = token_get_all ( '<?php ' . $ workingString ) ; foreach ( $ stringTokens as $ token ) { if ( is_array ( $ token ) === true && $ token [ 0 ] === T_VARIABLE ) { $ error = 'Variable "%s" not allowed in double quoted string; use concatenation instead' ; $ data = array ( $ token [ 1 ] ) ; $ phpcsFile -> addError ( $ error , $ stackPtr , 'ContainsVar' , $ data ) ; } } return ; } $ allowedChars = array ( '\0' , '\1' , '\2' , '\3' , '\4' , '\5' , '\6' , '\7' , '\n' , '\r' , '\f' , '\t' , '\v' , '\x' , '\b' , '\e' , '\u' , '\'' , ) ; foreach ( $ allowedChars as $ testChar ) { if ( strpos ( $ workingString , $ testChar ) !== false ) { return ; } } $ error = 'String %s does not require double quotes; use single quotes instead' ; $ data = array ( str_replace ( " \n " , '\n' , $ workingString ) ) ; $ fix = $ phpcsFile -> addFixableError ( $ error , $ stackPtr , 'NotRequired' , $ data ) ; if ( $ fix === true ) { $ phpcsFile -> fixer -> beginChangeset ( ) ; $ innerContent = substr ( $ workingString , 1 , - 1 ) ; $ innerContent = str_replace ( '\"' , '"' , $ innerContent ) ; $ phpcsFile -> fixer -> replaceToken ( $ stackPtr , " ' $ innerContent ' " ) ; while ( $ lastStringToken !== $ stackPtr ) { $ phpcsFile -> fixer -> replaceToken ( $ lastStringToken , '' ) ; $ lastStringToken -- ; } $ phpcsFile -> fixer -> endChangeset ( ) ; } }
Processes this test, when one of its tokens is encountered.
Processes this test when one of its tokens is encountered .
// We are only interested in the first token in a multi-line string. // Check if it's a double quoted string. // Make sure it's not a part of a string started in a previous line. // If it is, then we have already checked it. // The use of variables in double quoted strings is not allowed. //end if