Vscode: O formato ao salvar (mais bonito) parou de funcionar com a atualização mais recente

Criado em 10 out. 2020  ·  67Comentários  ·  Fonte: microsoft/vscode

O formato ao salvar (mais bonito) parou de funcionar com a atualização mais recente

Várias vezes reinstalado Prettier, e verificado as configurações, isso aconteceu logo após a atualização do VSCode.

https://gyazo.com/f07a3bfd0733edeed2a8d213fc3d21ac

*question formatting

Comentários muito úteis

A mesma coisa aconteceu comigo agora. Eu defini mais bonito como o Formatador Padrão em Configurações e ele começou a funcionar novamente. Meu formatador padrão era nulo.

Todos 67 comentários

Mesmo problema

A mesma coisa aconteceu comigo agora. Eu defini mais bonito como o Formatador Padrão em Configurações e ele começou a funcionar novamente. Meu formatador padrão era nulo.

A mesma coisa aconteceu comigo agora. Eu defini mais bonito como o Formatador Padrão em Configurações e ele começou a funcionar novamente. Meu formatador padrão era nulo.

Funcionou pra mim, obrigado!

Sim, funcionou como formatador padrão, mas certamente não deveria ter que definir o formatador padrão para vscode. Deve ser feito projeto por projeto.

A mesma coisa aconteceu comigo agora. Eu defini mais bonito como o Formatador Padrão em Configurações e ele começou a funcionar novamente. Meu formatador padrão era nulo.

Isso funcionou para mim também, mas há alguns cenários em que eu só quero mais bonita para um projeto específico e não globalmente 😢

O mesmo para mim, selecionar prettier como formatador padrão para _VSCode_ funciona, mas isso impede de trabalhar com outros idiomas . Também estou usando ruby ​​e tenho o mesmo problema com o formatador rubocop : ele parou de funcionar a partir de 1.50.0.
E não posso ter 2 formatadores padrão diferentes globalmente para VSCode.

A mesma coisa aconteceu comigo agora. Eu defini mais bonito como o Formatador Padrão em Configurações e ele começou a funcionar novamente. Meu formatador padrão era nulo.

Caso alguém esteja tendo problemas para encontrar a opção @ j-francisco explicada acima:

Arquivo -> Preferências -> Configurações (para Windows)
Código -> Preferências -> Configurações (para Mac)

Pesquise por "Formatador padrão". No menu suspenso, mais bonito aparecerá como esbenp.prettier-vscode .

image

@AlissonRS Thx

A solução acima de @ j-francisco e @AlissonRS corrige o problema mais bonito, mas para mim, todas as outras configurações de idioma também foram alteradas. Para python, usamos black formatador e agora isso não está funcionando porque selecionei mais bonito como o formatador padrão. Se eu selecionar black como padrão, prettier não funcionará em arquivos js. Parece que a detecção automática de idioma e o formatador não estão funcionando. Alguma ideia de como eu poderia consertar isso?

Eu entendo a frustração das pessoas que dependem disso. Eu uso outras ferramentas, como Headwind, que agora não funciona.

O mesmo aqui. É uma alteração importante do VS Code ou é mais bonito que mudou seu namespace / nome de código?

Eu consertei e agora ele quebrou novamente sozinho, isso não tem efeito https://github.com/microsoft/vscode/issues/108447#issuecomment -707236252 Editar Corrigido novamente pesquisando diretamente Formato em Salvar e ativá-lo.

Então, qual é o problema aqui? É que as configurações ( editor.defaultFormatter ) não estão mais vivas? Ou será que a configuração do formato ao salvar (que está desativada por padrão) ( editor.formatOnSave ) não foi definida?

@jrieken não está relacionado a editor.formatOnSave , o problema é mais bonito parou de funcionar, mesmo a formatação manual (SHIFT + ALT + F) não estava funcionando, e funcionou novamente após definir editor.defaultFormatter para mais bonito. O que não está claro para mim é se o novo código VS removeu acidentalmente editor.defaultFormatter (atualizou para nulo), ou se editor.defaultFormatter sempre foi nulo, mas as versões anteriores do código VS foram capazes de lidar com isso corretamente e ainda tornar o trabalho mais bonito.

O que não está claro para mim é se o novo VS Code removeu acidentalmente editor.defaultFormatter (atualizou-o para nulo) ou se editor.defaultFormatter sempre foi nulo, mas as versões anteriores do VS Code foram capazes de lidar com isso corretamente e ainda tornar o trabalho mais bonito.

