Vscode: Format lors de l'enregistrement (plus joli) a cessé de fonctionner avec la dernière mise à jour

Créé le 10 oct. 2020  ·  67Commentaires  ·  Source: microsoft/vscode

Format lors de l'enregistrement (plus joli) a cessé de fonctionner avec la dernière mise à jour

Plusieurs fois réinstallé Prettier et vérifié les paramètres, cela s'est produit juste après la mise à jour de VSCode.

https://gyazo.com/f07a3bfd0733edeed2a8d213fc3d21ac

*question formatting

Commentaire le plus utile

La même chose m'est arrivée tout à l'heure. J'ai défini plus joli comme formateur par défaut dans les paramètres et il a recommencé à fonctionner. Mon formateur par défaut était nul.

Tous les 67 commentaires

Même problème

La même chose m'est arrivée tout à l'heure. J'ai défini plus joli comme formateur par défaut dans les paramètres et il a recommencé à fonctionner. Mon formateur par défaut était nul.

La même chose m'est arrivée tout à l'heure. J'ai défini plus joli comme formateur par défaut dans les paramètres et il a recommencé à fonctionner. Mon formateur par défaut était nul.

A travaillé pour moi, merci!

Oui, cela fonctionnait comme formateur par défaut, mais je ne devrais sûrement pas avoir à définir un formateur par défaut pour vscode. Il devrait être projet par projet.

La même chose m'est arrivée tout à l'heure. J'ai défini plus joli comme formateur par défaut dans les paramètres et il a recommencé à fonctionner. Mon formateur par défaut était nul.

Cela a fonctionné pour moi aussi mais il y a des scénarios où je veux juste plus joli pour un projet spécifique et pas globalement 😢

Idem pour moi, sélectionner prettier comme formateur par défaut pour _VSCode_ fonctionne, mais cela empêche de travailler avec d'autres langues . J'utilise aussi ruby, et j'ai le même problème avec le formateur rubocop : il a cessé de fonctionner à partir de 1.50.0.
Et je ne peux pas avoir 2 formateurs par défaut différents dans le monde pour VSCode.

La même chose m'est arrivée tout à l'heure. J'ai défini plus joli comme formateur par défaut dans les paramètres et il a recommencé à fonctionner. Mon formateur par défaut était nul.

Au cas où quelqu'un aurait des problèmes pour trouver l'option @ j-francisco expliquée ci-dessus:

Fichier -> Préférences -> Paramètres (pour Windows)
Code -> Préférences -> Paramètres (pour Mac)

Recherchez "Default Formatter". Dans la liste déroulante, plus jolie s'affichera sous la forme esbenp.prettier-vscode .

image

@AlissonRS Thx

La solution ci-dessus de @ j-francisco et @AlissonRS résout le plus joli problème mais pour moi, mais tous les autres paramètres de langue ont également été perturbés. Pour python, nous utilisons le formateur black et maintenant cela ne fonctionne pas car j'ai sélectionné plus joli comme formateur par défaut. Si je sélectionne black par défaut, alors prettier ne fonctionnera pas sur les fichiers js. On dirait que le langage de détection automatique et le formateur ne fonctionnent pas. Une idée de comment je pourrais résoudre ce problème?

Je comprends la frustration des gens qui en dépendent. J'utilise d'autres outils tels que Headwind, qui ne fonctionne plus.

Pareil ici. Est-ce un changement radical par rapport à VS Code ou est-ce plus joli qui a changé son espace de noms / nom de code?

Je l'ai corrigé et maintenant il s'est cassé à nouveau seul, cela n'a aucun effet https://github.com/microsoft/vscode/issues/108447#issuecomment -707236252 Edit Le corrigé à nouveau en recherchant directement Format sur Enregistrer et l'activer.

Alors, quel est le problème ici? Est-ce que les paramètres ( editor.defaultFormatter ) ne sont plus actifs? Ou est-ce que le paramètre de format lors de l'enregistrement (qui est désactivé par défaut) ( editor.formatOnSave ) n'est pas défini?

@jrieken ce n'est pas lié à editor.formatOnSave , le problème est que plus joli a cessé de fonctionner, même le formatage manuel (SHIFT + ALT + F) ne fonctionnait pas, et cela a fonctionné à nouveau après avoir défini editor.defaultFormatter sur plus joli. Ce qui n'est pas clair pour moi, c'est si le nouveau code VS vient de supprimer accidentellement editor.defaultFormatter (mis à jour à null), ou si editor.defaultFormatter a toujours été nul mais les versions précédentes du code VS ont pu le gérer correctement et encore faire un travail plus joli.

