Chris@0
|
1 <?php
|
Chris@0
|
2 /**
|
Chris@0
|
3 * Drupal_Sniffs_WhiteSpace_EmptyLinesSniff.
|
Chris@0
|
4 *
|
Chris@0
|
5 * @category PHP
|
Chris@0
|
6 * @package PHP_CodeSniffer
|
Chris@0
|
7 * @link http://pear.php.net/package/PHP_CodeSniffer
|
Chris@0
|
8 */
|
Chris@0
|
9
|
Chris@0
|
10 /**
|
Chris@0
|
11 * Drupal_Sniffs_WhiteSpace_EmptyLinesSniff.
|
Chris@0
|
12 *
|
Chris@0
|
13 * Checks that there are not more than 2 empty lines following each other.
|
Chris@0
|
14 *
|
Chris@0
|
15 * @category PHP
|
Chris@0
|
16 * @package PHP_CodeSniffer
|
Chris@0
|
17 * @link http://pear.php.net/package/PHP_CodeSniffer
|
Chris@0
|
18 */
|
Chris@0
|
19 class Drupal_Sniffs_WhiteSpace_EmptyLinesSniff implements PHP_CodeSniffer_Sniff
|
Chris@0
|
20 {
|
Chris@0
|
21
|
Chris@0
|
22 /**
|
Chris@0
|
23 * A list of tokenizers this sniff supports.
|
Chris@0
|
24 *
|
Chris@0
|
25 * @var array
|
Chris@0
|
26 */
|
Chris@0
|
27 public $supportedTokenizers = array(
|
Chris@0
|
28 'PHP',
|
Chris@0
|
29 'JS',
|
Chris@0
|
30 'CSS',
|
Chris@0
|
31 );
|
Chris@0
|
32
|
Chris@0
|
33
|
Chris@0
|
34 /**
|
Chris@0
|
35 * Returns an array of tokens this test wants to listen for.
|
Chris@0
|
36 *
|
Chris@0
|
37 * @return array
|
Chris@0
|
38 */
|
Chris@0
|
39 public function register()
|
Chris@0
|
40 {
|
Chris@0
|
41 return array(T_WHITESPACE);
|
Chris@0
|
42
|
Chris@0
|
43 }//end register()
|
Chris@0
|
44
|
Chris@0
|
45
|
Chris@0
|
46 /**
|
Chris@0
|
47 * Processes this test, when one of its tokens is encountered.
|
Chris@0
|
48 *
|
Chris@0
|
49 * @param PHP_CodeSniffer_File $phpcsFile The file being scanned.
|
Chris@0
|
50 * @param int $stackPtr The position of the current token
|
Chris@0
|
51 * in the stack passed in $tokens.
|
Chris@0
|
52 *
|
Chris@0
|
53 * @return void
|
Chris@0
|
54 */
|
Chris@0
|
55 public function process(PHP_CodeSniffer_File $phpcsFile, $stackPtr)
|
Chris@0
|
56 {
|
Chris@0
|
57 $tokens = $phpcsFile->getTokens();
|
Chris@0
|
58 if ($tokens[$stackPtr]['content'] === $phpcsFile->eolChar
|
Chris@0
|
59 && isset($tokens[($stackPtr + 1)]) === true
|
Chris@0
|
60 && $tokens[($stackPtr + 1)]['content'] === $phpcsFile->eolChar
|
Chris@0
|
61 && isset($tokens[($stackPtr + 2)]) === true
|
Chris@0
|
62 && $tokens[($stackPtr + 2)]['content'] === $phpcsFile->eolChar
|
Chris@0
|
63 && isset($tokens[($stackPtr + 3)]) === true
|
Chris@0
|
64 && $tokens[($stackPtr + 3)]['content'] === $phpcsFile->eolChar
|
Chris@0
|
65 ) {
|
Chris@0
|
66 $error = 'More than 2 empty lines are not allowed';
|
Chris@0
|
67 $phpcsFile->addError($error, ($stackPtr + 3), 'EmptyLines');
|
Chris@0
|
68 }
|
Chris@0
|
69
|
Chris@0
|
70 }//end process()
|
Chris@0
|
71
|
Chris@0
|
72
|
Chris@0
|
73 }//end class
|