Wie formatiere ich alle Dateien in einem Visual Studio Code-Projekt?

84

Gibt es eine Möglichkeit, alle Dateien in einem Projekt zu formatieren, ohne sie einzeln zu formatieren?

Chris Williams
quelle

Antworten:

77

Sie können eine Erweiterung namens "Dateien formatieren" verwenden.

Verwendung: Öffnen Sie die Befehlspalette (Strg + Umschalt + P) und geben Sie "Dateien formatieren" ein. Erstellen Sie eine Tastenkombination für den Befehl 'editor.action.formatFiles'. Klicken Sie mit der rechten Maustaste auf einen Arbeitsbereichsordner und wählen Sie "Dateien formatieren", um alle Dateien im Verzeichnis zu formatieren. "

Quelle: https://marketplace.visualstudio.com/items?itemName=jbockle.jbockle-format-files

Stellan Lindell
quelle
Ich bin ungefähr zur Hälfte fertig und sagte dann " An error occurred while running Format Files: Invalid count value"
Aaron Franke
1
Funktioniert wie Charme
Dheeraj M Pai
Dies führte dazu, dass alle meine Dateien beschädigt wurden, da sie nicht hübscher sind. Es bricht JSX-Code BITTE FÜR DIE LIEBE ALLES, WAS GUT IST, TUN SIE DAS NIEMALS! Du wirst es bereuen.
jake_314
@ jake_314: Tut mir leid, dass du so schlechte Erfahrungen damit gemacht hast. Aber ich hoffe, Sie verwenden Git oder haben eine Sicherungskopie Ihres Codes erstellt, bevor Sie größere Operationen zum Ändern von Skriptcode ausführen? Wie auch immer, ich habe dies nicht mit JSX versucht, aber hier ist ein Link, der hilfreich sein könnte: rockyourcode.com/…
Stellan Lindell vor
34

Das funktioniert bei mir

Schönere installieren:

npm init 
npm i prettier

Fügen Sie folgendes Skript in package.json hinzu:

"pretty": "prettier --write \"./**/*.{js,jsx,json}\"" 

Nur in diesem Fall muss ich meine .js .jsx- und .json-Dateien formatieren.

Skript ausführen:

npm run pretty
Hiếu Thái Ngọc
quelle
3
Wahrscheinlich möchten Sie "--save-dev" zum Befehl "npm install" hinzufügen, benötigen dies nicht als Produktionsabhängigkeit
reggaeguitar
3
Bei der Beantwortung der Frage geht es um Javascript. Ich sehe keine Tags, die damit zusammenhängen.
Emobe
2
Kann hübscher formatieren c/ c++/ c#Code? Nein - Abstimmung
Herrgott
Sie können auch verwenden, eslint --fixwenn Sie sowohl eslint als auch hübscher verwenden.
BeyondTheSea
10

Ich hatte Pech, eine Erweiterung zu finden, die dies so tat, wie ich es erwartet hatte, also habe ich eine gemacht. Ich schlage vor, Sie werfen einen Blick auf die Erweiterung, die ich gerade gemacht habe:

https://marketplace.visualstudio.com/items?itemName=lacroixdavid1.vscode-format-context-menu#overview

Möglicherweise gibt es noch einige Probleme. Sie können diese gerne melden oder Beiträge leisten.

David Lacroix
quelle
MEIN MANN! Danke für die Zeitersparnis. Dies funktioniert gut mit HTML.
Rum Jeremy
4

Die einfachste Lösung, die ich gefunden habe, ist wie folgt.

  • Installieren Sie Prettier in Vscode.
  • Erstellen Sie die .prettierrc-Datei und konfigurieren Sie sie nach Ihren Wünschen.
  • Führen Sie den folgenden Befehl in der vscode-Konsole aus.

npx prettier --write "**/*.ts" (Fügen Sie den Dateityp Regex nach Bedarf hinzu.)

Piyush Balapure
quelle
1

Wie @herrbischoff sagte, gibt es derzeit keine Möglichkeit, alle Dateien in einem Projekt zu formatieren.
Es wäre jedoch eine nützliche Funktion.

Sie können alle nicht gespeicherten Dateien formatieren, indem Sie sie automatisch speichern und automatisch formatieren.