Ce qui n'est pas clair pour moi, c'est si le nouveau VS Code vient de supprimer accidentellement editor.defaultFormatter (mis à jour à null), ou si editor.defaultFormatter a toujours été nul, mais les versions précédentes de VS Code étaient capables de le gérer correctement et de le rendre plus joli.

Ouais, c'est la question. Hors de la boîte, editor.defaultFormatter est null . Notez également que le paramètre peut être configuré par langue - ce que l'interface utilisateur ne prend pas en charge et qui nécessite l'éditeur basé sur JSON

Alors, quel est le problème ici? Est-ce que les paramètres ( editor.defaultFormatter ) ne sont plus actifs? Ou est-ce que le paramètre de format lors de l'enregistrement (qui est désactivé par défaut) ( editor.formatOnSave ) n'est pas défini?

Dans mon cas, dans un premier temps, editor.defaultFormatte était nul, après l'avoir corrigé un jour plus tard, le ( editor.formatOnSave ) n'était plus actif.

@ivanjeremic Utilisez-vous la synchronisation des paramètres?

@ivanjeremic Utilisez-vous la synchronisation des paramètres?

Oui.

Je ne synchronise pas les paramètres et oui, mon editor.defaultFormatter était null au lieu de esbenp.prettier-vscode . Peut-être ont-ils changé leur nom de code.

Bref, ici, depuis que j'ai mis le bon formateur, ça va. 👍🏻

J'ai le même comportement que @nicolasrouanne . Si je définis plus joli comme formateur dans les paramètres utilisateur, alors seulement cela fonctionne. Si je le définis uniquement dans les paramètres de l'espace de travail de mon projet TS, cela ne fonctionne pas. Ce n'est pas idéal pour les personnes travaillant sur des langues autres que TS / JS.

@ ap00rv J'ai essayé et je ne peux pas reproduire. J'ai installé et configuré plus joli pour être le formateur par défaut pour les fichiers dactylographiés et le formatage sur la sauvegarde fonctionne pour moi.

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

Pouvez-vous (ou quelqu'un) partager des étapes reproductibles avec moi?

Salut @jrieken , pouvez-vous essayer d'utiliser les paramètres ci-dessus uniquement au niveau de l'espace de travail (le formateur par défaut dans les paramètres utilisateur doit être nul) et voir ensuite ce qui se passe?

Ouais, c'est ce que j'ai.

ok, mes excuses. Cela fonctionne pour moi maintenant après avoir défini ce qui suit dans le paramètre d'espace de travail uniquement . Désolé pour le dérangement.

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

Tous mes collègues et moi sommes sur VS Code 1.50.1 et l'extension Prettier 5.7.1 , mais certains voient le problème et d'autres pas, donc quelque chose d'autre est en jeu ici.

@dlsso pour ceux de vos collègues confrontés à des problèmes, vous voudrez peut-être vérifier si le paramètre de formateur par défaut dans l'espace de travail est remplacé ailleurs. C'est ce qui s'est passé dans mon cas. Le peluchage ESlint doit être configuré en utilisant une option différente comme indiqué ici

Bonne réflexion, mais je n'utilise aucun plug-in de linter, donc je ne pense pas que cela puisse être ça. La configuration par défaut comme AllisionRS l'a suggéré a fonctionné pour nous, donc ce n'est pas la fin du monde. Encore curieux de savoir ce qui l'a causé.

J'ai soulevé un problème similaire pour l'extension Beautify: https://github.com/microsoft/vscode/issues/108878

En suivant la méthode ici et en la définissant comme correctif par défaut pour moi sur vscode 1.50.1

Je vois également le même problème. Cependant, la définition du formateur par défaut au niveau de l'utilisateur ou de l'espace de travail ne résout pas le problème. Le format lors de l'enregistrement est toujours activé au niveau de l'utilisateur et de l'espace de travail.

J'ai eu le même problème. J'ai été périodiquement (au cours de la dernière semaine environ) à la recherche ici et là pour essayer de comprendre pourquoi plus jolie a cessé de travailler. Je viens de trouver ce problème et a pu le résoudre en suivant les suggestions de ce fil ci-dessus.

1) J'ai ouvert les paramètres et recherché "le formateur par défaut". J'ai noté que "Editor: Default Formatter" était défini sur null et que je n'avais aucune option pour plus joli dans la liste déroulante.
2) J'ai ouvert le paramètre Json en cliquant sur l'icône dans le coin supérieur droit du même écran de paramètres:
image

3) J'ai ajouté les lignes suivantes à mes paramètres json:

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

