opt
/
cpanel
/
ea-wappspector
/
vendor
/
slevomat
/
coding-standard
/
SlevomatCodingStandard
/
Helpers
➕ New
📤 Upload
✎ Editing:
ParsedDocComment.php
← Back
<?php declare(strict_types = 1); namespace SlevomatCodingStandard\Helpers; use PHP_CodeSniffer\Files\File; use PHPStan\PhpDocParser\Ast\Attribute; use PHPStan\PhpDocParser\Ast\Node; use PHPStan\PhpDocParser\Ast\PhpDoc\PhpDocNode; use PHPStan\PhpDocParser\Parser\TokenIterator; use function count; use function strlen; use function trim; use const T_DOC_COMMENT_STRING; /** * @internal */ class ParsedDocComment { private int $openPointer; private int $closePointer; private PhpDocNode $node; private TokenIterator $tokens; public function __construct(int $openPointer, int $closePointer, PhpDocNode $node, TokenIterator $tokens) { $this->openPointer = $openPointer; $this->closePointer = $closePointer; $this->node = $node; $this->tokens = $tokens; } public function getOpenPointer(): int { return $this->openPointer; } public function getClosePointer(): int { return $this->closePointer; } public function getNode(): PhpDocNode { return $this->node; } public function getTokens(): TokenIterator { return $this->tokens; } public function getNodeStartPointer(File $phpcsFile, Node $node): int { $tokens = $phpcsFile->getTokens(); $tagStartLine = $tokens[$this->openPointer]['line'] + $node->getAttribute('startLine') - 1; $searchPointer = $this->openPointer + 1; for ($i = $this->openPointer + 1; $i < $this->closePointer; $i++) { if ($tagStartLine === $tokens[$i]['line']) { $searchPointer = $i; break; } } return TokenHelper::findNext($phpcsFile, [...TokenHelper::ANNOTATION_TOKEN_CODES, T_DOC_COMMENT_STRING], $searchPointer); } public function getNodeEndPointer(File $phpcsFile, Node $node, int $nodeStartPointer): int { $tokens = $phpcsFile->getTokens(); $content = trim($this->tokens->getContentBetween( $node->getAttribute(Attribute::START_INDEX), $node->getAttribute(Attribute::END_INDEX) + 1, )); $length = strlen($content); $searchPointer = $nodeStartPointer; $content = ''; for ($i = $nodeStartPointer; $i < count($tokens); $i++) { $content .= $tokens[$i]['content']; if (strlen($content) >= $length) { $searchPointer = $i; break; } } return TokenHelper::findPrevious( $phpcsFile, [...TokenHelper::ANNOTATION_TOKEN_CODES, T_DOC_COMMENT_STRING], $searchPointer, ); } }
💾 Save Changes
Cancel
📤 Upload File
×
Select File
Upload
Cancel
➕ Create New
×
Type
📄 File
📁 Folder
Name
Create
Cancel
✎ Rename Item
×
Current Name
New Name
Rename
Cancel
🔐 Change Permissions
×
Target File
Permission (e.g., 0755, 0644)
0755
0644
0777
Apply
Cancel