prettier / prettier/plugin-php

chained method wrapping inconsistent when comments inside arguments

Offen
#2,171 0 Kommentare 0 Reaktionen 0 zugewiesene Personen Auf GitHub ansehen

Dieses Issue hat noch niemand übernommen.

Vorherrschende Sprache
PHP
Sterne
1.9k
Forks
139
PR-Merge-Kennzahlen
Keine gemergten PRs in 30 T.

Beschreibung

When a comment is added inside the argument of secondMethod below, it changes the way that the chained methods are wrapped in a way that doesn't seem intuitive for it to affect.

@prettier/plugin-php v0.19.3
Playground link

Input:

<?php

        $builder->firstMethod()->secondMethod([
            new ClassName('c-' . $some_long_variable, [
                EXTEND::THIS, LINE::SO, IT::HASNEWLINES
            ]),
           new ClassName('c-' . $some_long_variable, [
                EXTEND::THIS, LINE::SO, IT::HASNEWLINES
            ]),
        ]);

Output:

<?php

$builder
    ->firstMethod()
    ->secondMethod([
        new ClassName("c-" . $some_long_variable, [
            EXTEND::THIS,
            LINE::SO,
            IT::HASNEWLINES,
        ]),
        new ClassName("c-" . $some_long_variable, [
            EXTEND::THIS,
            LINE::SO,
            IT::HASNEWLINES,
        ]),
    ]);

@prettier/plugin-php v0.19.3
Playground link

Input:

<?php

        $builder->firstMethod()->secondMethod([
            new ClassName('c-' . $some_long_variable, [
                EXTEND::THIS, LINE::SO, IT::HASNEWLINES
            ]),
           //  comment 
           new ClassName('c-' . $some_long_variable, [
                EXTEND::THIS, LINE::SO, IT::HASNEWLINES
            ]),
        ]);

Output:

<?php

$builder->firstMethod()->secondMethod([
    new ClassName("c-" . $some_long_variable, [
        EXTEND::THIS,
        LINE::SO,
        IT::HASNEWLINES,
    ]),
    //  comment
    new ClassName("c-" . $some_long_variable, [
        EXTEND::THIS,
        LINE::SO,
        IT::HASNEWLINES,
    ]),
]);

Beitragsleitfaden

Beitragsleitfaden öffnen

Erste Schritte

  1. Lies das ganze Issue und danach den Beitragsleitfaden des Projekts.
  2. Schreib ins Issue, dass du es übernimmst — das erspart doppelte Arbeit.
  3. Forke das Repository und arbeite in einem Branch.
  4. Öffne einen Pull Request, der die Issue-Nummer nennt.

Rechercherichtung

Reproduziere die beiden Fälle aus dem verlinkten Playground und vergleiche das Wrapping von Methodenverkettungen mit und ohne den Kommentar innerhalb des Arguments von secondMethod. Verfolge, wie der Formatter Kommentare und verkettete Aufrufe behandelt, und füge dann eine Regression-Fixture mit der bereitgestellten Eingabe und den Ausgaben hinzu. Als erledigt gilt die Aufgabe, wenn der Kommentar das Wrapping nicht mehr unerwartet verändert und die Fixture erfolgreich durchläuft.

Vom Indexierungsmodell aus dem Issue-Text verfasst.

Bewertung

Tech-Stack
php
Bereich
tooling
Issue-Typ
Bug
Schwierigkeit
3/5
Geschätzter Aufwand
1-2 Tage
Aktivitätsstatus
Veraltet
Klarheit
Größtenteils klar
Anfängerfreundlichkeit
45/100

Neue Issues direkt in Ihr Postfach

Eine kurze Übersicht über anfängerfreundliche GitHub-Issues.