Hacktoberfest 2026: as issues que os mantenedores marcaram para outubro, abertas e boas para iniciantes. Ver issues do Hacktoberfest

Prettier adds incorrect semicolon with nested foreach, for, try/catch

Aberta
#2,019 0 comentários 0 reações 0 responsáveis Ver no GitHub

Ninguém assumiu esta issue ainda.

Avaliação

Dificuldade
3/5
Tempo estimado
1-2 dias
Facilidade para iniciantes
45/100
Tipo de issue
Bug
Clareza
Razoavelmente clara
Status de atividade
Estagnada
Stack de tecnologia
php
Domínio
tooling

Direção de pesquisa

Comece pelo exemplo de Playground vinculado e compare a primeira passagem de formatação com a segunda. Reproduza os casos aninhados de foreach, for, try/catch e casos relacionados e, em seguida, verifique se a formatação não produz ponto e vírgula extras e permanece inalterada quando executada novamente.

Escrita pelo modelo de indexação a partir do texto da issue.

Descrição

bug

@prettier/plugin-php v0.18.8
Playground link

Input:

<?php

foreach( $x as $y)
  foreach ($a as $b) {
    $a = $x;
  }

foreach ($x as $y)
    for ($a = 1; $a < 10; a++) {
        $a = $x;
    };

if( $foo)
  foreach($b as $a)
  {
    $foo = bar;
  }

if($foo)
  try {
  } catch (Exception $e){
  }

Output:

<?php

foreach ($x as $y) {
    foreach ($a as $b) {
        $a = $x;
    };
}

foreach ($x as $y) {
    for ($a = 1; $a < 10; a++) {
        $a = $x;
    };
}

if ($foo) {
    foreach ($b as $a) {
        $foo = bar;
    };
}

if ($foo) {
    try {
    } catch (Exception $e) {
    };
}

I think this shows the issue. The expected output should be the same as the output, without the extra semicolons.

If you run prettier on the same file a second time, it will removed the extra semicolons. I know this affects foreach, for, try/catch, but I'm not sure that is a comprehensive list.

Linguagem predominante
PHP
Estrelas
1.9k
Forks
139
Métricas de merge de PRs
Nenhum PR com merge em 30d

Guia de contribuição

Abrir o guia de contribuição

Primeiros passos

  1. Leia a issue inteira e depois o guia de contribuição do projeto.
  2. Comente na issue dizendo que vai assumir — evita que duas pessoas façam o mesmo trabalho.
  3. Faça um fork do repositório e trabalhe em uma branch.
  4. Abra um pull request que referencie o número da issue.

Mais de prettier/plugin-php

Todas as issues de prettier/plugin-php

Issues semelhantes

Mais issues de PHP

Receba novas issues na sua caixa de entrada

Um resumo curto de issues do GitHub para quem está começando.