J'ai pris ces lignes de cette page: https://marketplace.visualstudio.com/items?itemName=esbenp.prettier-vscode

La même chose m'est arrivée tout à l'heure. J'ai défini plus joli comme formateur par défaut dans les paramètres et il a recommencé à fonctionner. Mon formateur par défaut était nul.

Au cas où quelqu'un aurait des problèmes pour trouver l'option @ j-francisco expliquée ci-dessus:

Fichier -> Préférences -> Paramètres (pour Windows)
Code -> Préférences -> Paramètres (pour Mac)

Recherchez "Default Formatter". Dans la liste déroulante, plus jolie s'affichera sous la forme esbenp.prettier-vscode .

image

celui-ci l'a fait pour moi!

Je pense que la seule chose qui nécessite une enquête ici est de savoir si la préférence par défaut de VSCode concernant les paramètres de l'espace de travail par rapport aux paramètres utilisateur fonctionne correctement, comme mentionné ici .

Les paramètres de l'espace de travail remplacent les paramètres utilisateur.

cc @jrieken

Je fournirai plus d'informations.
Vetur a un problème concernant le formatage automatique qui ne fonctionne pas. https://github.com/vuejs/vetur/issues/2388
Mais si vous allez dans les paramètres et activez et désactivez le format, cela fonctionnera.

Dans vetur, nous enregistrerons DocumentFormattingRequest dans LSP lors du changement de configuration.
https://github.com/vuejs/vetur/blob/master/server/src/services/vls.ts#L142
Il y a aussi un commentaire qui dit que le serveur LSP se déclenchera une fois lorsqu'il sera démarré.

Il s'avère que cela provient de la correction de https://github.com/microsoft/vscode/issues/106376. Avant ce changement, VS Code choisissait un formateur aléatoire (pendant le formatage lors de l'enregistrement) lorsqu'il disposait de plusieurs formateurs et n'avait pas de configuration par défaut. Je comprends à quel point c'est désagréable, mais je n'appellerais pas cela une régression car avant, les choses ne fonctionnaient que par hasard.

Configurer le formateur par défaut

Comme déjà suggéré, la bonne chose à faire est de configurer le formateur par défaut, le mieux par langue. L'extrait ci-dessous configure plus joli ( esbenp.prettier-vscode ) comme formateur par défaut pour javascript

"[javascript]": {
     "editor.defaultFormatter": "esbenp.prettier-vscode"
}
Pourquoi ne pas afficher la notification?

Nous affichons en fait une notification, mais uniquement lorsque la sauvegarde a été déclenchée explicitement, par exemple via les actions "Format Document / Sélection". Le format lors de l'enregistrement est différent car l'enregistrement ne doit pas toujours se produire à partir d'un geste de l'utilisateur - par exemple, on peut utiliser "enregistrer après un délai" ou "enregistrer après mise au point". Les notifications dans de tels cas sont désagréables car elles ne s'expliquent pas bien.

Changer le formateur par défaut n'a pas fonctionné pour moi, mais j'ai trouvé une solution.

Ouvrez n'importe quel fichier, cliquez avec le bouton droit de la souris et sélectionnez Formater le document. Une fenêtre contextuelle d'erreur apparaîtra probablement indiquant qu'un formateur n'a pas été défini ou que le formateur n'a pas pu être trouvé. Cliquez sur le popup puis sélectionnez plus joli comme formateur.

Après avoir fait ce qui précède, le formatage lors de l'enregistrement fonctionne maintenant dans chaque fichier pour moi.

La même chose m'est arrivée tout à l'heure. J'ai défini plus joli comme formateur par défaut dans les paramètres et il a recommencé à fonctionner. Mon formateur par défaut était nul.

Cela a fonctionné pour moi, merci beaucoup!

La même chose m'est arrivée tout à l'heure. J'ai défini plus joli comme formateur par défaut dans les paramètres et il a recommencé à fonctionner. Mon formateur par défaut était nul.

Au cas où quelqu'un aurait des problèmes pour trouver l'option @ j-francisco expliquée ci-dessus:

Fichier -> Préférences -> Paramètres (pour Windows)
Code -> Préférences -> Paramètres (pour Mac)

Recherchez "Default Formatter". Dans la liste déroulante, plus jolie s'affichera sous la forme esbenp.prettier-vscode .

image

réparer pour moi, merci!

La même chose m'est arrivée tout à l'heure. J'ai défini plus joli comme formateur par défaut dans les paramètres et il a recommencé à fonctionner. Mon formateur par défaut était nul.

même chose pour moi frère merci de toute façon pour l'idée