Sim, essa é a questão. Fora da caixa, editor.defaultFormatter é null . Além disso, observe que a configuração pode ser definida por idioma - algo que a IU não suporta e que precisa do editor baseado em JSON

Então, qual é o problema aqui? É que as configurações ( editor.defaultFormatter ) não estão mais vivas? Ou será que a configuração do formato ao salvar (que está desativada por padrão) ( editor.formatOnSave ) não foi definida?

Ambos no meu caso, primeiro o editor.defaultFormatte era nulo, depois que o consertei um dia depois o ( editor.formatOnSave ) não estava mais ativo.

@ivanjeremic Você usa sincronização de configurações?

@ivanjeremic Você usa sincronização de configurações?

Sim eu quero.

Eu não sincronizo nenhuma configuração e sim meu editor.defaultFormatter era null vez de esbenp.prettier-vscode . Talvez eles tenham mudado seu codinome.

Enfim, aqui, desde que configurei o formatador certo, estou bem. 👍🏻

Estou tendo o mesmo comportamento de @nicolasrouanne . Se eu definir mais bonito como formatador nas configurações do usuário, só funcionará. Se eu definir apenas nas configurações do espaço de trabalho para meu projeto de TS, ele não funcionará. Isso não é ideal para pessoas que trabalham em idiomas diferentes de TS / JS.

@ ap00rv Eu tentei isso e não consigo reproduzir. Eu instalei mais bonito e configurei para ser o formatador padrão para arquivos typescript e o formato ao salvar funciona para mim.

{
    "editor.formatOnSave": true,
    "[typescript]": {
        "editor.defaultFormatter": "esbenp.prettier-vscode"
    }
}

Você (ou alguém) pode compartilhar etapas reproduzíveis comigo?

Olá @jrieken , você pode tentar usar as configurações acima apenas no nível do espaço de trabalho (o formatador padrão na configuração do usuário deve ser nulo) e ver o que acontece?

Sim, é isso que eu tenho.

ok, minhas desculpas. Ele está trabalhando para mim agora depois de definir o seguinte na área de trabalho configuração única. Desculpe o incómodo.

"editor.codeActionsOnSave": {
      // For ESLint
      "source.fixAll.eslint": true
    },
    "[typescript]": {
      "editor.defaultFormatter": "esbenp.prettier-vscode"
    },

Todos os meus colegas de trabalho e eu estamos no código VS 1.50.1 e na extensão mais bonita 5.7.1 , mas alguns estão vendo o problema e outros não, então algo mais está em jogo aqui.

@dlsso para aqueles de seus colegas que estão enfrentando problemas, você pode querer verificar se a configuração do formatador padrão no espaço de trabalho está sendo substituída em outro lugar. Foi o que aconteceu no meu caso. O linting ESlint deve ser configurado usando uma opção diferente, conforme fornecido aqui

Boa ideia, mas não estou usando nenhum plug-in do linter, então não acho que seja isso. Definir o padrão como o AllisionRS sugeriu funcionou para nós, então não é o fim do mundo. Ainda curioso para saber o que causou isso.

Eu levantei um problema semelhante para a extensão de embelezamento: https://github.com/microsoft/vscode/issues/108878

Seguindo o método aqui e definindo-o como correção padrão para mim no vscode 1.50.1

Também estou vendo o mesmo problema. No entanto, definir o formatador padrão no nível do usuário ou da área de trabalho não resolve o problema. A formatação ao salvar ainda está ativada no nível do usuário e da área de trabalho.

Eu tive o mesmo problema. Tenho estado periodicamente (ao longo da última semana ou assim) olhando aqui e ali para tentar descobrir por que mais bonita parou de funcionar. Só hoje descobri esse problema e fui capaz de resolver seguindo as sugestões neste tópico acima.

1) Abri as configurações e pesquisei "formatador padrão". Observei que "Editor: Formatador Padrão" foi definido como nulo e que não tive a opção de mais bonito no menu suspenso.
2) Abri a configuração Json clicando no ícone no canto superior direito da mesma tela de configurações:
image

3) Eu adicionei as seguintes linhas às minhas configurações json:

    "editor.defaultFormatter": "esbenp.prettier-vscode",
    "[javascript]": {
        "editor.defaultFormatter": "esbenp.prettier-vscode"
    },

