WARNING: THIS SITE IS A MIRROR OF GITHUB.COM / IT CANNOT LOGIN OR REGISTER ACCOUNTS / THE CONTENTS ARE PROVIDED AS-IS / THIS SITE ASSUMES NO RESPONSIBILITY FOR ANY DISPLAYED CONTENT OR LINKS / IF YOU FOUND SOMETHING MAY NOT GOOD FOR EVERYONE, CONTACT ADMIN AT ilovescratch@foxmail.com
Skip to content

Unstable runs: comment in php tag mixed with html #2426

@IanEdington

Description

@IanEdington

When prettier-php has a comment directly after <php, it reformats the comment on each successive run, resulting in strange behaviour. The most bizarre is copying the line on each successive run of prettier.

note: By stable, I mean the second time you run prettier, it doesn't change the files. If there's a better word for this, I'm happy to change my description.

This bug is captured in a comment on another issue. However, due to this bug breaking a core properties of prettier, stable transformations, I think it's worth its own issue.

similar bugs:

Prettier 3.5.3

PHP Plugin 0.22.4

# Options (if any): None
module.exports = {
	plugins: ["@prettier/plugin-php"],
};

Example 1

Input:

<?php
/**
 * The template for displaying the footer
 */
?>

<div class="footer">
	<?php
	// Footer
	get_template_part("template-parts/footer", "2022"); ?>
</div>

<?php wp_footer(); ?>

Output run 1:

<?php
/**
 * The template for displaying the footer
 */
?>

<div class="footer">
	<?php // Footer
 get_template_part("template-parts/footer", "2022"); ?>
</div>

<?php wp_footer(); ?>

Output run 2:

<?php
/**
 * The template for displaying the footer
 */
?>

<div class="footer">
	<?php // Footer
// Footer
get_template_part("template-parts/footer", "2022"); ?>
</div>

<?php wp_footer(); ?>

Output run 3: each successive run adds a new line with // Footer

Example 2

Input:

		</main><!-- #main -->
	</div><!-- #primary -->

<?php
// get_sidebar();
get_footer();

Output run 1:

		</main><!-- #main -->
	</div><!-- #primary -->

<?php // get_sidebar();
get_footer();

Output run 2:

		</main><!-- #main -->
	</div><!-- #primary -->

<?php // get_sidebar();

get_footer();

Example 3

Input:

			<header class="page-header">
				<h1 class="page-title">
				<?php
				/* translators: %s: search query. */
				printf(
    	esc_html__("Search Results for: %s", "gpo18"),
    	"<span>" . get_search_query() . "</span>"
    ); ?>
				</h1>
			</header><!-- .page-header -->

Output run 1:

			<header class="page-header">
				<h1 class="page-title">
				<?php /* translators: %s: search query. */
    printf(
    	esc_html__("Search Results for: %s", "gpo18"),
    	"<span>" . get_search_query() . "</span>"
    ); ?>
				</h1>
			</header><!-- .page-header -->

Output run 2:

			<header class="page-header">
				<h1 class="page-title">
				 /* translators: %s: search query. */<?php
  	/* translators: %s: search query. */
  	printf(
    	esc_html__("Search Results for: %s", "gpo18"),
    	"<span>" . get_search_query() . "</span>"
    ); ?>
				</h1>
			</header><!-- .page-header -->

Output run 3:

			<header class="page-header">
				<h1 class="page-title">
				 /* translators: %s: search query. */ /* translators: %s: search query. */<?php
  	/* translators: %s: search query. */
  	printf(
     	esc_html__("Search Results for: %s", "gpo18"),
     	"<span>" . get_search_query() . "</span>"
     ); ?>
				</h1>
			</header><!-- .page-header -->

cc: @movva-gpu

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions