feat: introduce new rule to fix var comment#392
Open
94noni wants to merge 1 commit intoVincentLanglet:mainfrom
Open
feat: introduce new rule to fix var comment#39294noni wants to merge 1 commit intoVincentLanglet:mainfrom
94noni wants to merge 1 commit intoVincentLanglet:mainfrom
Conversation
| // Listen COMMENT_TEXT_TYPE https://github.com/VincentLanglet/Twig-CS-Fixer/blob/main/src/Token/Token.php#L42 | ||
| // If the value is not @var return | ||
|
|
||
| if (!$this->isTokenMatching($token, Token::COMMENT_START_TYPE, '@var')) { |
Owner
There was a problem hiding this comment.
COMMENT_START_TYPE is always {#
if (!$this->isTokenMatching($token, Token::COMMENT_START_TYPE)) {
return;
}
$nextText = $tokens->findNext([Token::COMMENT_TEXT_TYPE, Token::COMMENT_END_TYPE], $tokenIndex);
Assert::notFalse($nextText, 'Closing tag cannot be null.');
$nextTextToken = $tokens->get($nextText);
if (!$nextTextToken->isMatching(Token::COMMENT_TEXT_TYPE, '@var') {
return;
}
$fixer = $this->addFixableError(
'Variable comment declaration must be used via types tag instead of comment.',
$token
);
if (null === $fixer) {
return;
}
// Then do the fix
$end = $tokens->findNext(Token::COMMENT_END_TYPE, $nextText);
Assert::notFalse($nextText, 'Closing tag cannot be null.');
// You might look for varName and varType before adding the fixable error because you don't want to report an error for something like
// `{# @var #}` or `{# @var foo #}`
$varName = ...;
$varType = ...;
// We will have to handle things like
// `{# @var foo App\Foo\Bar some comments to explain things #}`
$comment = ...;
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Warning
WIP, just to make stuff rolling on my side
close #375
this PR introduce a new rule to fix comment var comment declaration to the new types tag
for now I am trying mostly to understand the project itself and token parsing etc
feel free to comment nonetheless