-
-
Notifications
You must be signed in to change notification settings - Fork 131
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Comments in attributes (e.g. for an array item) are weirdly moved to somewhere completely else #2282
Comments
Got the same thing happenning, but instead of only moving, it also duplicates. I got that simple thing with a PHPDoc so my IDE doesn't tell me my var is undefined (I know I could work around it but I just find this easier for now) Input: <footer>
© •••••• -- All rights reserved.
</footer>
<?php /** @var Script[] $scripts */
if (isset($scripts)) {
foreach ($scripts as $script) {
echo $script;
}
} Output: <footer>
© Grapes -- All rights reserved.
</footer>
/** @var Script[] $scripts */<?php
/** @var Script[] $scripts */
if (isset($scripts)) {
foreach ($scripts as $script) {
echo $script;
}
} What's even weirder is, when I format using Prettier again: <footer>
© Grapes -- All rights reserved.
</footer>
/** @var Script[] $scripts */<?php /** @var Script[] $scripts */
if (isset($scripts)) {
foreach ($scripts as $script) {
echo $script;
}
} And again: <footer>
© Grapes -- All rights reserved.
</footer>
/** @var Script[] $scripts */ /** @var Script[] $scripts */<?php
/** @var Script[] $scripts */
if (isset($scripts)) {
foreach ($scripts as $script) {
echo $script;
}
} And then it just keeps repeating the comment every two times I format: <footer>
© Grapes -- All rights reserved.
</footer>
/** @var Script[] $scripts */ /** @var Script[] $scripts */ /** @var Script[] $scripts */ /** @var Script[] $scripts */ /** @var Script[] $scripts */ /** @var Script[] $scripts */<?php /** @var Script[] $scripts */
if (isset($scripts)) {
foreach ($scripts as $script) {
echo $script;
}
} |
After testing on Playground, it only occurs when there's a line about the This: <?php /** @var Script[] $scripts */
if (isset($scripts)) {
foreach ($scripts as $script) {
echo $script;
}
} doesn't change. But this : // empty line
<?php /** @var Script[] $scripts */
if (isset($scripts)) {
foreach ($scripts as $script) {
echo $script;
}
} turns into this : // empty line
/** @var Script[] $scripts */<?php
/** @var Script[] $scripts */
if (isset($scripts)) {
foreach ($scripts as $script) {
echo $script;
}
} |
Various comments inside attributes are moved to really weird places instead of staying where they were.
The example below is not the only one where something like this happens. There are a few other scenarios like e..g for a parameter etc.
Prettier 2.88.0 (but also tried the latest)
PHP Plugin 0.19.6 (but also tried the latest)
# Options (if any): --no-options
Input:
Output:
Expected behavior:
Output should keep the comment where it was. IT definitely should not be moved to the class:
This seems to be the case for quite some time as even the old version on the playground shows the issue: Link to playground
The text was updated successfully, but these errors were encountered: