Splitting of long lines with closures and imported use variables
Dieses Issue hat noch niemand übernommen.
Bewertung
- Schwierigkeit
- 3/5
- Geschätzter Aufwand
- 1-2 Tage
- Anfängerfreundlichkeit
- 45/100
Rechercherichtung
Das Issue nennt keine Quelldateien oder Tests. Beginne damit, die bereitgestellte PHP-Eingabe im verknüpften Plugin-Playground zu reproduzieren, und finde dann die Formatter-Logik für Closure-Parameter und use-Variablen; abgeschlossen ist die Aufgabe, wenn die formatierte Ausgabe die use-Variablen im bevorzugten Layout bei den Funktionsargumenten belässt.
Vom Indexierungsmodell aus dem Issue-Text verfasst.
Beschreibung
The way closure imports ("use" variables) are split when a line is too long is not ideal. I'm wondering if there is a way the priority can be changed so that it prefers to keep use variables together with the function arguments?
@prettier/plugin-php v0.16.1
Playground link
Input:
<?php
function test()
{
expectNotification(VerifyEmail::class)->toBeSentTo(
$user,
function ($notification, $channels, $notifiable) use ($user, &$actionUrl) {
$actionUrl = $notification->toMail($user)->actionUrl;
return $channels === ['mail'] && $notifiable->is($user);
},
);
}
Output:
<?php
function test()
{
expectNotification(VerifyEmail::class)->toBeSentTo($user, function ($notification, $channels, $notifiable) use (
$user,
&$actionUrl
) {
$actionUrl = $notification->toMail($user)->actionUrl;
return $channels === ['mail'] && $notifiable->is($user);
});
}
Of course Javascript doesn't have an equivalent of "use" imports, but I tried to approximate it below, and Prettier does what I would expect/prefer.
Prettier 2.2.1
Playground link
--parser babel
--print-width 120
--single-quote
--tab-width 4
--trailing-comma all
Input:
function test()
{
expectNotification(VerifyEmail.name).toBeSentTo(
$user,
function ($notification, $channels, $notifiable, use, $user, A$actionUrl) {
$actionUrl = $notification.toMail($user).actionUrl;
return $channels === ['mail'] && $notifiable.is($user);
},
);
}
Output:
function test() {
expectNotification(VerifyEmail.name).toBeSentTo(
$user,
function ($notification, $channels, $notifiable, use, $user, A$actionUrl) {
$actionUrl = $notification.toMail($user).actionUrl;
return $channels === ['mail'] && $notifiable.is($user);
},
);
}
- Vorherrschende Sprache
- PHP
- Sterne
- 1.9k
- Forks
- 139
- PR-Merge-Kennzahlen
- Keine gemergten PRs in 30 T.
Beitragsleitfaden
Erste Schritte
- Lesen Sie das ganze Issue und danach den Beitragsleitfaden des Projekts.
- Schreiben Sie ins Issue, dass Sie es übernehmen — das erspart doppelte Arbeit.
- Forken Sie das Repository und arbeiten Sie in einem Branch.
- Öffnen Sie einen Pull Request, der die Issue-Nummer nennt.
Mehr aus prettier/plugin-php
-
Schwierigkeit 1/5 Unter einer Stunde Anfängerfreundlichkeit 62/100
prettier/plugin-php#2416 · 2 Kommentare · 6 Reaktionen ·
-
Schwierigkeit 3/5 1-2 Tage Anfängerfreundlichkeit 64/100
prettier/plugin-php#2498 ·
-
Schwierigkeit 4/5 3-5 Tage Anfängerfreundlichkeit 55/100
prettier/plugin-php#2495 ·
-
Schwierigkeit 3/5 1-2 Tage Anfängerfreundlichkeit 55/100
prettier/plugin-php#2494 · 1 Kommentar ·
-
strange format issue Offen
Schwierigkeit 3/5 1-2 Tage Anfängerfreundlichkeit 48/100
prettier/plugin-php#2490 ·
Alle Issues in prettier/plugin-php
Ähnliche Issues
-
tooling
Schwierigkeit 2/5 1-3 Stunden Anfängerfreundlichkeit 75/100
-
UX
Schwierigkeit 2/5 1-3 Stunden Anfängerfreundlichkeit 70/100
ProfessionalWiki/NeoWiki#1525 ·
-
Schwierigkeit 2/5 1-3 Stunden Anfängerfreundlichkeit 75/100
-
Schwierigkeit 1/5 Unter einer Stunde Anfängerfreundlichkeit 90/100
OpenConext/OpenConext-engineblock#2122 ·
-
Bug
Schwierigkeit 2/5 1-3 Stunden Anfängerfreundlichkeit 70/100
Automattic/safe-publish#594 ·