Peguei essas linhas desta página: https://marketplace.visualstudio.com/items?itemName=esbenp.prettier-vscode

A mesma coisa aconteceu comigo agora. Eu defini mais bonito como o Formatador Padrão em Configurações e ele começou a funcionar novamente. Meu formatador padrão era nulo.

Caso alguém esteja tendo problemas para encontrar a opção @ j-francisco explicada acima:

Arquivo -> Preferências -> Configurações (para Windows)
Código -> Preferências -> Configurações (para Mac)

Pesquise por "Formatador padrão". No menu suspenso, mais bonito aparecerá como esbenp.prettier-vscode .

image

este fez isso para mim!

Acho que a única coisa que precisa de investigação aqui é se a preferência padrão do VSCode de configurações de espaço de trabalho sobre as configurações de usuário está funcionando corretamente, conforme mencionado aqui .

As configurações do espaço de trabalho substituem as configurações do usuário.

cc @jrieken

Vou fornecer mais informações.
Vetur teve um problema sobre a formatação automática não funcionar. https://github.com/vuejs/vetur/issues/2388
Mas se você for para as configurações e desligar e ligar o formato, ele funcionará.

No vetur, iremos registrar DocumentFormattingRequest no LSP quando a configuração for alterada.
https://github.com/vuejs/vetur/blob/master/server/src/services/vls.ts#L142
Há também um comentário que diz que o servidor LSP será acionado uma vez quando for iniciado.

Acontece que isso é devido à correção de https://github.com/microsoft/vscode/issues/106376. Antes dessa mudança, o VS Code escolheria um formatador aleatório (durante a formatação ao salvar) quando tivesse vários formatadores e não tivesse um padrão configurado. Eu entendo como isso é desagradável, mas eu não chamaria isso de regressão, como antes as coisas estavam funcionando apenas por acaso.

Configurar formatador padrão

Como já sugerido, o correto a fazer é configurar o formatador padrão, melhor por idioma. O snippet abaixo configura mais bonito ( esbenp.prettier-vscode ) como o formatador padrão para javascript

"[javascript]": {
     "editor.defaultFormatter": "esbenp.prettier-vscode"
}
Por que não mostrar notificação?

Na verdade, mostramos uma notificação, mas apenas quando o salvamento foi acionado explicitamente, por exemplo, por meio das ações "Formatar Documento / Seleção". O formato ao salvar é diferente, pois o salvamento nem sempre deve acontecer a partir de um gesto do usuário - por exemplo, pode-se usar "salvar após atraso" ou "salvar ao sair do foco". As notificações em tais casos são desagradáveis ​​porque não se explicam bem.

Alterar o formatador padrão não funcionou para mim, mas encontrei uma solução.

Abra qualquer arquivo, clique com o botão direito e selecione Formatar documento. Provavelmente, um pop-up de erro aparecerá dizendo que um formatador não foi definido ou que o formatador não foi encontrado. Clique no pop-up e selecione mais bonito como formatador.

Depois de fazer o acima, a formatação ao salvar agora funciona em todos os arquivos para mim.

A mesma coisa aconteceu comigo agora. Eu defini mais bonito como o Formatador Padrão em Configurações e ele começou a funcionar novamente. Meu formatador padrão era nulo.

Isso funcionou para mim, muito obrigado!

A mesma coisa aconteceu comigo agora. Eu defini mais bonito como o Formatador Padrão em Configurações e ele começou a funcionar novamente. Meu formatador padrão era nulo.

Caso alguém esteja tendo problemas para encontrar a opção @ j-francisco explicada acima:

Arquivo -> Preferências -> Configurações (para Windows)
Código -> Preferências -> Configurações (para Mac)

Pesquise por "Formatador padrão". No menu suspenso, mais bonito aparecerá como esbenp.prettier-vscode .

image

consertar para mim, obrigado!

A mesma coisa aconteceu comigo agora. Eu defini mais bonito como o Formatador Padrão em Configurações e ele começou a funcionar novamente. Meu formatador padrão era nulo.

a mesma coisa para mim irmão, obrigado de qualquer maneira pela ideia

A solução acima de @ j-francisco e @AlissonRS corrige o problema mais bonito, mas para mim, todas as outras configurações de idioma também foram alteradas. Para python, usamos black formatador e agora isso não está funcionando porque selecionei mais bonito como o formatador padrão. Se eu selecionar black como padrão, prettier não funcionará em arquivos js. Parece que a detecção automática de idioma e o formatador não estão funcionando. Alguma ideia de como eu poderia consertar isso?

