> $annotations */ $annotations = AnnotationHelper::getAnnotations($phpcsFile, $pointer, self::ANNOTATION); return array_reduce( $annotations, static function (bool $carry, Annotation $annotation) use ($suppressName): bool { $annotationSuppressName = explode(' ', $annotation->getValue()->value)[0]; if ( $suppressName === $annotationSuppressName || strpos($suppressName, sprintf('%s.', $annotationSuppressName)) === 0 ) { $carry = true; } return $carry; }, false ); } public static function removeSuppressAnnotation(File $phpcsFile, int $pointer, string $suppressName): void { $suppressAnnotation = null; /** @var Annotation $annotation */ foreach (AnnotationHelper::getAnnotations($phpcsFile, $pointer, self::ANNOTATION) as $annotation) { if ($annotation->getValue()->value === $suppressName) { $suppressAnnotation = $annotation; break; } } assert($suppressAnnotation !== null); $tokens = $phpcsFile->getTokens(); /** @var int $pointerBefore */ $pointerBefore = TokenHelper::findPrevious( $phpcsFile, [T_DOC_COMMENT_OPEN_TAG, T_DOC_COMMENT_STAR], $suppressAnnotation->getStartPointer() - 1 ); $changeStart = $tokens[$pointerBefore]['code'] === T_DOC_COMMENT_STAR ? $pointerBefore : $suppressAnnotation->getStartPointer(); /** @var int $changeEnd */ $changeEnd = TokenHelper::findNext( $phpcsFile, [T_DOC_COMMENT_CLOSE_TAG, T_DOC_COMMENT_STAR], $suppressAnnotation->getEndPointer() + 1 ) - 1; $phpcsFile->fixer->beginChangeset(); FixerHelper::removeBetweenIncluding($phpcsFile, $changeStart, $changeEnd); $phpcsFile->fixer->endChangeset(); } }