prettier / prettier/plugin-php
Invalid output caused by combo of if statement, inline node, and comment
Nadie ha tomado este issue todavía.
- Lenguaje dominante
- PHP
- Estrellas
- 1.9k
- Forks
- 139
- Métricas de merge de PR
- Sin PR fusionados en 30 d
Descripción
Input:
<?php
if (true) {
?>inline<?php
// comment
}
Output:
<?php
if (true) { ?>inline<?php
// comment
// comment
?>}
Note the extra closing tag that has been added, which makes the code invalid, and that the comment is duplicated, which is unexpected.
If you comment out this line, it doesn't print out the closing tag that breaks the code, but it also removes the closing tag from the test file inline3.php.
If you comment out the line above, prettier throws the following error, I think about inline3.php again.
Comment "// test" was not printed. Please report this error!
I've tried to debug, but the printing system is quite large. I'll still keep looking, but might as well put it out to the community too!
Problem aslo with
<!DOCTYPE html>
<html lang="de">
<head>
<?php /* ups */
if (1==1)
{
echo 'FOO';
} ?>
</head>
<body>
</body>
</html>
Guía de contribución
Primeros pasos
- Lee el issue completo y luego la guía de contribución del proyecto.
- Comenta en el issue que vas a ocuparte — evita que dos personas hagan lo mismo.
- Haz un fork del repositorio y trabaja en una rama.
- Abre un pull request que haga referencia al número del issue.
Línea de trabajo
Empieza en src/printer.js alrededor de las líneas 1362-1363 y reproduce los casos PHP proporcionados. Compara la salida con tests/comments/inline3.php, especialmente el comportamiento de la etiqueta de cierre inline. Se considera terminado cuando el formateador conserva la etiqueta de cierre requerida sin añadir una etiqueta adicional no válida ni duplicar comentarios, mientras la expectativa existente de inline3.php sigue siendo válida.
Escrito por el modelo de indexación a partir del texto del issue.
Evaluación
- Stack tecnológico
- php
- Área
- tooling
- Tipo de issue
- Error
- Dificultad
- 4/5
- Tiempo estimado
- 3-5 días
- Estado de actividad
- Estancado
- Claridad
- Bastante claro
- Aptitud para principiantes
- 35/100