@iNishant você só deve definir o formatador padrão para o espaço de trabalho, e não o usuário?

Screen Shot 2020-10-24 at 10 40 26 AM

Screen Shot 2020-10-24 at 10 43 37 AM

para aqueles que estão tendo problemas com a formatação após configurar os mais bonitos como padrão, você pode alterar a forma como os formatos mais bonitos
sua base de código na linguagem. Eu tenho no JS agora, mas se eu estiver trabalhando no react, posso trocá-lo e não há problema. Felicidades!

Eu estava brincando com o mesmo problema. Antes de tentar definir mais bonito como o formatador padrão globalmente, ou brincar com a configuração de coisas, pensei em tentar desinstalar a extensão mais bonita e reinstalá-la (o bom e velho desligue-a e ligue-a novamente). Isso funcionou para mim. Eu sugeriria tentar isso primeiro, pois pode redefinir algumas configurações ou algo assim

A mesma coisa aconteceu comigo agora. Eu defini mais bonito como o Formatador Padrão em Configurações e ele começou a funcionar novamente. Meu formatador padrão era nulo.

Muito obrigado <3

A mesma coisa aconteceu comigo agora. Eu defini mais bonito como o Formatador Padrão em Configurações e ele começou a funcionar novamente. Meu formatador padrão era nulo.

funciona para mim também obrigado

Eu enfrentei o mesmo problema, tentei definir o formatador padrão nas configurações sem resultado, você tem que editar o arquivo de configurações como JSON.

Acabei de adicionar o que alguns mencionaram antes:

"[typescript]": { "editor.defaultFormatter": "esbenp.prettier-vscode" },

Obrigado a todos pela ajuda!

A mesma coisa aconteceu comigo agora. Eu defini mais bonito como o Formatador Padrão em Configurações e ele começou a funcionar novamente. Meu formatador padrão era nulo.

Funcionou para mim

Formatador Padrão

Definir como null ? Isto não funciona para mim. Outras soluções, por favor!

Formatador Padrão

Definir como null ? Isto não funciona para mim. Outras soluções, por favor!

Olá krittiyaclark, tente editar diretamente as configurações como JSON

Acontece que isso é da correção # 106376. Antes dessa mudança, o VS Code escolheria um formatador aleatório (durante a formatação ao salvar) quando tivesse vários formatadores e não tivesse um padrão configurado. Eu entendo como isso é desagradável, mas eu não chamaria isso de regressão, como antes as coisas estavam funcionando apenas por acaso.

Configurar formatador padrão

Como já sugerido, o correto a fazer é configurar o formatador padrão, melhor por idioma. O snippet abaixo configura mais bonito ( esbenp.prettier-vscode ) como o formatador padrão para javascript

"[javascript]": {
     "editor.defaultFormatter": "esbenp.prettier-vscode"
}
Por que não mostrar notificação?

Na verdade, mostramos uma notificação, mas apenas quando o salvamento foi acionado explicitamente, por exemplo, por meio das ações "Formatar Documento / Seleção". O formato ao salvar é diferente, pois o salvamento nem sempre deve acontecer a partir de um gesto do usuário - por exemplo, pode-se usar "salvar após atraso" ou "salvar ao sair do foco". As notificações em tais casos são desagradáveis ​​porque não se explicam bem.

Esta solução está funcionando para mim. Obrigado!

https://github.com/microsoft/vscode/issues/108447#issuecomment -707236252

Na quarta-feira, 28 de outubro de 2020 às 21h23 Carlos Villarroel [email protected]
escrevi:

Formatador Padrão

Definir como nulo? Isto não funciona para mim. Outras soluções, por favor!

Olá krittiyaclark, tente editar diretamente as configurações como JSON

-
Você está recebendo isso porque comentou.
Responda a este e-mail diretamente, visualize-o no GitHub
https://github.com/microsoft/vscode/issues/108447#issuecomment-718028524 ,
ou cancelar
https://github.com/notifications/unsubscribe-auth/ALRSB3I7TAV33P2JBZDLNK3SNA475ANCNFSM4SLAZZCQ
.

-
Saudações,
Swati Shreya

Tentei todas as configurações acima no usuário e na área de trabalho e ainda não formatei ao salvar. Tem que selecionar manualmente mais bonito para formatar.

