Splitting of long lines with closures and imported use variables
Ninguém assumiu esta issue ainda.
Avaliação
- Dificuldade
- 3/5
- Tempo estimado
- 1-2 dias
- Facilidade para iniciantes
- 45/100
Direção de pesquisa
A issue não menciona arquivos-fonte nem testes. Comece reproduzindo a entrada PHP fornecida no playground do plugin vinculado e, em seguida, localize a lógica do formatter para parâmetros de closure e variáveis use; o trabalho estará concluído quando a saída formatada mantiver as variáveis use junto com os argumentos da função no layout preferido.
Escrita pelo modelo de indexação a partir do texto da issue.
Descrição
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);
},
);
}
- Linguagem predominante
- PHP
- Estrelas
- 1.9k
- Forks
- 139
- Métricas de merge de PRs
- Nenhum PR com merge em 30d
Guia de contribuição
Primeiros passos
- Leia a issue inteira e depois o guia de contribuição do projeto.
- Comente na issue dizendo que vai assumir — evita que duas pessoas façam o mesmo trabalho.
- Faça um fork do repositório e trabalhe em uma branch.
- Abra um pull request que referencie o número da issue.
Mais de prettier/plugin-php
-
Dificuldade 1/5 Menos de uma hora Facilidade para iniciantes 62/100
prettier/plugin-php#2416 · 2 comentários · 6 reações ·
-
Dificuldade 3/5 1-2 dias Facilidade para iniciantes 64/100
prettier/plugin-php#2498 ·
-
Dificuldade 4/5 3-5 dias Facilidade para iniciantes 55/100
prettier/plugin-php#2495 ·
-
Dificuldade 3/5 1-2 dias Facilidade para iniciantes 55/100
prettier/plugin-php#2494 · 1 comentário ·
-
strange format issue Aberta
Dificuldade 3/5 1-2 dias Facilidade para iniciantes 48/100
prettier/plugin-php#2490 ·
Todas as issues de prettier/plugin-php
Issues semelhantes
-
tooling
Dificuldade 2/5 1-3 horas Facilidade para iniciantes 75/100
-
UX
Dificuldade 2/5 1-3 horas Facilidade para iniciantes 70/100
ProfessionalWiki/NeoWiki#1525 ·
-
Dificuldade 2/5 1-3 horas Facilidade para iniciantes 75/100
-
bug customer-reported
Dificuldade 2/5 1-3 horas Facilidade para iniciantes 65/100
MagnaCapax/PMSS#949 ·
-
responsive-media kses allow-list strips clipPathUnits, collapsing objectBoundingBox clip paths Aberta
Dificuldade 2/5 1-3 horas Facilidade para iniciantes 84/100
Automattic/static-site-importer#1829 ·