prettier / prettier/plugin-php

Heredoc containing \n cannot be parsed for indenting

オープン
#2,015 コメント 2 件 リアクション 0 件 担当者 0 名 GitHub で見る

まだ誰も着手していません。

bug
主要言語
PHP
スター
1.9k
フォーク
139
PR マージ指標
30日以内にマージされた PR はありません

説明

Playground link

Input:

<?php
function foo() {
    $message .= <<<EOT
    Please read this message.\n  We apologize for the inconvenience.
    EOT;
}

Output:

Invalid body indentation level (expecting an indentation at least 4) on line 5

  3 |     $message .= <<<EOT
  4 |     Please read this message.\n  We apologize for the inconvenience.
> 5 |     EOT;
    |    ^
  6 | }
  7 |

Expected:

<?php
function foo() {
    $message .= <<<EOT
    Please read this message.\n  We apologize for the inconvenience.
    EOT;
}

Basically, the \n in the middle of the heredoc appears to confuse either the parser or prettier.

コントリビューションガイド

コントリビューションガイドを開く

はじめの一歩

  1. issue を最後まで読み、次にプロジェクトのコントリビューションガイドを読みます。
  2. 着手することを issue にコメントします — 二人が同じ作業をするのを防げます。
  3. リポジトリをフォークし、ブランチを切って変更します。
  4. issue 番号を参照したプルリクエストを送ります。

調査の方向性

リンクされている Prettier PHP Playground から始め、リテラル \n を含む heredoc のケースを再現してください。パースまたはインデント検証がその内容を誤って扱っていないかを追跡し、その後、その例の回帰テストを追加してください。完了条件は、入力がインデントエラーなしで正常にフォーマットされ、期待される heredoc 出力が保持されることです。

索引モデルが issue の本文から書いたものです。

評価

技術スタック
php
領域
tooling
issue の種類
バグ
難易度
3/5
見積もり時間
1〜2日
活発さ
停滞
明瞭さ
おおむね明確
初心者へのやさしさ
42/100

新しい issue をメールで受け取る

初心者向けの GitHub issue を短くまとめたダイジェスト。