Definieren konsistenter Codierungsstile mit EditorConfig
Um konsistente Codierungsstile für alle Benutzer zu erzwingen, die in einer Codebasis funktionieren, können Sie Ihrer Projektmappe oder Ihrem Projekt eine .editorConfig
Datei hinzufügen. EditorConfig-Dateieinstellungen entsprechen einer von EditorConfig.orgverwalteten Dateiformatspezifikation. Viele Code-Editoren und -Anwendungen unterstützen EditorConfig-Dateien, einschließlich Visual Studio. Da sich die Einstellungen in einer Datei befinden, begleiten sie Ihren Code und können sogar außerhalb von Visual Studio verwendet werden.
In Visual Studio haben EditorConfig-Dateieinstellungen Vorrang vor den verschiedenen globalen Text-Editor-Einstellungen, die unter Tools>Optionen>Text-Editor>C/C++>Codestil-verfügbar sind. Sie können eine EditorConfig-Datei verwenden, um jede Codebasis so anzupassen, dass für dieses Projekt spezifische Text-Editor-Einstellungen verwendet werden.
Sie können eine EditorConfig-Datei manuell auffüllen oder basierend auf den in Visual Studio ausgewählten Codeformateinstellungen automatisch generieren. Um eine neue .editorconfig
-Datei basierend auf Ihren aktuellen Visual Studio-Einstellungen zu erstellen, wählen Sie im Hauptmenü von Visual Studio Extras>Optionen>Text-Editor>C/C++>Codeformat aus. Wählen Sie dann Generieren einer .editorconfig-Datei aus den Einstellungen aus. Wählen Sie den Ordner aus, in dem sich Ihr Projekt befindet, und klicken Sie dann auf Ordner auswählen, um die .editorconfig
Datei zu speichern.
Wenn Sie eine EditorConfig-Datei verwenden, können Sie weiterhin ihre eigenen persönlichen Editoreinstellungen im Text-Editor von Visual Studio festlegen. Diese Text-Editor-Einstellungen gelten, wenn Sie in einer Codebasis ohne EditorConfig-Datei arbeiten oder wenn die EditorConfig-Datei eine bestimmte Einstellung nicht überschreibt. Ein Beispiel für eine solche Einstellung ist, ob für den Einzugsstil im Code Tabs oder Leerzeichen verwendet werden.
Wenn Sie Ihrem Projekt in Visual Studio eine EditorConfig-Datei hinzufügen, werden nur neue Codezeilen basierend auf den EditorConfig-Einstellungen formatiert. Die Formatierung des vorhandenen Codes wird nur geändert, wenn Sie einen der folgenden Befehle ausführen:
-
Wählen Sie Codebereinigung im Visual Studio-Editor aus, oder drücken Sie STRG+K, STRG+E. Dieser Befehl gilt für Leerzeicheneinstellungen, z. B. Einzugsformat und ausgewählte Codeformateinstellungen, z. B. Klammereinstellungen.
Dokument formatieren.
Wählen Sie Bearbeiten>Erweitert>Dokument formatieren aus, oder drücken Sie STRG+K, STRG+D im Standardprofil. Dieser Befehl gilt nur für Leerzeicheneinstellungen, z. B. Einzugsformat.
Codekonsistenz
Mit EditorConfig-Dateieinstellungen können Sie konsistente Codierungsstile und -konventionen in einer Codebasis verwalten, unabhängig vom verwendeten Editor oder der verwendeten IDE. Einige Codierungsstile, die Sie steuern können, sind Einzugsstil, Tabbreite, Zeilenendezeichen und Codierung. Wenn Ihre C#-Codebasis beispielsweise eine Konvention aufweist, die fünf Leerzeichen einrückt, Dokumente UTF-8-Codierung verwenden und Zeilen mit CR/LF enden, können Sie eine EditorConfig-Datei so konfigurieren, dass diese Konvention verwendet wird.
EditorConfig-Dateien sind nützlich, wenn Codierungskonventionen, die Sie für Ihre persönlichen Projekte verwenden, von den Konventionen abweichen, die für die Projekte Ihres Teams verwendet werden. Sie bevorzugen möglicherweise, dass ein Einzug in Ihrem Code ein Tabulatorzeichen hinzufügt. Ihr Team bevorzugt jedoch möglicherweise, dass ein Einzug stattdessen vier Leerzeichen hinzufügt. EditorConfig-Dateien lösen dieses Problem, indem Sie eine Konfiguration für jedes Szenario haben können.
Da eine .editorconfig
Datei in der Codebasis die EditorConfig-Einstellungen enthält, reisen sie zusammen mit dieser Codebasis. Solange Sie die Codedatei in einem EditorConfig-kompatiblen Editor öffnen, werden die Text-Editor-Einstellungen aktiviert.
Anmerkung
Konventionen, die Sie in einer EditorConfig-Datei festlegen, können in einer CI/CD-Pipeline nicht als Buildfehler oder Warnungen erzwungen werden. Alle Stilabweichungen werden nur im Visual Studio-Editor und in der Fehlerliste angezeigt.
Unterstützte Einstellungen
Der Editor in Visual Studio unterstützt die grundlegenden EditorConfig-Eigenschaften:
- indent_style
- indent_size
- tab_width
- Ende_der_Zeile
- charset
- trim_trailing_whitespace
- insert_final_newline
- wurzel
EditorConfig unterstützt alle von Visual Studio unterstützten Sprachen mit Ausnahme der EditorConfig-Editor-XML-Einstellungen.
EditorConfig unterstützt Codestil--Konventionen einschließlich Sprach-, Formatierung-und Benennung--Konventionen für C# und Visual Basic.
Hinzufügen und Entfernen von EditorConfig-Dateien
Wenn Sie Ihrem Projekt oder Ihrer Codebasis eine EditorConfig-Datei hinzufügen, formatiert Visual Studio alle neuen Codezeilen, die Sie gemäß den EditorConfig-Dateieinstellungen schreiben. Visual Studio konvertiert jedoch keine vorhandenen Stile in die neuen, bis das Dokument formatiert oder Codebereinigungausgeführt wird. Wenn in Ihrer Datei beispielsweise die Einzüge mit Tabstopps formatiert sind, und Sie eine EditorConfig-Datei hinzufügen, bei der die Einzüge mit Leerzeichen formatiert sind, werden die Einzugszeichen nicht automatisch in Leerzeichen konvertiert. Wenn Sie das Dokument formatieren (wählen Sie Bearbeiten>Erweitert>Formatdokument aus, oder drücken Sie STRG+K, STRG+D), werden die Leerzeicheneinstellungen in der EditorConfig-Datei auf vorhandene Codezeilen angewendet.
Wenn Sie eine EditorConfig-Datei aus Ihrem Projekt oder Ihrer Codebasis entfernen, müssen Sie alle geöffneten Codedateien für die globalen Editoreinstellungen schließen und erneut öffnen, um neue Codezeilen zu erzielen.
Hinzufügen einer EditorConfig-Datei zu einem Projekt
Führen Sie die folgenden Schritte aus, um ihrem Projekt oder Ihrer Projektmappe eine EditorConfig-Datei hinzuzufügen:
Öffnen Sie ein Projekt oder eine Projektmappe in Visual Studio. Wählen Sie den Knoten „Projektmappe“ oder „Projekt“ aus, je nachdem, ob Ihre EditorConfig-Einstellungen für alle Projekte in der Projektmappe oder nur für ein Projekt gelten sollen. Sie können auch einen Ordner in Ihrem Projekt oder Ihrer Projektmappe auswählen, um die
.editorconfig
-Datei hinzuzufügen.Klicken Sie im Menü auf Projekt>Neues Element hinzufügen, oder drücken Sie STRG+UMSCHALTTASTE+A.
Das Dialogfeld Neues Element hinzufügen wird geöffnet.
Geben Sie im Suchfeld editorconfigein.
In den Suchergebnissen werden zwei editorconfig File Elementvorlagen angezeigt.
Wählen Sie die Vorlage editorconfig-Datei (leer) aus, um eine EditorConfig-Datei hinzuzufügen, die mit den Standard-EditorConfig-Optionen für Leerzeichen, Codestil und Benennungskonventionen ausgefüllt ist. Oder wählen Sie die editorconfig File (.NET) Vorlage aus, um eine EditorConfig-Datei hinzuzufügen, die mit standardmäßigen .NET-Leerzeichen, Codeformat und Namenskonventionenausgefüllt ist.
Eine neue
.editorconfig
Datei wird im Projektmappen-Explorer angezeigt und im Editor als neue Registerkarte geöffnet.Bearbeiten Sie die Datei optional, und speichern Sie sie.
Weitere Möglichkeiten zum Hinzufügen einer EditorConfig-Datei
Es gibt eine Reihe weiterer Möglichkeiten, wie Sie Ihrem Projekt eine EditorConfig-Datei hinzufügen können:
Verwenden Sie IntelliCode für Visual Studio, um eine
.editorconfig
Datei in Ihrer Lösung zu generieren. Klicken Sie im Projektmappen-Explorer mit der rechten Maustaste und wählen Sie im Kontextmenü Hinzufügen>Neue EditorConfig (IntelliCode) aus. IntelliCode für Visual Studio leitet Ihre Codeformatvorlagen aus vorhandenem Code ab und erstellt dann eine EditorConfig-Datei mit vordefinierten Codestileinstellungen.Generieren Sie automatisch eine EditorConfig-Datei basierend auf Ihren Codeformateinstellungen.
Dateihierarchie und Rangfolge
Wenn Sie einem Ordner in Ihrer Dateihierarchie eine .editorconfig
Datei hinzufügen, gelten die zugehörigen Einstellungen für alle anwendbaren Dateien auf dieser Ebene und niedriger. Sie können editorConfig-Einstellungen auch für ein bestimmtes Projekt, eine Codebasis oder einen Teil einer Codebasis außer Kraft setzen, sodass sie andere Konventionen als andere Teile der Codebasis verwendet. Dies kann nützlich sein, wenn Sie Code an einer anderen Stelle integrieren und die Konventionen nicht ändern möchten.
Befolgen Sie die folgenden Richtlinien:
Um einige oder alle EditorConfig-Einstellungen außer Kraft zu setzen, fügen Sie eine
.editorconfig
-Datei auf der Ebene der Dateihierarchie hinzu, auf die diese überschriebenen Einstellungen angewendet werden sollen. Die neuen EditorConfig-Dateieinstellungen gelten für Dateien auf derselben Ebene und Dateien in allen Unterverzeichnissen.Wenn Sie einige, aber nicht alle Einstellungen außer Kraft setzen möchten, geben Sie nur diese Einstellungen in der
.editorconfig
Datei an. Nur die Eigenschaften, die Sie explizit in der Datei.editorconfig
auf der niedrigsten Ebene auflisten, werden außer Kraft gesetzt. Andere Einstellungen von beliebigen.editorconfig
Dateien auf höherer Ebene bleiben weiterhin angewendet.Wenn Sie sicherstellen möchten, dass keine Einstellungen von dateien auf höherer Ebene
.editorconfig
auf diesen Teil der Codebasis angewendet werden, fügen Sie dieroot=true
Eigenschaft der unteren.editorconfig
Datei hinzu.# top-most EditorConfig file for this level root = true
EditorConfig-Dateien werden von oben nach unten gelesen. Wenn mehrere Eigenschaften mit demselben Namen vorhanden sind, hat die zuletzt gefundene Eigenschaft mit demselben Namen Vorrang.
Bearbeiten von EditorConfig-Dateien
Visual Studio 2022 stellt einen visuellen Editor für EditorConfig-Dateien bereit.
Nachdem Sie die EditorConfig-Datei bearbeitet haben, müssen Sie die Codedateien neu laden, damit die neuen Einstellungen wirksam werden.
Visual Studio unterstützt Sie beim Bearbeiten von EditorConfig-Dateien, indem Sie IntelliSense-Vervollständigungslisten bereitstellen. Zum Beispiel:
Wenn Sie viele EditorConfig-Dateien bearbeiten, finden Sie möglicherweise die EditorConfig Language Service-Erweiterung hilfreich. Zu den Features dieser Erweiterung gehören Syntaxmarkierungen, verbesserte IntelliSense-, Validierungs- und Codeformatierungen.
Beispiel
Im folgenden Beispiel werden die Einzüge eines C#-Codeausschnitts vor und nach dem Hinzufügen einer EDITORCONFIG-Datei zum Projekt gezeigt:
Legen Sie im Dialogfeld Extras>Optionen die Einstellungen Text-Editor>C#>Registerkarten für den Text-Editor von Visual Studio fest, um vier Leerzeichen einzufügen, wenn Sie die TAB-Taste drücken.
Wie erwartet erfolgt der Einzug beim Drücken der TAB-Taste in der nächsten Zeile durch das Hinzufügen von vier Leerzeichen.
Verwenden Sie EditorConfig, um die Einstellung für Tabs so anzupassen, dass Tabs verwendet werden.
Wählen Sie Tabs verwenden in der EditorConfig-Datei aus.
Fügen Sie dem Projekt eine neue Datei mit dem Namen
.editorconfig
mit dem folgenden Inhalt hinzu. Der Indikator[*.cs]
bedeutet, dass diese Änderung nur für C#-Codedateien im Projekt gilt.# Top-most EditorConfig file root = true # Tab indentation [*.cs] indent_style = tab
Wenn Sie die TAB-Taste drücken, werden jetzt Tabstoppzeichen anstelle von Leerzeichen angezeigt.
Fehlerbehebung bei EditorConfig-Einstellungen
Wenn eine EditorConfig-Datei an einer beliebigen Stelle in der Verzeichnisstruktur am oder über dem Speicherort Des Projekts vorhanden ist, wendet Visual Studio die Editoreinstellungen in dieser Datei auf Ihren Editor an. In diesem Fall wird möglicherweise die folgende Meldung in der Statusleiste angezeigt:
User preferences for this file type are overridden by this project's coding conventions.
Dies bedeutet, dass, wenn editor-Einstellungen in Tools>Optionen>Text-Editor- (z. B. Einzugsgröße und Formatvorlage, Registerkartengröße oder Codierungskonventionen) in einer EditorConfig-Datei unter oder oberhalb des Projekts in der Verzeichnisstruktur angegeben werden, die Konventionen in der EditorConfig-Datei überschreiben die Einstellungen in Text-Editor-.
Führen Sie die folgenden Schritte aus, um EditorConfig-Probleme zu beheben:
Um die EditorConfig-Unterstützung für Visual Studio zu deaktivieren, deaktivieren Sie die Option Codierungskonventionen des Projekts befolgen in Extras>Optionen>Text-Editor.
Um alle EditorConfig-Dateien in den übergeordneten Verzeichnissen Ihres Projekts zu finden, öffnen Sie eine Eingabeaufforderung, und führen Sie den folgenden Befehl aus dem Stamm des Datenträgers aus, der Ihr Projekt enthält.
dir .editorconfig /s
Um den Umfang Ihrer EditorConfig-Konventionen zu steuern, legen Sie die
root=true
-Eigenschaft in der.editorconfig
Datei im Stammverzeichnis Ihres Repositorys oder im Verzeichnis fest, in dem sich Ihr Projekt befindet.Visual Studio sucht nach einer Datei mit dem Namen
.editorconfig
im Verzeichnis der geöffneten Datei und in jedem übergeordneten Verzeichnis. Die Suche endet, wenn sie den Stammdateipfad erreicht oder eine.editorconfig
Datei mitroot=true
gefunden wird.