Andernfalls benötigen Sie ein Shell-Skript oder eine Erweiterung oder ein anderes externes Programm (z. B. einen tslint-Prüfer, der Fehler automatisch korrigieren kann), der dies kann.

Hatte selbst Probleme damit und es ist schade, alle Dateien von Hand zu öffnen


quelle
0

Es gibt derzeit keine Möglichkeit, dies zu tun, und es scheint auch keine besonders nützliche Funktion zu sein. Oder anders ausgedrückt: Es wäre eine nützliche Funktion, wenn Sie ihr vollkommen vertrauen könnten, was Sie nicht können.

Sie müssten viel Vertrauen in die Logik der automatischen Formatierung der verwendeten Sprachen setzen, um keine Fehler zu machen und möglicherweise Fehler einzuführen. Sie müssten die Änderungen ohnehin manuell überprüfen, damit dieser Ansatz nicht zu messbaren Produktivitätsgewinnen führt.

Wenn Sie mit einer ernsthaft ausgefeilten Codebasis arbeiten und sich nicht um mögliche Probleme kümmern, würde ich empfehlen, einen einfachen Shell-Befehl mit dem CLI-Formatierer der jeweiligen Sprache auszuführen. Beispiel für C ++ - Code im Clang-Format :

find . -iname *.cpp -exec clang-format {} +

Dieser Befehl findet alle CPP-Dateien rekursiv und führt sie mit den Standardeinstellungen durch den Formatierer.

Der Prozess ist für jede Sprache im Wesentlichen der gleiche, zum Beispiel JavaScript (mit js-beautify ):

find . -iname *.js -exec js-beautify {} +

Stellen Sie einfach sicher, dass Sie überprüfen, was herauskommt. Es kann auch sehr gut möglich sein, diesen Befehl in VScode zu skripten - oder ihn einfach im eingebauten Terminal auszuführen.

herrbischoff
quelle
18
Wie wäre es nicht eine nützliche Funktion; Wenn Sie eine Formatierungsregel ändern, ist es besser, sie auf einmal auf alle Dateien anzuwenden, als Formatierungsänderungen mit anderen Codeänderungen zu mischen.
Slikts
1
Es ist ziemlich offensichtlich: weil es gefährlich sein kann. Jede automatische Formatierung, die auf alle Dateien angewendet wird, insbesondere auf Projekte, die Sie nicht genau kennen, kann mehr Fehler verursachen, als sie behebt. Denken Sie nur an Sprachen wie Python, in denen Einrückungen wichtig sind. Durch Deaktivieren der automatischen Neuformatierung werden Probleme behoben . Es steht Ihnen natürlich frei, dies auf die harte Tour selbst herauszufinden.
Herrbischoff
1
Ich mache das seit Jahren mit Intellij und Resharper und hatte nie ein Problem. Kein "harter Weg" wirklich, wenn ich dem Format genug vertraue, um es automatisch für eine Datei zu tun, vertraue ich es genug für alle anderen. Ich empfehle einen Ansatz, bei dem die Regeln explizit ausgewählt werden, die standardmäßig deaktiviert und langsam aktiviert werden.
Zweiundvierzig
3
Nach diesem Argument wäre das Formatieren einer ganzen Datei zu gefährlich. Sie sollten nur einen Block formatieren können. Wenn eine ganze Datei in Ordnung ist, was ist, wenn ich ZWEI Dateien im selben Verzeichnis auswähle? Wenn das in Ordnung ist, was ist, wenn ich ein Verzeichnis auswähle? Es gibt viele Anwendungsfälle (z. B. @slikts), in denen dies durchaus sinnvoll ist, und viele Umgebungen (einschließlich Python), in denen Reformatierer / Prettifizierer / Code-Standardisierer einwandfrei funktionieren.
Marvin
2
Dies scheint eine ziemlich einfühlsame Antwort zu sein. Es ist nicht ungewöhnlich, auf eine (Nicht-Python-) Codebasis mit vielen Indendtationsfehlern zu stoßen. Die Standardaktion besteht darin, die Datei unter Verwendung der aktuellen Regeln zu formatieren, sicherzustellen, dass Projekte erstellt, Tests bestanden und Ihre Datei dann in Git überprüft werden (wobei möglicherweise Leerzeichen ignoriert werden). Ich würde eine Methode abonnieren, mit der ich dies mit einem Projekt anstatt mit einzelnen Dateien tun kann.
Lorengphd