La solution ci-dessus de @ j-francisco et @AlissonRS résout le plus joli problème mais pour moi, mais tous les autres paramètres de langue ont également été perturbés. Pour python, nous utilisons le formateur black et maintenant cela ne fonctionne pas car j'ai sélectionné plus joli comme formateur par défaut. Si je sélectionne black par défaut, alors prettier ne fonctionnera pas sur les fichiers js. On dirait que le langage de détection automatique et le formateur ne fonctionnent pas. Une idée de comment je pourrais résoudre ce problème?

@iNishant vous ne devez définir que le formateur par défaut pour l'espace de travail, et non l'utilisateur?

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

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

pour ceux qui ont des problèmes avec le formatage après avoir configuré plus joli par défaut, vous pouvez changer la façon dont les formats plus jolis
votre code basé sur la langue. J'ai sur JS maintenant mais si je travaille dans react, je peux le changer et il n'y a pas de problème. À votre santé!

Je jouais avec le même problème. Avant d'essayer de définir plus joli comme formateur par défaut globalement, ou de jouer avec les paramètres de configuration, j'ai pensé que j'essaierais de désinstaller la plus jolie extension et de la réinstaller (le bon vieux l'éteint et le rallume). Cela a fonctionné pour moi. Je suggérerais d'essayer cela d'abord car cela pourrait réinitialiser une configuration ou quelque chose 🤷‍♂️

La même chose m'est arrivée tout à l'heure. J'ai défini plus joli comme formateur par défaut dans les paramètres et il a recommencé à fonctionner. Mon formateur par défaut était nul.

Merci beaucoup <3

La même chose m'est arrivée tout à l'heure. J'ai défini plus joli comme formateur par défaut dans les paramètres et il a recommencé à fonctionner. Mon formateur par défaut était nul.

fonctionne pour moi aussi, merci

J'ai rencontré le même problème, j'ai essayé de définir le formateur par défaut sur les paramètres sans résultat, vous devez modifier le fichier de paramètres en JSON.

Je viens d'ajouter ce que certains ont mentionné auparavant:

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

Merci à tous pour votre aide!

La même chose m'est arrivée tout à l'heure. J'ai défini plus joli comme formateur par défaut dans les paramètres et il a recommencé à fonctionner. Mon formateur par défaut était nul.

A travaillé pour moi

Formateur par défaut

Réglez-le sur null ? Cela ne fonctionne pas pour moi. D'autres solutions s'il vous plaît!

Formateur par défaut

Réglez-le sur null ? Cela ne fonctionne pas pour moi. D'autres solutions s'il vous plaît!

Salut krittiyaclark, essayez de modifier directement les paramètres en JSON

Il s'avère que cela provient de la correction # 106376. Avant ce changement, VS Code choisissait un formateur aléatoire (pendant le formatage lors de l'enregistrement) lorsqu'il disposait de plusieurs formateurs et n'avait pas de configuration par défaut. Je comprends à quel point c'est désagréable, mais je n'appellerais pas cela une régression car avant, les choses ne fonctionnaient que par hasard.

Configurer le formateur par défaut

Comme déjà suggéré, la bonne chose à faire est de configurer le formateur par défaut, le mieux par langue. L'extrait ci-dessous configure plus joli ( esbenp.prettier-vscode ) comme formateur par défaut pour javascript

"[javascript]": {
     "editor.defaultFormatter": "esbenp.prettier-vscode"
}
Pourquoi ne pas afficher la notification?

Nous affichons en fait une notification, mais uniquement lorsque la sauvegarde a été déclenchée explicitement, par exemple via les actions "Format Document / Sélection". Le format lors de l'enregistrement est différent car l'enregistrement ne doit pas toujours se produire à partir d'un geste de l'utilisateur - par exemple, on peut utiliser "enregistrer après un délai" ou "enregistrer après mise au point". Les notifications dans de tels cas sont désagréables car elles ne s'expliquent pas bien.

Cette solution fonctionne pour moi. Je vous remercie!

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

Le mer 28 octobre 2020 à 21:23 Carlos Villarroel [email protected]
a écrit:

Formateur par défaut

Définissez-le sur null? Cela ne fonctionne pas pour moi. D'autres solutions s'il vous plaît!

Salut krittiyaclark, essayez de modifier directement les paramètres en JSON

-
Vous recevez ceci parce que vous avez commenté.
Répondez directement à cet e-mail, affichez-le sur GitHub
https://github.com/microsoft/vscode/issues/108447#issuecomment-718028524 ,
ou se désinscrire
https://github.com/notifications/unsubscribe-auth/ALRSB3I7TAV33P2JBZDLNK3SNA475ANCNFSM4SLAZZCQ
.

