Chris@0: getTokens(); Chris@0: Chris@0: $lastLineChecked = $tokens[$stackPtr]['line']; Chris@0: for ($i = ($stackPtr + 1); $i < ($tokens[$stackPtr]['comment_closer'] - 1); $i++) { Chris@0: // We are only interested in the beginning of the line. Chris@0: if ($tokens[$i]['line'] === $lastLineChecked) { Chris@0: continue; Chris@0: } Chris@0: Chris@0: // The first token on the line must be a whitespace followed by a star. Chris@0: if ($tokens[$i]['code'] === T_DOC_COMMENT_WHITESPACE) { Chris@0: if ($tokens[($i + 1)]['code'] !== T_DOC_COMMENT_STAR) { Chris@0: $error = 'Doc comment star missing'; Chris@0: $fix = $phpcsFile->addFixableError($error, $i, 'StarMissing'); Chris@0: if ($fix === true) { Chris@0: if (strpos($tokens[$i]['content'], $phpcsFile->eolChar) !== false) { Chris@0: $phpcsFile->fixer->replaceToken($i, str_repeat(' ', $tokens[$stackPtr]['column'])."* \n"); Chris@0: } else { Chris@0: $phpcsFile->fixer->replaceToken($i, str_repeat(' ', $tokens[$stackPtr]['column']).'* '); Chris@0: } Chris@0: Chris@0: // Ordering of lines might have changed - stop here. The Chris@0: // fixer will restart the sniff if there are remaining fixes. Chris@0: return; Chris@0: } Chris@0: } Chris@0: } else if ($tokens[$i]['code'] !== T_DOC_COMMENT_STAR) { Chris@0: $error = 'Doc comment star missing'; Chris@0: $fix = $phpcsFile->addFixableError($error, $i, 'StarMissing'); Chris@0: if ($fix === true) { Chris@0: $phpcsFile->fixer->addContentBefore($i, str_repeat(' ', $tokens[$stackPtr]['column']).'* '); Chris@0: } Chris@0: }//end if Chris@0: Chris@0: $lastLineChecked = $tokens[$i]['line']; Chris@0: }//end for Chris@0: Chris@0: }//end process() Chris@0: Chris@0: Chris@0: }//end class