Skip to content

Commit 5d43b20

Browse files
author
Marc Paffen
committed
Squiz Sniffer angepasst. Whitespaces vor T_OBJECT_OPERATOR wird ignoriert, wenn es eine 'newline' ist.
1 parent 43531d1 commit 5d43b20

File tree

1 file changed

+68
-0
lines changed

1 file changed

+68
-0
lines changed
Lines changed: 68 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,68 @@
1+
<?php
2+
class HDNETBlack_Sniffs_WhiteSpace_ObjectOperatorSpacingSniff implements PHP_CodeSniffer_Sniff
3+
{
4+
5+
/**
6+
* Returns an array of tokens this test wants to listen for.
7+
*
8+
* @return array
9+
*/
10+
public function register()
11+
{
12+
return array(T_OBJECT_OPERATOR);
13+
}
14+
15+
/**
16+
* Processes this test, when one of its tokens is encountered.
17+
*
18+
* @param PHP_CodeSniffer_File $phpcsFile The file being scanned.
19+
* @param int $stackPtr The position of the current token
20+
* in the stack passed in $tokens.
21+
*
22+
* @return void
23+
*/
24+
public function process(PHP_CodeSniffer_File $phpcsFile, $stackPtr)
25+
{
26+
$tokens = $phpcsFile->getTokens();
27+
if ($tokens[($stackPtr - 1)]['code'] !== T_WHITESPACE) {
28+
$before = 0;
29+
} else {
30+
if ($tokens[($stackPtr - 2)]['line'] !== $tokens[$stackPtr]['line']) {
31+
$before = 'newline';
32+
} else {
33+
$before = $tokens[($stackPtr - 1)]['length'];
34+
}
35+
}
36+
37+
if ($tokens[($stackPtr + 1)]['code'] !== T_WHITESPACE) {
38+
$after = 0;
39+
} else {
40+
if ($tokens[($stackPtr + 2)]['line'] !== $tokens[$stackPtr]['line']) {
41+
$after = 'newline';
42+
} else {
43+
$after = $tokens[($stackPtr + 1)]['length'];
44+
}
45+
}
46+
47+
$phpcsFile->recordMetric($stackPtr, 'Spacing before object operator', $before);
48+
$phpcsFile->recordMetric($stackPtr, 'Spacing after object operator', $after);
49+
50+
if ($before !== 0 && $before !== 'newline') {
51+
$error = 'Space found before object operator';
52+
$fix = $phpcsFile->addFixableError($error, $stackPtr, 'Before');
53+
if ($fix === true) {
54+
$phpcsFile->fixer->replaceToken(($stackPtr - 1), '');
55+
}
56+
}
57+
58+
if ($after !== 0) {
59+
$error = 'Space found after object operator';
60+
$fix = $phpcsFile->addFixableError($error, $stackPtr, 'After');
61+
if ($fix === true) {
62+
$phpcsFile->fixer->replaceToken(($stackPtr + 1), '');
63+
}
64+
}
65+
66+
}
67+
68+
}

0 commit comments

Comments
 (0)