Visual Studio Code: modifications de fichiers d'actualisation automatique

100

Travailler avec Visual Studio Code J'ai remarqué que si un fichier avec lequel vous travaillez change, chaque fois que ce fichier est focalisé dans un panneau de code, il sera rechargé à partir du disque (si vous n'avez pas de modifications dans le fichier via VSCode) .

Cependant, si vous vous trouvez sur ce fichier, aucune alerte ne vous avertit des modifications apportées au fichier.

J'ai examiné les paramètres et je ne trouve rien de tel que l'option Visual Studio:

Détecter lorsque le fichier est modifié en dehors de l'environnement

Donc ma question: y a-t-il un paramètre caché ou un piratage pour que cet avertissement se produise.

Mettre à jour

Résolu dans la version 0.3.0 de Visual Studio Code.

  1. Le fichier sera mis à jour à partir du disque s'il n'y a pas de modifications via l'éditeur. (très utile pour lire les fichiers journaux lors de l'exécution d'un processus)
  2. S'il y a des changements des deux côtés (à partir du disque et via l'éditeur) chaque fois que vous essayez de sauvegarder le fichier en utilisant VSCode, l'éditeur vous avertira de cette situation (c'est-à-dire "écritures sales") et une comparaison de fichiers vous permettra de décider Que faire.
Juan M. Elosegui
la source
1
si vous avez des changements, pourquoi n'en voudriez-vous PAS?
John Papa
12
@JohnPapa J'essaie d'obtenir le même comportement que je trouve dans un studio visuel ou un texte sublime. Si je n'ai aucun changement via l'IDE, le fichier sur l'IDE doit être mis à jour avec la dernière version du disque dur. Si j'ai des changements via l'EDI et également en dehors de l'EDI, un avertissement devrait être affiché pour vous avertir de cette situation. Quelque chose comme "Le fichier xxx a changé sur le disque. Voulez-vous le recharger?"
Juan M. Elosegui
Voir stackoverflow.com/questions/54995008/… et github.com/microsoft/vscode-docs/blob/vnext/release-notes/… pour quelques modifications de ce comportement, y compris la possibilité d'empêcher la notification si vous le souhaitez.
Marquez le
@johnPapa facile. Disons que vous avez modifié un fichier en pensant qu'il s'agissait d'un fichier différent. Vous vous en rendez compte soudainement et vous voulez perdre vos changements. Ou plus pertinent, vous vérifiez une autre branche git. Presque tous les autres éditeurs tels que notepad ++ diront immédiatement "le fichier a changé sur le disque. Voulez-vous recharger?. Vscode ne le détectera pas, et vous pouvez faire des changements et enregistrer et finir par écraser la mauvaise branche, ce qui est terrible. Peut-être" Je crois que j'ai toujours ce problème en 2020
Gostega

Réponses:

64

VSCode n'actualisera jamais le fichier si vous avez des modifications dans ce fichier qui ne sont pas enregistrées sur le disque. Cependant, si le fichier est ouvert et n'a pas de modifications, il sera remplacé par les modifications sur le disque, c'est vrai.

Il n'existe actuellement aucun moyen de désactiver ce comportement.

Benjamin Pasero
la source
52
D'autres éditeurs l'ont tous. Certains fichiers peuvent être modifiés accidentellement par l'utilisateur, mais ce que l'utilisateur veut vraiment, c'est qu'on lui dise que ce fichier a changé sur le disque et qu'on lui demande s'il veut recharger, au moins via un volet de notification de l'éditeur.
Warren P
4
D'autres éditeurs peuvent avoir cela, mais ce comportement persiste même lors de la fermeture et de la réouverture de VSCode, ce qui est très dangereux si vous ne vous attendez pas à ce que cela se produise. Vous pourriez avoir 10 fichiers ouverts, revenir à VS2017, puis revenir à VSCode 2 jours plus tard et faire «enregistrer tout» .....
Simon_Weaver
6
@Ingemar Je voulais vraiment donner une chance à VSCode (notamment pour Angular intellisense) et peut-être basculer entre VS2017 et VSCode. Je faisais souvent un changement dans VSCode mais je ne l'enregistrais pas, puis je finirais par changer le même fichier dans VS2017. Je reviendrais à VSCode et réenregistrerais accidentellement le fichier après ma modification (même après la fermeture / la réouverture). En quelques jours à peine, mon changement a disparu au moins deux fois et une fois j'ai finalement compris pourquoi c'était à peu près la fin de VSCode pour moi. À tout le moins, VSCode devrait vous avertir lorsque vous enregistrez un fichier qui a été modifié en externe depuis son ouverture dans VSCode.
Simon_Weaver
4
Cette réponse a maintenant 3 ans, est-ce que quelqu'un a ouvert un problème à ce sujet? Pouvez-vous s'il vous plaît poster le lien ici?
Fabio dit Réintégrer Monica
19
File: Revert Filepeut être utilisé pour obtenir de nouveaux contenus à partir du disque.
Benjamin Pasero
27
{
    "files.useExperimentalFileWatcher" : true
}

dans Code -> Préférences -> Paramètres

Testé avec Visual Studio Code version 1.26.1 sur mac et win

Gagné Jun Bae
la source
3
Cela ne fonctionne pas pour moi (VSCode 1.26.1 sous Windows 10): quand un fichier est modifié en externe, si dans Code il n'y a pas de changement, il est rechargé en silence, sinon il ne fera rien et ensuite quand j'essaye d'enregistrer il me préviendra du conflit en me proposant de le résoudre en comparant les 2 versions. Tout cela se produit indépendamment de files.useExperimentalFileWatcher, car j'ai essayé à la fois vrai et faux, et je n'ai vu aucune différence.
Fabio dit Réintégrer Monica
5
Version 1.28.2 (1.28.2) Code -> Preferences -> Settingset recherchez "watcher" Cochez la case. Travaille pour moi.
Shanimal
2
Merde, ça mange le CPU comme un fou sous Linux.
abhi1010
9
@WonJunBae Qu'est-ce que cela fait? Veuillez donner une description de cette fonctionnalité que vous recommandez.
1,21 gigawatts le
5
Paramètre de configuration inconnu sur VSCode 1.41.1
Josh Correia
2

SUPER-SHIFT-p > File: Revert File C'est le seul moyen

(où SUPERest Commandsur Mac et Ctrlsur PC)

David 天宇 Wong
la source