|
4 | 4 |
|
5 | 5 | use PHP_CodeSniffer\Files\File; |
6 | 6 | use PHP_CodeSniffer\Sniffs\Sniff; |
| 7 | +use PHP_CodeSniffer\Util\Tokens; |
7 | 8 | use SlevomatCodingStandard\Helpers\CommentHelper; |
8 | | -use SlevomatCodingStandard\Helpers\DocCommentHelper; |
9 | 9 | use SlevomatCodingStandard\Helpers\FunctionHelper; |
10 | 10 | use SlevomatCodingStandard\Helpers\ScopeHelper; |
11 | 11 | use SlevomatCodingStandard\Helpers\SniffSettingsHelper; |
12 | 12 | use SlevomatCodingStandard\Helpers\TokenHelper; |
13 | 13 | use SlevomatCodingStandard\Helpers\UseStatementHelper; |
| 14 | +use function array_key_exists; |
14 | 15 | use function array_merge; |
15 | 16 | use function in_array; |
16 | 17 | use function sprintf; |
@@ -182,8 +183,24 @@ private function findNextMember(File $phpcsFile, int $classPointer, int $previou |
182 | 183 |
|
183 | 184 | private function getMemberStartPointer(File $phpcsFile, int $memberPointer): int |
184 | 185 | { |
185 | | - return DocCommentHelper::findDocCommentOpenToken($phpcsFile, $memberPointer) |
186 | | - ?? $this->getMemberFirstCodePointer($phpcsFile, $memberPointer); |
| 186 | + $tokens = $phpcsFile->getTokens(); |
| 187 | + |
| 188 | + $memberFirstCodePointer = $this->getMemberFirstCodePointer($phpcsFile, $memberPointer); |
| 189 | + $pointerBefore = TokenHelper::findPreviousExcluding($phpcsFile, T_WHITESPACE, $memberFirstCodePointer - 1); |
| 190 | + |
| 191 | + if ( |
| 192 | + in_array($tokens[$pointerBefore]['code'], Tokens::$commentTokens, true) |
| 193 | + && $tokens[$pointerBefore]['line'] + 1 === $tokens[$memberFirstCodePointer]['line'] |
| 194 | + ) { |
| 195 | + $pointerBeforeComment = TokenHelper::findPreviousEffective($phpcsFile, $pointerBefore - 1); |
| 196 | + if ($tokens[$pointerBeforeComment]['line'] !== $tokens[$pointerBefore]['line']) { |
| 197 | + return array_key_exists('comment_opener', $tokens[$pointerBefore]) |
| 198 | + ? $tokens[$pointerBefore]['comment_opener'] |
| 199 | + : CommentHelper::getMultilineCommentStartPointer($phpcsFile, $pointerBefore); |
| 200 | + } |
| 201 | + } |
| 202 | + |
| 203 | + return $memberFirstCodePointer; |
187 | 204 | } |
188 | 205 |
|
189 | 206 | private function getMemberFirstCodePointer(File $phpcsFile, int $memberPointer): int |
|
0 commit comments