Source for file IndentationSniff.php
Documentation is available at IndentationSniff.php
* Ensures styles are indented 4 spaces.
* @author Greg Sherwood <gsherwood@squiz.net>
* @copyright 2006-2015 Squiz Pty Ltd (ABN 77 084 670 600)
* @license https://github.com/squizlabs/PHP_CodeSniffer/blob/master/licence.txt BSD Licence
namespace PHP_CodeSniffer\Standards\Squiz\Sniffs\CSS;
use PHP_CodeSniffer\Sniffs\Sniff;
use PHP_CodeSniffer\Files\File;
class IndentationSniff implements Sniff
* A list of tokenizers this sniff supports.
public $supportedTokenizers = array ('CSS');
* The number of spaces code should be indented.
* Returns the token types that this sniff is interested in.
public function register ()
return array (T_OPEN_TAG );
* Processes the tokens that this sniff is interested in.
* @param \PHP_CodeSniffer\Files\File $phpcsFile The file where the token was found.
* @param int $stackPtr The position in the stack where
public function process (File $phpcsFile, $stackPtr)
$tokens = $phpcsFile->getTokens ();
$numTokens = (count($tokens) - 2 );
for ($i = 1; $i < $numTokens; $i++ ) {
if ($tokens[$i]['code'] === T_COMMENT ) {
// Don't check the indent of comments.
// Check for nested class definitions.
$found = $phpcsFile->findNext (
$tokens[$i]['bracket_closer']
$nestingLevel = $indentLevel;
&& $tokens[$i]['line'] !== $tokens[($i - 1 )]['line'])
&& $tokens[$i]['line'] === $tokens[($i + 1 )]['line'])
if ($indentLevel === 0 ) {
if ($tokens[$i]['column'] !== 1
// We started a new line, so check indent.
if ($tokens[$i]['code'] === T_WHITESPACE ) {
$content = str_replace($phpcsFile->eolChar , '', $tokens[$i]['content']);
$foundIndent = strlen($content);
$expectedIndent = ($indentLevel * $this->indent);
&& strpos($tokens[$i]['content'], $phpcsFile->eolChar ) !== false
if ($nestingLevel !== $indentLevel) {
$error = 'Blank lines are not allowed in class definitions';
$fix = $phpcsFile->addFixableError ($error, $i, 'BlankLine');
$phpcsFile->fixer ->replaceToken ($i, '');
} else if ($foundIndent !== $expectedIndent) {
$error = 'Line indented incorrectly; expected %s spaces, found %s';
$fix = $phpcsFile->addFixableError ($error, $i, 'Incorrect', $data);
if ($foundIndent === 0 ) {
$phpcsFile->fixer ->addContentBefore ($i, $indent);
$phpcsFile->fixer ->replaceToken ($i, $indent);
Documentation generated on Mon, 11 Mar 2019 15:27:34 -0400 by phpDocumentor 1.4.4. PEAR Logo Copyright © PHP Group 2004.
|