-
Cordialement,
Swati Shreya

J'ai essayé tous les paramètres ci-dessus dans l'utilisateur et l'espace de travail et je n'ai toujours pas mis en forme lors de l'enregistrement. Vous devez sélectionner manuellement le plus joli à formater.

Essayez de rechercher dans les paramètres "format lors de l'enregistrement". Il y a une case à cocher pour cela.
S'il n'est pas coché, il ne sera pas formaté lors de l'enregistrement.

Le mer 28 octobre 2020 à 13:16 Gopinath Prasanna [email protected]
a écrit:

J'ai essayé tous les paramètres ci-dessus dans l'utilisateur et l'espace de travail et toujours pas
formatage lors de l'enregistrement. Vous devez sélectionner manuellement le plus joli à formater.

-
Vous recevez ceci parce que vous avez commenté.
Répondez directement à cet e-mail, affichez-le sur GitHub
https://github.com/microsoft/vscode/issues/108447#issuecomment-718152465 ,
ou se désinscrire
https://github.com/notifications/unsubscribe-auth/ANYV5RK6Z3SVWNXBBUI7DWLSNBUZZANCNFSM4SLAZZCQ
.

J'ai passé un certain temps à creuser, et pour moi, le problème est que j'ai le editor.formatOnSaveMode réglé sur modifications (nouvelle fonctionnalité récemment publiée), j'ai fini par devoir réinitialiser à file encore.

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

J'ai passé un certain temps à creuser, et pour moi, le problème est que j'ai le editor.formatOnSaveMode réglé sur modifications (nouvelle fonctionnalité récemment publiée), j'ai fini par devoir réinitialiser à file encore.

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

Je pense que c'est la meilleure réponse

J'ai passé un certain temps à creuser, et pour moi, le problème est que j'ai le editor.formatOnSaveMode réglé sur modifications (nouvelle fonctionnalité récemment publiée), j'ai fini par devoir réinitialiser à file encore.

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

Cela a fonctionné pour moi. Merci beaucoup! 🎉

Salut! Assurez-vous que votre code ne contient aucune erreur de syntaxe!

La même chose m'est arrivée tout à l'heure. J'ai défini plus joli comme formateur par défaut dans les paramètres et il a recommencé à fonctionner. Mon formateur par défaut était nul.

Cela a fonctionné! Merci beaucoup!

Comment régler ceci?

cette extension prend-elle en charge le mode modifications ?

La même chose m'est arrivée tout à l'heure. J'ai défini plus joli comme formateur par défaut dans les paramètres et il a recommencé à fonctionner. Mon formateur par défaut était nul.

Au cas où quelqu'un aurait des problèmes pour trouver l'option @ j-francisco expliquée ci-dessus:

Fichier -> Préférences -> Paramètres (pour Windows)
Code -> Préférences -> Paramètres (pour Mac)

Recherchez "Default Formatter". Dans la liste déroulante, plus jolie s'affichera sous la forme esbenp.prettier-vscode .

image

Un sauveur de vie !!!

Clôture en tant que question - à laquelle la communauté a répondu rapidement et correctement 👏 L'essentiel est qu'un formateur par défaut doit être sélectionné lorsque plusieurs formateurs sont disponibles.

La même chose m'est arrivée tout à l'heure. J'ai défini plus joli comme formateur par défaut dans les paramètres et il a recommencé à fonctionner. Mon formateur par défaut était nul.

Impressionnant! A travaillé pour moi!

La même chose m'est arrivée tout à l'heure. J'ai défini plus joli comme formateur par défaut dans les paramètres et il a recommencé à fonctionner. Mon formateur par défaut était nul.

Merci, travaillé pour moi!

La même chose m'est arrivée tout à l'heure. J'ai défini plus joli comme formateur par défaut dans les paramètres et il a recommencé à fonctionner. Mon formateur par défaut était nul.

Je vous remercie!! Quand plus jolie a recommencé à travailler, j'ai eu l'impression de pouvoir respirer à nouveau 😂

Merci pour le réglage, a travaillé pour moi.

La même chose m'est arrivée tout à l'heure. J'ai défini plus joli comme formateur par défaut dans les paramètres et il a recommencé à fonctionner. Mon formateur par défaut était nul.

@ j-francisco Entré dans l'embrayage, merci

La même chose m'est arrivée tout à l'heure. J'ai défini plus joli comme formateur par défaut dans les paramètres et il a recommencé à fonctionner. Mon formateur par défaut était nul.

travaillé comme un gant, merci

Mettez ces champs dans settings.json

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

Cette page vous a été utile?
0 / 5 - 0 notes