Tente pesquisar nas configurações "formato ao salvar". Existe uma caixa de seleção para isso.
Se não estiver marcada, não formatará ao salvar.

Na quarta-feira, 28 de outubro de 2020 às 13:16 Gopinath Prasanna [email protected]
escrevi:

Tentei todas as configurações acima no usuário e na área de trabalho e ainda não
formatação ao salvar. Tem que selecionar manualmente mais bonito para formatar.

-
Você está recebendo isso porque comentou.
Responda a este e-mail diretamente, visualize-o no GitHub
https://github.com/microsoft/vscode/issues/108447#issuecomment-718152465 ,
ou cancelar
https://github.com/notifications/unsubscribe-auth/ANYV5RK6Z3SVWNXBBUI7DWLSNBUZZANCNFSM4SLAZZCQ
.

Gastei um bom tempo para pesquisar, e para mim o problema é que eu tenho editor.formatOnSaveMode definido como modifications (novo recurso lançado recentemente), acabei tendo que redefinir para file novamente.

  "editor.formatOnSave": true,
  "editor.formatOnSaveMode": "file"

Gastei um bom tempo para pesquisar, e para mim o problema é que eu tenho editor.formatOnSaveMode definido como modifications (novo recurso lançado recentemente), acabei tendo que redefinir para file novamente.

  "editor.formatOnSave": true,
  "editor.formatOnSaveMode": "file"

Eu acho que esta é a melhor resposta

Gastei um bom tempo para pesquisar, e para mim o problema é que eu tenho editor.formatOnSaveMode definido como modifications (novo recurso lançado recentemente), acabei tendo que redefinir para file novamente.

  "editor.formatOnSave": true,
  "editor.formatOnSaveMode": "file"

Isso funcionou para mim. Muito obrigado! 🎉

Oi! Certifique-se de que seu código não contém erros de sintaxe!

A mesma coisa aconteceu comigo agora. Eu defini mais bonito como o Formatador Padrão em Configurações e ele começou a funcionar novamente. Meu formatador padrão era nulo.

Isso funcionou! Muito obrigado!

Como consertar isto?

esta extensão suporta o modo modifications ?

A mesma coisa aconteceu comigo agora. Eu defini mais bonito como o Formatador Padrão em Configurações e ele começou a funcionar novamente. Meu formatador padrão era nulo.

Caso alguém esteja tendo problemas para encontrar a opção @ j-francisco explicada acima:

Arquivo -> Preferências -> Configurações (para Windows)
Código -> Preferências -> Configurações (para Mac)

Pesquise por "Formatador padrão". No menu suspenso, mais bonito aparecerá como esbenp.prettier-vscode .

image

Um salva-vidas !!!

Fechando como uma pergunta - que a comunidade respondeu rápida e corretamente 👏 O resultado final é que um formatador padrão deve ser selecionado quando houver vários formatadores disponíveis.

A mesma coisa aconteceu comigo agora. Eu defini mais bonito como o Formatador Padrão em Configurações e ele começou a funcionar novamente. Meu formatador padrão era nulo.

Impressionante! Funcionou para mim!

A mesma coisa aconteceu comigo agora. Eu defini mais bonito como o Formatador Padrão em Configurações e ele começou a funcionar novamente. Meu formatador padrão era nulo.

Obrigado, funcionou para mim!

A mesma coisa aconteceu comigo agora. Eu defini mais bonito como o Formatador Padrão em Configurações e ele começou a funcionar novamente. Meu formatador padrão era nulo.

Obrigado!! Quando mais bonita voltou a funcionar, senti que podia respirar de novo 😂

Obrigado pelo cenário, funcionou para mim.

A mesma coisa aconteceu comigo agora. Eu defini mais bonito como o Formatador Padrão em Configurações e ele começou a funcionar novamente. Meu formatador padrão era nulo.

@ j-francisco Veio na embreagem, obrigado

A mesma coisa aconteceu comigo agora. Eu defini mais bonito como o Formatador Padrão em Configurações e ele começou a funcionar novamente. Meu formatador padrão era nulo.

funcionou como uma luva, obrigado

Coloque esses campos em settings.json

"editor.defaultFormatter": "esbenp.prettier-vscode","[javascript]": {"editor.defaultFormatter": "esbenp.prettier-vscode"}

Esta página foi útil?
0 / 5 - 0 avaliações