Skip to content

Commit

Permalink
Generic/DocComment: bug fix - don't remove ignore annotations when fi…
Browse files Browse the repository at this point in the history
…xing

The code sample included in the tests would previously result in an "There must be a single blank line after a tag group" error, even though there _is_ a blank line after the `@codeCoverageIgnore` tag.

The auto-fixer would subsequently fix this by removing the `@phpcs:disable` comment + the blank line after it.

Fixed now.

Includes test.
  • Loading branch information
jrfnl committed Sep 24, 2023
1 parent 7566b4d commit 9e8492f
Show file tree
Hide file tree
Showing 3 changed files with 26 additions and 2 deletions.
8 changes: 6 additions & 2 deletions src/Standards/Generic/Sniffs/Commenting/DocCommentSniff.php
Original file line number Diff line number Diff line change
Expand Up @@ -11,6 +11,7 @@

use PHP_CodeSniffer\Files\File;
use PHP_CodeSniffer\Sniffs\Sniff;
use PHP_CodeSniffer\Util\Tokens;

class DocCommentSniff implements Sniff
{
Expand Down Expand Up @@ -280,9 +281,12 @@ public function process(File $phpcsFile, $stackPtr)
}

// Check that there was single blank line after the tag block
// but account for a multi-line tag comments.
// but account for multi-line tag comments.
$find = Tokens::$phpcsCommentTokens;
$find[T_DOC_COMMENT_TAG] = T_DOC_COMMENT_TAG;

$lastTag = $group[$pos];
$next = $phpcsFile->findNext(T_DOC_COMMENT_TAG, ($lastTag + 3), $commentEnd);
$next = $phpcsFile->findNext($find, ($lastTag + 3), $commentEnd);
if ($next !== false) {
$prev = $phpcsFile->findPrevious([T_DOC_COMMENT_TAG, T_DOC_COMMENT_STRING], ($next - 1), $commentStart);
if ($tokens[$next]['line'] !== ($tokens[$prev]['line'] + 2)) {
Expand Down
10 changes: 10 additions & 0 deletions src/Standards/Generic/Tests/Commenting/DocCommentUnitTest.inc
Original file line number Diff line number Diff line change
Expand Up @@ -249,4 +249,14 @@
* @link http://pear.php.net/package/PHP_CodeSniffer
*/

/**
* Do something.
*
* @codeCoverageIgnore
*
* @phpcs:disable Stnd.Cat.SniffName
*
* @return void
*/

/** No docblock close tag. Must be last test without new line.
Original file line number Diff line number Diff line change
Expand Up @@ -254,4 +254,14 @@
* @link http://pear.php.net/package/PHP_CodeSniffer
*/

/**
* Do something.
*
* @codeCoverageIgnore
*
* @phpcs:disable Stnd.Cat.SniffName
*
* @return void
*/

/** No docblock close tag. Must be last test without new line.

0 comments on commit 9e8492f

Please sign in to comment.